はじめに注記
セキュリティ保護の観点で、会社から研修内容については書いちゃ駄目と言われてます。
というわけで、その点への言及はしません。
書いている人のスペック
- 文系卒、ユーザー系SIer企業入社2ヶ月目
- 学生時代はVue.jsとpythonをいじって自動化だったり、サーバレスwebアプリを作ったりしてた。
- 故にサーバー周りやMySQLなど、スキル不足がチラつく。
- バックエンドよりもフロントエンドのスキルが好き。
- ぶっちゃけ、今までClassとかドキュメント見ながら書いてた。
- 最近はReactを勉強中Javaも復習しなきゃ…
JAVAの基礎をサーッと学んでみて
最初の所感
今までインタプリタの言語ばっかやっていたこともあって、まず最初に思ったことは、
「コンパイル鬼だるいな、、、」
ってのが正直な感想です。
コンパイルで確認して実行コマンドをまた打って、、、って慣れないなぁと。
だから最初から新卒で入った会社がPHPだとかPythonだとかだと、
この点煩わしくなくて、プログラミングやったことない人は、
よりとっかりやすいのだろうなとも思いました。
ただ一度コンパイルすると実行が高速化されたりなどのメリットもあり、
業界によってはどうしてもJavaである必要はあるんだなと思いました。
躓いた部分(自分の場合)
1.キャスト
ただでさえ型変換ですらTypescriptの時点で心折れてるのに、
「暗黙の型変換?ん?」ってなるわけですよ。
毎回エラーメッセージに面倒見てもらってます。
型関係だと、どうしてもメソッドでvoidとかStringを宣言したりするのも慣れませんね。
読む側になって型がわかるのはありがたいんだろうなとは思いますけども(他言語で型宣言せずに書きすぎたせい)。
2.参照型とプリミティブ型を扱った条件分岐
【Java】==とequalsの違い
(この記事はわかりやすくて声出ましたね。)
int型、String型とあって、そっから上のレイヤーにも抽象的な概念あるのかよ!ってなりました。
これはエラーで拾ってくれたりしないこともあるので、
equals()で書くことを頭の片隅に、この違いを覚えていけたらなと思ってます。
3.例外処理
tryのあとに()を書く、try-with-resources文とは仲違いしまくってます。
JavaScriptだとある程度エラーの書き方が決まっていて楽だったのになと。
ただjava.ioを組み合わせたりしてファイル操作するのは、
書いてて面白かったです(ムズいと感じるけど)。
4.class内で書いたgetterとsetterの存在を忘れてしまう
完全に個人の問題なんですけど、
ディレクトリ内のファイルが増えてくると、
各メソッド書いたことを忘れて、
毎回わざわざ小クラスでローカル変数を宣言し、
コンストラクタ内で親クラスからわざわざSuperで取ってきたりなど、
ついついsetterやgetterで書いたことを忘れてしまうんですよね…うっかりし過ぎ…
終わりに
駆け出しが書いた駄文を読んでいただき、誠にありがとうございました。
研修を通して情報系同期のスキルフルさに感嘆すると同時に
今まで中途半端に学習していたんだなと思うことが多いこの頃。
「これいつ使うんだろ、書くとき調べればよくね」とか考えずに、
たくさん有識者の同期や先輩方を頼りながらも、腐らず貪欲に知識を吸収していきたいですね。
Reactばっかやってないで復習しようね(戒め)
※この業界ビギナーすぎるので、何でも教えてください。
必要ならお返しにライフハックの知識教えます。