Kさんが言う通り、Javaのコードの書き方はC言語に似ていました。条件文や制御文はすぐに理解できました。
けれども、最も私の頭を悩ませたのが「オブジェクト指向」でした。「クラス」「継承」「カプセル化」などの目的や意味が全く理解できなかったのです。
情報がないのも困りました。今でこそ、インターネットを検索すれば、さまざまな情報が手に入ります。しかしかつては、技術的な情報を学習するとしたら、英語のWebサイトを読み解くか、1冊数千円もする本を買うしかなかったのです。
しかも、本には「犬と猫を抽象化すると、動物になり……」など、理解が難しい説明しか書かれていません。「犬と猫がどうしたって?」――一体どういうことなのかチンプンカンプンで、何度も挫折しそうになりました。
しかし、それでは仕事になりません。私は意味が分からぬまま、サンプルコードを書いては動かし、書いては動かしを繰り返しました。
言語が理解できない。でも、仕事は進めなければならない……切羽詰まった状況の中で、キーボードをたたきながらモニターとにらめっこ。
そんなときです。プログラミングの神様が、突然舞い降りたのは。「あ、オブジェクト指向ってこういうことか!」――全く意味が分からなかったオブジェクト指向が感覚的に理解できたのです。
言葉で説明するのは難しいのですが、今まで頭の中に入れるだけ入れて、全くつながっていなかった情報が一瞬でつながった感じ。それまで、胸の辺りでずっとモヤモヤしていたものが、スーッと流れていくようなあの感覚は、今でも忘れられません。
C言語やVBでコードを書いていたときも、仕事はそこそこ楽しいと感じていました。けれども、このときの体験からプログラミングの楽しさが何倍にも増しました。
コードを書くのが楽しくなったことで、最適なコードの書き方、最適な変数やデータの管理、メモリ管理、例外処理なども意識するようになり、「なぜ、そうするのか?」「なぜ、そうしなければならないのか?」を考えるようになりました。
また、その後.NETやPHPなど、他の言語も触れましたが、C言語やVBを身に付けた時よりも短時間で、「あー、大体こういう感じね」が分かるようになりました。
私はエンジニアの「基礎力」を手に入れたのです。
Copyright © ITmedia, Inc. All Rights Reserved.