プログラミング

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


関連記事

AWSへWebアプリケーション(Java)をデプロイする方法(書籍紹介)

対象者 ・個人開発者 ・ポートフォリオ作成者 手順 こちらの書籍を参考に私自身がAWSにデプロイした手順です。 書籍では図解もあってわかり易く解説されているので、ここでは流れを簡潔に説明します。 すで …

【Java入門】インターフェースの使い方まとめ

概要 インターフェースとは、内部実装を知る必要なく、利用する機能の接点のみを提供する仕組みです。 接点をソフトウェア的にいうと、メソッドのシグネチャと戻り値の型に当たります。 つまり、どんなメソッドに …

映画のレイティング判定をStateパターンで実装する

ユーザが見ることができる作品を、映画のレイティングシステムに従って選別できるように実装します。 映画のレイティングシステムとは、年齢制限する規制のことです。 G:全年齢 PG12:12歳以上 R15+ …

【Spring+Thymeleaf】HTMLの更新をビルドせずに反映させる方法

概要 Spring + Thymeleafの構成において、ビルド無しでHTMLの変更を反映する方法です。 前提 以下の構成で確認したものになります。 ・SpringBoot 2.6.4 ・Thymel …

【Java】オブジェクト指向の練習題材(会員オブジェクト)

前回記事、オブジェクト指向とは何なのかを簡単に説明してみるの練習題材です。   仕様 以下の会員クラスを作成し、Mainクラスで表示する。 会員クラスには、「会員」という単位で持つことできる …

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。