ログログ

雑学エンジニアが学んだことの記録

プログラミング

PHPerがJavaを学ぶ5つのメリット

投稿日:2019年8月27日 更新日:

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を学ぶことでオブジェクト指向がわかるようになる。
・エラーに強いコーディングスタイルが身につく。
・変数の型とスコープを意識できるようになり、バグに強い体質になる。
・プログラマとしてのレベルを高められる。

-プログラミング
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


関連記事

Redmineでリンクにできない場合にチェックすること

目次 リンクにできない場合のチェック項目リンクにするには?リンクにできる例リンクにできない例 リンクにできない場合のチェック項目 前後に文字列がくっついている。 前後に全角スペースがある。 リンクの# …

no image

画面にonclickを書かずにイベントを発生させる方法

画面にonclickを記述すると、JavaScript側で関数名が変更になった際の修正が面倒になる。 なのでonclickを記述せずにイベントを発生させるように記述することが望ましいと子ドレビューで指 …

オブジェクト指向でじゃんけんを作ってみる

最近、プログラム自体を書いていない時間を多いので、再勉強がてら少しコードを書いてみました。 目次 何を作ったか?OOPで考慮したこと設計上の条件動作例ソースコード 何を作ったか? テーマ:じゃんけん( …

VBAが書けるまでにどのくらいかかったか?

これからVBAを学ぼうとしている人向けに参考情報として書きます。 目次 前提結論3か月くらいAPIのツール作成何で勉強したか?Office TANAKAエクセルの神髄書籍最後に 前提 前提として、私の …

pageEncodingとcontentTypeのcharsetの違い

pageEncodingとcontentTypeのcharsetは処理されるタイミングが異なります。 それによって文字化けの原因につながっているので、どのように設定すればいいかを解説していきます。 目 …