後輩:IT企業にうっかり就職して1年目のSE。プログラミングしてみたい。
先輩:勤続10年、ソフトウェア開発の中堅エンジニア。現場好き、技術好き。
後輩:Javaの勉強ってどうやったらいいですか?
先輩:そうだね、まずは文法を学ぶものいいけど、計算機概論とか案外そんな本がよかったりするよ。まあ、OS の勉強も重要だよな。仮想マシンとは何か・・・みたいな。
後輩:えー、難しそうですし、遠回り過ぎます!ウチの会社が請ける案件はJavaが多いじゃないですか。だからまずはJavaです。
先輩:じゃあ、まずはオブジェクト指向の入門書を読んでみるのはどうだろうか。読んでみて面白いなと思う本を通読してみて、それからJavaの入門書を併読してみても、今ならばいいかもね。それから、入門書のソースコードを入力しながら勉強するのがいいね。Eclipseみたいな総合開発環境(IDE)は、入力支援が当たり前だから、キータイプの数が減ってミスが少なくていいけど、初心者だったらエディターで一所懸命入力してほしいな。タッチタイプも上手くなるしね。
後輩:写経ってヤツですね。でもJavaの歴史も四半世紀を過ぎているんですよね。だったらもっと楽になっていませんか。
先輩:たしかにね。我々が作るシステムの業務ってヤツは定型バターンが根底にあるわけだから、それを抽出すれば、どこにでも再利用できるプロトタイプモデルができそうだよね。……実際は再利用できるほど世の中あんまり甘くないけど。そういったJavaの定型パターンみたいなものは、オープンソースで公開されているよね。古くはStrutsとか。今は、SeaserとかSpringかな。
後輩:ああ、そういう部品みたいなモノを再利用するわけですね。開発時間も短縮できてハッピーです。Win-Winってヤツですね。それ勉強したいです。
先輩:まあ、どれもちゃんと自分のものにするには一筋縄じゃいかないけどね。ソースコードを読み、機能を理解して、お客さんが求めるシステムに当てはめていかねばならない。Springだって、どんどん多機能になってきて、いまやVersion3.1だ。全世界で普及しているから、欧文での参考文献が多くなる。つまりオフショア開発でも対応しやすいと言える。JavaのFrameworkの定番だね。
後輩:なるほど!
先輩:最近のSpringの機能の充実はかなりのもんだね。ここ数年では、VMware社やSalesforce社との関係を深め、クラウド環境への対応も図られているし。一方、いま流行っている開発のトレンドはJavaScriptばかりだけど、Springもどんどん進化している。それはさておき、Springの特長であるDI(依存性の注入)、とかAOP(アスペクト指向プログラミング)とか、キミにわかるのか?
後輩:楽ができるならば、それも勉強します! ところで、JavaScriptとJavaの違いって何ですか?
先輩:がーん!(ずこッ)。まずはそこから始めなきゃならんのか。まずは、流れの速いIT業界も俯瞰して、すぐにわかる本書の第1章を読んでみて! JavaによるWebアプリケーションの仕組みがわかれば、キミが当社ですべき仕事の全容もわかるようになるだろう。