連載
» 2003年09月10日 00時00分 UPDATE

すぐに役立つJavaプログラミング学習法(最終回):Javaのエキスパートを目指そう!

「これからキャリアを積むにはJavaはマスターしておきたい、しかし時間が……」という声をよく聞く。そこで最終回の今回は、忙しいITエンジニアのためのJavaプログラミングの「学び方」の4回目を紹介する。なお、本記事は@ITラーニングデスクにおいて2001年11月30日に掲載した記事を加筆、修正したものである。

[渡辺知樹,@IT]

 これまでJavaプログラミングの具体的な勉強方法とその内容について説明してきた。読者の方々も自分に合った勉強法で真剣に取り組めば、短期間でJavaを理解できるであろう(期待を込めて)。最終回は、一通り言語全般を理解してから、エキスパートになるにはどのような努力をしていけばいいのか。いわゆる上級者への道を歩むためのノウハウについて、いくつか説明してみたい。

情報収集の方法

 Javaはある意味で20世紀のソフトウェアサイエンスのエッセンスが詰まった言語である。単なる新しい言語の習得にとどまらず、現在のソフトウェア生産技術全般の習得にもつながっている。特にオブジェクト指向の考え方は、過去の資産を再利用しやすく、設計の柔軟さなどにおいても、学んでおいて絶対に損のない生産技術である。

 Javaはまだ若く発展途上の言語であり、日々開発・改良が進んでいる。また、新しい技術にもいち早く対応しており、非常に変化の激しい世界である。Javaのエキスパートになるために欠かせないアクションとして、日々の情報収集がある。どのような経路で情報を収集するといいのか説明する。

APIを理解する

 API(Application Programming Interface)は、Javaを使って何かするための処理を実現したものである。実際にプログラムを書く場合、まず言語の基本仕様や概念を理解したら、あとは自分の目的に合致したAPIの名称や機能を覚え、サンプルなどを見ながら実際の使い方を習得することになる。

 JavaのAPIは非常に豊富であり、実際のプログラム作成に必要な機能はほとんど網羅されている。建築に例えると、木材から材料1つ1つを切り出す昔の工法に対して、既存の部品(コンポーネント)を組み合わせて造る現代の家造りのような感覚でアプリケーションを作ることができる。

 基本APIについては、開発元であるサン・マイクロシステムズ社のWebサイトにあるHTMLファイルをダウンロードしておくといいだろう。また、市販のAPIリファレンスマニュアルなどを併用するのもいい。サン・マイクロシステムズ社のドキュメントにはあまり用例は載っていないので、市販のリファレンスは実例の多いものを選ぶと理解の助けになる。APIはオブジェクト指向の考え方に沿って体系化・整備されているので、APIリファレンスを活用するには、オブジェクト指向の理解が不可欠になる。

WebサイトのIT情報サービス

 最新の情報を無料で得られるWebサイトは、やはり情報収集手段のトップに挙げられる。ニュース系サイトやメールサービスで単にJavaに関する最新情報を得るのも重要であるが、エンジニアである以上は、技術解説のしっかりしたWebサイト(実際には@ITJava Solutionフォーラムなど数えるほどしかないが……)を頻繁にチェックして、知識や理解を深めておくのが特に重要であり、日々の勉強だといえる。

Column:アルゴリズムを学んでみよう

 Javaのプログラミングというのは、小さい部品や、それらを組み合わせたコンポーネントをかき集め、それを組み合わせることで、比較的容易にアプリケーションを作成できるのが特徴だ。しかし、もっと細かく処理したり、あるいは部品そのものから作りたい場合はどうすればいいのか。

 もし、 このような領域まで踏み込んでプログラミングを学びたいのであれば、アルゴリズムを学ぶことをお勧めする。同時に、C言語をかじってみるといいだろう。アルゴリズムというのは、ある課題や処理を行う際の解き方や手順を指す。C言語はJavaに比べて原始的な作りであり、データの細部までいろいろ操作することができるのでアルゴリズムの学習に適している。

 例えばJavaプログラマがアルファベットの大文字を小文字に変換したい場合、文字列(Stringオブジェクト)に対して「toLowerCase()メソッド」を実行するだけでよいが、実際はどこかの誰か(J2SDKのプログラマ)が、文字コードを調べてA〜Zの範囲内だったらa〜zに変換するコードを書いていて、それを利用しているわけである。

 アルゴリズムを学ぶことで、コンピュータの内部でどのような処理が行われているのかを想定しながらコードを書けるようになり、より質の高いコード、処理効率のよいコード、そしてパフォーマンスの高いプログラムが書けるようになる。何よりコンピュータそのものに対する理解が深まるはずである。


雑誌

  Javaに関する雑誌やムックはいくつか見られるが、包括的にJavaテクノロジを扱った代表的なものとして、『Java World』(IDGジャパン)『Java Press』(技術評論社)の2誌がスタンダードといえる。違いを挙げるとすれば、前者は月刊で技術情報から市場、戦略的な話まで包括的なJava情報を扱っており、それに対して後者は実務、ホビー、用途別、プラットフォーム別などマニアでも楽しめる深い内容だ。

 また、サーブレット、JSP、DB接続、開発ツール、UMLなど、Java言語を使用したオブジェクト指向開発に実践的に役立つものとして、『DBマガジン』(翔泳社)『Java Developer』(ソフトバンクパブリッシング)も紹介しておきたい。その他ほか、各社からXML、DB、Webアプリケーション、EJBなどテーマ別に特化したムックなども多数出版されているので、関心や必要に応じて参考にするといいだろう。

洋書

 アメリカがIT技術の中心ということもあり、Javaだけでなく並行して英語なども勉強したい、という人も多いと思う。そんな場合は、あまり厚くない洋書のJava入門を使うと、一度にJavaと英語の両方を勉強できて一挙両得である。ただ、小型の入門書は古いJava 1.1対応のものがまだ売られていたりするので、今後のことを考えて、Java 2対応のものを選ぶように注意したい。

 洋書については、都内の大手書店などで取り扱っているが、アメリカのオンライン書店などインターネットショッピングで購入することもできる。その手の書店のWebサイトで「Java」で検索してみると、膨大な数に驚くかもしれない。アメリカの技術動向なども分かって興味深い。

Column:IT書籍の読み方

 前々回の説明にIT書籍で勉強する方法を紹介したが、具体的なやり方についていくつか質問を受けたので、IT書籍の読み方について説明しておきたい。ある分野や技術の全体像をとらえたい場合には、シリーズものの読み物がいいだろう(この手のIT入門読本は、複数の出版社から2000円前後で出版されているので、自分に合うものを選びやすい)。ある技術分野やテーマについて、豊富な図版と初心者向けの平易な表現で包括的に説明しているからだ。

 このような本の場合、大きく分けて読み方は2通りある。1つは十分に理解できなくても、あまり細部にはこだわらずにスピード重視で通読する方法。まずはその分野の全体像や用語を把握するのに役立つ読み方だ。もう1つはとにかく細部にこだわり、分からないところは何回でも読み直したり、ある内容を読んでいて、その前段となる内容があやふやだったら、前の章に戻って読み返したりする理解重視の方法だ。

 ある技術、特に新しい概念を自力で理解する場合、上級者でないと本を1回読むだけで理解できるというわけにはいかない。お勧めの読み方としては、まずはスピード重視で全体を読み通し、理解重視の方法でもう1度読み返すことだ。新しい知識を本で学ぶ場合、何度か読み返しても自分の知識やスキルのレベルに応じて新しい発見に気付き、理解の深まりがあるので、いきなり重箱の隅をつつくような読み方をするより、まずは大まかにでも全体像を理解してから精読するとよい。

 このとき自分では気付いていなくても、無意識レベルには少なからぬ情報が入っている。2回目からはその情報の量や密度を高めていけばいい。


ハイレベルな人との交流

 技術者としてのスキルを伸ばすために大事なことは、周囲の上級者と交流することである。彼らから得られる情報や知的刺激によって、より高みを目指そうという意欲がわいたり、いままで分からなかった概念が理解できたりするなど大きな刺激を得ることができるだろう。最初は話を聞くだけでも、いずれは彼らと対等に技術的な議論ができるようになるのも夢ではない。

 また直接のコミュニケーションではないが、上級者が書いたソースコードを読んで、解析してみるのも有効な方法だ。「創造は模倣から始まる」といわれるが、それはプログラミングの世界にもそのまま当てはまる言葉である。いい点を盗みつつ、疑問点を追究し、問題点を発見し、自分なりの改善案が出るくらいになるころには、Javaエキスパートの末席くらいにはいるであろう。

資格を取得する

 せっかく学習を進めてきてJavaのスキルが身に付いたのだから、それを自分のキャリアアップに生かすためにも、Java関連の資格取得を1つの目標にするといいだろう。自分では十分にJavaを理解しているつもりでも、なかなか他人には「Javaのスキルレベル」は伝わりにくい。ただ、資格を取得していればその点をクリアできることに加え、社会的アピールにもなる。以下、代表的なJava資格とその特徴を挙げておこう。

サン認定資格Javaプログラマー

 Javaの開発元サン・マイクロシステムズ社が提供するJavaに関する認定資格。試験実施機関との提携により、全国主要都市でいつでも受験できるのが特徴。レベルに応じて、より複雑なシステムを構築する能力を問うJavaデベロッパー、Javaアーキテクトなど上級資格も用意されている。

Javaプログラミング能力認定試験

 サーティファイ情報処理能力認定委員会(旧 日本情報処理教育普及協会)が提供する開発言語スキルを問う試験。Javaに関する基本知識を持ち、オブジェクト指向に基づくアプレットやアプリケーションプログラムを作成できる能力を認定するもの。現在は基本的な3級とやや高度な2級、応用力も問われる1級の3種類ある。

Column:Javaを学ぶビジネス的なメリット

 現在、Javaで開発ができる技術者は広く求められている。もちろん、「それなりの技術レベルを持つ」という条件は付くが、現在の業界事情を一言でいえば、入門レベルまで終えた人はかなり多く、また高いレベルを持ったエキスパートも散見されるが、現場での即戦力となる中級レベルがすっぽり抜けているといわれている。

 

 Javaといっても、小型機器から一般アプリケーション、Webシステムから大型の企業システムまでその用途は多岐にわたっている。すぐに全分野を理解するのは現実的に難しい。まずは「仕事に必要である。純粋にJavaに関心がある」など動機は何でもいいので、この分野なら「自信がある」というものを1つは身に付けておくことをお勧めする。


最後に - Conclusion

 Javaを学ぶのに必要な情報はこれですべて網羅したつもりである。ここから一歩を踏み出すかどうかは個人の心掛け次第である。古来「学問に王道なし」といわれるが、Javaについても例外でない。むしろ、日々変化するJavaの世界に足を踏み入れると、止めることのできない自転車操業の世界に入ってしまうことになるかもしれない。

 しかし、逆にいうと基本概念とルール、設計思想などのコアを理解してしまえば、あとの情報や知識は枝葉にすぎない。その枝葉の部分を学ぶことで、どんどん新しい分野へと応用していくことが可能になるのだ。そうして知識やスキルが身に付くことによる快感、そして、技術者としても成長し、知的好奇心を満足できることこそが、エンジニアとして生きていく理由ではないかと思えるほどだ。

 前述のように、Javaには20世紀のソフトウェアサイエンスの思想がぎっしり詰まっている。個人的には21世紀は大規模なソフトウェアよりも、短期間で効率よく正確に開発するソフトウェア生産技術が重要なテーマになってくると予測している。Javaはそれらの土台にもなり、過去から未来へとつながっていく可能性と普遍性と将来性を併せ持っている技術なのである。

 ※本連載は今回で終了です。ご愛読ありがとうございました。

筆者紹介

渡辺 知樹(わたなべ ともき)

r5watanabe.jpg

 1967年横浜生まれ。13歳のときに父親の買ってきたムック『マイクロコンピュータ』でマイコン開眼。以降TRS-80、カシオPB-100、シャープPC-1245、自作Z80 ワンボードマイコンなどで遊び盛りの少年期を費やす。大学在学中に国民機「NEC PC-9801VX」を購入。いじり倒したお陰で、第2種情報処理技術者試験(現・基本技術者試験)に一発合格。卒業後はコンピュータ書籍/雑誌の編集者、大手コンピュータメーカーのエンジニアを経て、現在システムコンサルタント、テクニカルライター。大学生相手にJavaの講義なども行う。最新刊『プロジェクトマネジメント入門』(ソフトバンクパブリッシング、共著)を上梓。とかく技術論や方法論に陥りがちだったり、妙な精神論を振り回すだけで具体的な方法論が見えない既存の入門書と同じにならないよう、あれこれネタを盛り込んだとのこと。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。