皆さんの中には,「いまどきJavaくらいできなきゃねぇ~」と言われてからもう何年も過ぎちゃった…なんて人も多いのではないでしょうか。いつ何時「新しいプロジェクトはJavaでいくから」なんて上司に言われたりしないか,内心ドキドキしてる方もいらっしゃるでしょう。私が受け持つJavaの授業でも,受講生の方からそういった悩みをよく聞きます。

 しかしよく聞いてみると,なんだかとても効率の悪い勉強をしているなあと驚くことがあります。なぜなら多くの方が「Javaの入門書で勉強しているのにJavaのプログラムを作れるようにならない」と言われるからです。COBOLやC言語のプログラミング経験があるにもかかわらずです。

 なぜJavaの学習がなかなか進まないのでしょうか。残念ながら「Javaのスキルが上がらない」という方の多くは,「データとアルゴリズム」「Javaの文法」「オブジェクト指向」の三つをきちんと学べていないようです。特にやっかいなのが「オブジェクト指向」です。Javaの文法はオブジェクト指向と密接に結びついているため,「卵が先かニワトリが先か」――「オブジェクト指向を学ぶのが先か」「Javaの文法を学ぶのが先か」――という問題に直面するのです。この問題を嫌う講師の中には,「先にC言語などの勉強をはじめた方が効率がよい」という方もいます。しかし,この意見には少し異論があります。なぜなら,C言語のエキスパートがきれいなJavaプログラムを書くとは,必ずしも言い切れないからです。つまり,C言語の先入観が,逆にJava言語の習得に足かせとなることがあるのです。

 私が,新人研修などでJavaを教えるときは,最初に全員に質問をして,各自の学習の動機やスキルを理解してから教え方を組み立てます。同じ新人といっても,ワープロができる程度の人から情報処理の資格を持つ人まで多様で,すべての人に同じ教え方をしても無駄が多いと考えているからです*1

 そこで,これから学習する前に,「自分はどのステップから学べば良いのか」を先に調べてみましょう。図1をご覧ください。スタートから始めて,それぞれの質問にYESまたはNOで答えてください。その結果をふまえて,自分のスタートラインをしっかり見極めます。そうすれば,「こんなことはすでに知っている」という無駄な時間を過ごすことなく“超高速”に学習できることができます。

図1●Javaを“超高速”に学ぶためのダイアグラム。質問に対してYesまたはNoで回答し,自分のスタートラインを見つけてください
図1●Javaを“超高速”に学ぶためのダイアグラム。質問に対してYesまたはNoで回答し,自分のスタートラインを見つけてください
[画像のクリックで拡大表示]