どうも。ハゲタカです。
最近まじでハゲてきたんじゃないかと不安になっています。
先日、トラさんが良い感じの記事を書いてくれました。
ちなみにトラさんは「Java」か「ruby」と言ってましたが、僕は「Java」か「C」だと思っています。
さて、今日はそんなトラさんの記事に便乗して、僕は「新卒で初めて開発者として仕事をする人に意識してほしいこと」を書きたいなと思います。ちなみに今回はBtoB Javaエンジニア編です。
コードに触る時間のうち9割は・・・
前職の時、新人研修担当として30人近い人数を見ていました。
そのときに「先輩相談させてください。」と僕のもとに駆け込んできた新人と話しているとある勘違いに気づいたのです。
彼らはみんな「コードを書くフェーズで悩んでいた」のです。
- 実装方針が思いつきません
- こうやって書いて見たんですけどOutOfMemoryおこします
- どうやったらこの冗長な表現を短くできますか
- この処理を代替している良い感じのUtil知りませんか
エンジニアとして働く上で覚悟してほしいのです。コードを書くのは全体の1割の時間で良いんです。むしろ9割の時間はコードを読むことに徹底してほしいのです。
特に新人のうちは、会社の製品のコードを把握していませんし、プログラミング経験がない人は特に何が良いコードかわかりません。そして全体のコードを把握せずに実装してしまうと、ほぼ100%の確率でバグやデグレードが発生します。
書きたい気持ちはわかりますが、その下準備が大切。しっかりと9割読むところから始めましょう!
effective Javaという本を読め!
https://www.amazon.co.jp/EFFECTIVE-JAVA-Java-Joshua-Bloch/dp/4621066056
ただしこの本は内容が非常に難しいので、面倒見の良い先輩を捕まえて輪読してもらうと良いと思います。ちなみに僕のチームにくると絶対に新人にはeffective Javaとデザインパターンは勉強してもらっていました。
effective JavaはJavaを書く上でのスピリットが書かれています。そしてこの本の著者がライブラリの開発などに携わってきた人なので、かなり厳格にJavaのお作法について書いてあります。
※一度publicにして世界にリリースしたコードは二度と変更できないと思え、など。笑
どこまでインスパイアされるかは会社や個人次第ですが、super BtoB Javaエンジニアを志すからには読んでおいて損はない1冊です。
プリンシパルオブプログラミングという本を読め!
本の紹介ばかりで恐縮です。
この本はプログラミングするときのスピリットについて書かれた本です。僕がまだまだ駆け出しだったことに、チームのマネージャーからオススメされた1冊でした。
リーダブルコードも有名な本ですが、こちらはもっと広く浅く、プログラミングをするときの思想について書かれています。知っておくと、自分の頭で何が良いコードか考えることができるようになるのでオススメです。
また、他人のコードレビューをばんばんこなしていくようになった中堅の方にもオススメの1冊です。
JUnitを書くことを覚えよ
開発者とテスターを分けている企業では、さほどJUnitを重視していないこともあります。けれども、僕は開発者として、JUnitなしでは開発できない身体になってしまいました。
JUnitがないと、自分でロジックを書いたときに何が正しいかわからなくなるんです。しかも、細かにテストできないと不安になりますよね。自分の書いたロジックのパーツの1つ1つが意図した通りに動いていることを、こまめに確認するためにもJUnitは書くべきだと思っています。
ちなみに「画面を開いて実際にオペレーションすれば良いじゃん」なんて意見もあるかと思います。
ただ、あなたは本当に画面を開いて、イレギュラーケースを含めて全データパターンの振る舞いをテストできますか?僕はそれが出来ないのでJUnitを書いています。
※ちなみにJUnitがあるとそれを回すだけでデグレードを見つけることができるので、保守が楽になりますよ!
まとめ
他にも伝えたいことはたくさんあります。が、あえて私がブログに書いてまで伝えたいのはこれぐらいかなと思います。
基本的なことはどの会社でも教えてもらえるものです。
ただ会社で教えてくれる内容は、あくまでその会社の中での基本的な内容にとどまっています。なので是非、
好奇心 と 探究心
を持って楽しくプログラミングしてください!
Jildinは日本の新米エンジニアを応援しています!