「これからキャリアを積むにはJavaはマスターしておきたい、しかし時間が……」という声をよく聞く。そこで今回は、忙しいITエンジニアのためのJavaプログラミングの「学び方」を4回の予定で紹介する。なお、本記事は@ITラーニングデスクにおいて2001年11月16日に掲載した記事を加筆、修正したものである。
前回は教材を使用して個人で学習する方法を説明したが、今回はヒトから学ぶ方法(講習会、仲間同士の勉強会)を取り上げる。モノから学ぶよりヒトから学ぶ方が確実で早いが、コスト、スケジュールの調整などの面ではややハードルが高いといえるだろう。
●講習会で学ぶメリットとデメリット
メリット | デメリット | |
---|---|---|
短期間で一通り習得できる | 講師に当たりはずれがある | |
その場で質問ができる | 教習内容と実務が一致しない場合がある | |
自習が苦手な人でも学習が進む | 価格が高い | |
プロジェクトですぐにJavaの知識が必要であるなど、短期間でJavaを習得したい場合、IT教育機関などで実施されている講習会に参加するのが有効だ。通常の入門コースで2〜3日。そのほか、通信やマルチスレッド、サーブレットやEJB、J2MEプログラミングなどを扱う中・上級コースなどのオプションを入れても1週間弱で、ある程度の知識とスキルを身に付けることができる。多少コストはかかるが、プロジェクトの必要経費として計上できる場合もあり、短期間での技術習得には有効な方法といえる。
自習では分かりにくいJavaの概念なども、インストラクターに分かるまで質問することができるのもメリットだ。ただし、講師との相性もあるし、また講師ごとに質のバラツキもあるので、あまり信用の置けない教育機関は選ばないようにしたい。
講習会の選定で最も重要なのは、自分の勉強したい内容と講習会の内容がどれだけ一致しているかである。特にプロジェクトがすでに決まっている場合、必要なテーマと講習会の内容がある程度一致しているかどうかを確かめないと、せっかく習得した知識が実務で生かせないということにもなりかねない。
講習はテーマ別に構成されたテキストブックに沿って進められるので、例えば教育機関のWebサイトにテキストブックの目次が掲載されていたら、それを吟味するといいだろう。また過去に受講した経験のある先輩や同僚から評価を聞いておいたり、エンジニア向けのサイトの掲示板などで、受講経験者の評価を確認しておくとベター。
そのほかのポイントは、講義と実習の時間配分、何名のクラスか(もちろん少ない方が密度は濃い)、講師のほかアシスタントはつくか、などだろう。
●著者お薦めの教育機関
主催者 | 概要 |
---|---|
サン・エデュケーション・サービス | Javaの開発元、サン・マイクロシステムズが提供するJava学習コース。入門から実務まで幅広い教習コースを定期的に実施している。 |
豆蔵 | オブジェクト指向コンサルティングで定評のある豆蔵の教育サービス。方法論としてのオブジェクト指向を深めたい場合には最適。 |
個人的かつ感覚的な理解だが、プログラム生産技術の進歩は、企業の成長と似ているような気がする。1人で何でもやる個人事業主の時代は、手続き型指向の発想だ。ちょうど8ビットマイコン時代にBASICで書かれたプログラムのように、いくつかのサブルーチンを持つものの、基本的には1つのソースコード中にすべての処理が記述されている。
次に小規模企業の事業主となると担当者を何人か置いて、あれこれ指示は出すものの、実作業は少なくなる。これはモジュール化や構造化の段階といえる。メインプログラムを中心に各関数やモジュールを別ファイルに分けて記述するC言語のソースコードに相当するだろう。
最後に大企業の経営者となると、組織をデザインし、それぞれの役割と機能を持った事業部を統括するという仕事になる。各事業部はクラスに相当し、役割と機能をプロパティやメソッドに置き換えれば、まさにオブジェクト指向といえなくもない。作業依頼書やメールである事業部から別の事業部に必要なデータや指示を添えて仕事の依頼を出すのは、まさにオブジェクト指向のクラス間通信に相当する。
これは、プログラム生産技術や企業の組織論に限った話ではなく、「規模の変化に対する人間のアプローチの仕方にはパターンがある」ということかもしれない。
●仲間同士の勉強会で学ぶメリットとデメリット
メリット | デメリット | |
---|---|---|
安い | 参加者を集め、スケジュールを調整する必要がある | |
気を使わず、納得いくまで学べる | 講師の能力に結果が左右される | |
仲間同士で目的やテーマに沿って勉強会を開くという方法は意外に有効だ。経験豊富な人間の考え方や方法論、知見を知る機会にもなるし、またお互いに知恵を出し合うことで、自分の幅を広げることができるし、チームワークの強化にもつながる。いずれも個人学習ではなかなか得られないことだ。特にプロジェクトの立ち上げ活動の一環として、Javaにとどまらず、必要な技術全般をチーム全体で学ぶのは、プロジェクトを成功に導くためにもぜひお薦めしたい。
プログラミングを勉強するといっても「やる気が出ない」ということも多い。「やる気を出すこと」は自分で勉強する際にクリアすべき、大きなハードルといえるのではないだろうか。そんなときは、自分にとって好きなこと、楽しめることを軸に、それに近いテーマを勉強してみよう。
例えば、ゲームが好きならゲームプログラミングから入るとか、ギャンブルが好きならスロットマシンを作ってみるとか、野球好きならサンプルプログラムの文字列をひいきのチームの選手名にするとか、少しでも楽しみながら学習を進めていこう。「Hello, World!」と出力されるよりは、「ローズ、中村連続アーチ」と書いた方がパワーが出るというものだ。一番よくないのは、みけんに皺(しわ)を寄せて、悲壮感を漂わせながら勉強すること。苦行を続けるくらいなら、もっと興味・関心のある分野から学び始める方がいい。
学習の進め方には2つの方法がある。1つは最も知識や経験のある人間が講師として、それ以外のスタッフに教授する方法。もう1つは各テーマや得意分野ごとに担当を決めて、それぞれが下調べや予習をして情報や知識を伝達し合う方法だ。
前者はレベルの高い人が講師になることで、参加者全体のレベルアップが期待できる。また、仲間同士の気安さで、納得がいくまで質問や議論ができるのも素晴らしい点だ。ただし、教材の作成や場所の手配など講師に負担がかかることは、十分配慮しなくてはならない。できれば持ち回りで世話人を決めて、講師になる人間のアシスタントをするようにしたい。
後者は全員が参加し、きっちり予習をすることで全員の自立心や自覚が養われる。「教える」ということは最大の学習ともいわれ、人に説明しようと必死に調べたり、考えたりすることで、自分の思考や理解の整理にも役立つし、また、自分よりスキルのある人に鋭い質問をされて右往左往したり、いままで見えていなかったことが見えたりなど、個人の成長につながる体験も期待できる。
ただし、(すでにお気付きと思うが)、個人およびグループの知識や理解のレベルに左右されるのが難点だ。この問題に対処するには、包括的で深い知識を持った上級者がスーパーバイザー役を果たすと効果的であろう。
Java言語を一通り習得できたら、スキルを確認したり、また自分のキャリアアップに役立てるために資格に挑戦してみよう。Java言語の資格としては、サン・マイクロシステムズ社が提供するJavaプログラマ認定資格がある。
試験はオンラインで提供され、設問数は約60問からなる選択式。合格ラインは61%以上である。3問のうち2問正解すれば十分に合格が狙える。この手のベンダ試験は受験料が高額なので、問題集などを通じて一度で合格できるようにしっかりと準備してから臨みたい。
またJavaプログラマを取得できたら、その上位試験になるデベロッパやWebコンポーネントデベロッパ資格を狙ってみてもよいだろう。
Java資格のほかにも、開発者としての基本的な能力を問うものとして、経済産業省が開催する「基本情報処理技術者試験」のプログラミング項目もJavaで受験できる。試験内容はプログラミング以外にもハードウェアやソフトウェア、OSや開発技法など包括的なシステム開発の知識が要求される。Javaの学習に加え、書籍や通信教育での基礎学習が必要になる。
渡辺 知樹(わたなべ ともき)
某社よりプロジェクトマネジメントに関する本を上梓予定で(共著)、最近はヒマさえあれば膨大な資料に目を通し、原稿を書き、イラストのラフを作成している。 それにしても標準的といわれる技法もあるが、多くの人 がいろいろな主張や仮説を持って取り組んでいることをあらためて知り、感動している。知的価値を産み出す活動は答えがないゆえに難しく、それゆえに面白いのかもしれない。
Copyright © ITmedia, Inc. All Rights Reserved.