PHPerである私が会社でJavaの研修担当となり、私自身も大学生以来のJavaを勉強しなおして感じたことを書いていきたいと思います。
対象読者
・PHP初心者
・なんとなくPHPで動くプログラムを書いてきた人
・オブジェクト指向は何となくしか理解していない人
・バグを作ったり、直したりを繰り返している人
1.オブジェクト指向がきちんとわかるようになる
何のオブジェクトにどんなプロパティとメソッドを持たせてあげなければいけないか?
ということを意識してコーディングしないといけないので、自然とクラス設計に対する意識が高まります。
今までオブジェクト指向に対して曖昧な理解しかなかったのに、わかっていると思っていたことを猛省しています。汗)
2.エラーに強くなる
Javaが面倒だと以前から思っていたのは、例外処理を記述する必要があったからです。
(PHPにもありますが、ノンフレームワークでプログラミングしているレベルでは使いもしませんでしたし、フレームワークを使い始めてからも、自分で例外処理を書くことなどありませんでした)
でも研修で教えなければと自分でも学び直すうちに、例外を意識することでエラーの発生原因をコーディング時点で分かっている状態になれると気づきました。(遅すぎ!)
これを意識できると自然とバグを減らすことができるようになると思います。
また、これが意識できない人と一緒に仕事するのは・・・という気持ちにもなりました。
私自身、もっとエラーに強いコードを書けるようになりたいですね。
3.型を明確に意識するようになる
Javaは静的型付け言語のため、必ず型を定義しないといけません。
最初はこれを面倒だと思っていましたが、何の型で変数名は何にするのかを意識することで、今まで変数の値しか意識していなかったことに気づきましたし、変数の型を意識してコーディングできるようになりました。
変数の型に対する意識の弱さを改善できたことは良かったと思っています。
※PHPでもStrictモードが使えることを最近知りました。
PHP: declare – Manual
4.変数スコープを意識できるようになる
Javaはループ内変数はループ外では参照できないので、最初はこれがものすごくキライでした。
今では慣れてきて、当たり前のようにスコープを意識しています。
そのおかげで、定義した変数がどこで使われるかということがしっかりと頭に入ってくるようになりました。
むしろ今までそれを意識できていなかったことが恥ずかしいくらいなので、これを機に直すことができてよかったです。
5.プログラムを書く際の厳格さが身につく
1~4の総まとめになりますが、なんとなく動く感覚がまずいと気づけるようになりました。
このクラスにこれを持たせて、ここでこう処理して、この時は例外処理して・・・
そういう感覚が身につくのがJavaです。
でもプログラミングってそういう仕事ですよね?
変数の使いまわしができると思っていた時の私はまさしく、「クソプログラマ」だったわけです。
最後に
私はJavaの学習を通じて、プログラマとして成長できました。
今までPHPしか触ってこなかった人で、オブジェクト指向をきちんと理解したい、プログラマとして突き出たいと思っている人は是非ともJavaを学んでみてほしいと思っています。
まとめ
・Javaを学ぶことでオブジェクト指向がわかるようになる。
・エラーに強いコーディングスタイルが身につく。
・変数の型とスコープを意識できるようになり、バグに強い体質になる。
・プログラマとしてのレベルを高められる。