ジュニア開発者へのアドバイス – DEVコミュニティ
15年以上の開発キャリアを通じて、私が効率を飛躍的に向上させたいくつかのことを学びました。この記事で、その学びを共有します。
構成:
- 基本的なアドバイス -- このあとに続くものの重要な背景と動機付け
- 技術的アドバイス -- メインコンテンツ
- 推奨資料 -- 初心者向けの高品質な本やブログへのリンク
このブログ記事では、さらに調査する価値のある有用な概念が言及され、リンクされています。
ジュニアへの基本的なアドバイス
1. コードは本質ではない
開発者として、私たちはコードを書くのが好きです。多くの人は、明確な課題が与えられるのを望んでいます。外の世界を気にせずに解決する楽しい技術的なパズルです。
正しい問題を解決しているかを確認するために合理的な努力をしてください。ピーター・ドラッカーに引用すると:効率的に行う余分なことよりも役に立たないことは何もない。フィードバックを早くかつ頻繁に集めることです。通常は実際のユーザーへの継続的デリバリーによってです。アジャイルで ありなさい。
ソフトウェア開発は費用がかかり、現実世界のプロジェクトの大部分は通常メンテナンスに費やされます。これにユーザー/ビジネスの成果という目標を組み合わせた場合、一番いいコードはしばしばコードがないことです。ビル・ゲイツの引用で「コードの進捗をコード行数で測ることは、航空機の建設進捗を重さで測るようなものだ」と。
2. ソフトウェアデザインは重要だ
開発キャリアの最初の5年間、ソフトウェアデザインはソフトウェアアーキテクトや特別な役割を持つ他の人々にとってのものだと思っていました。私は「物事を成し遂げる」ことに集中し、テストを書くようなソフトウェアデザインや実践を最良の場合でも邪魔だと見ていました。私のコードは機能しており、多くのことを成し遂げていました。少なくともそう思っていました。
その後、ロバート・C・マーティンによるクリーンコードを読みました。この本はソフトウェアデザインに関心を持つよう奨励し、例や多くの技術的ヒューリスティックスを含んでいます。本からの主な教訓は、「速く行く唯一の方法はうまく行くことです」。言い換えると、ごちゃごちゃにすると遅くなります。参考:TradableQualityHypothesis、DesignStaminaHypothesis
もちろん、うまく設計されたクリーンなコードを書くことは時間と努力がかかります。そして始めたとき、あなたは遅くなり、間違いを犯すでしょう。シンプルは簡単ではない。
3. BESTな実践を使ってください
テストを書くことはたいてい有益です。例外はありますが、ほとんどの場合、自動テストを書くことは非常に合理的です。テストを書くことは、最善の実践の一例です。
テストの書き方が新しい場合、ただ最善の実践に従って、すべてのものにテストを書いてください。始めるときに、最善の実践を盲目的に従った方が、未発達のあなた自身の判断に従うよりも良いでしょう。時間が経つにつれてテストを効果的に書く方法を学び、混乱したあなたとテストを書く価値がない状況との違いがわかるようになるでしょう。テストがもたらす価値をより身近に感じるようになるのも経験からです。トラブルシューティングセッションの減少や、テストにより可能にされる安心リファクタリングです。ジャッジメントを発展させた後、最善の実践を超えることができます。
このアドバイスは、あなたが初心者であるいかなる分野においても適用されます。自動テストは単なる一例です。
大きな課題の1つは、合理的なベストプラクティスと非合理的なもの、もしくは逆効果との違いを区別することは容易ではないということです。これは、ほとんどの既存のコードが混乱しており、ほとんどの開発者(「経験豊かな」と「シニア」を含む)がソフトウェアデザインの基本を知らないという事実でさらに複雑になっています。このことは良いメンターが非常に価値があることを意味します。それがなければ、私自身の経験に基づいたアドバイスは、あなたの言語やフレームワークのコミュニティに特有のベストプラクティスに警戒することです。何十年も前から存在しているエバーグリーンなアドバイスを探してください。
こちらの記事はdev.toの良い記事を日本人向けに翻訳しています。
https://dev.to/jeroendedauw/advice-for-junior-developers-30am