この記事は以前聞いた講義の内容をまとめたものです。
開発をどうするか:深さと幅のバランス#
開発者であれば誰でも、より良いコードを書き、より効率的に問題を解決し、より創造的な技術を探求したいと思うものです。しかし、どうすればより良い開発者として成長できるのでしょうか?
哲学者カントはこう言いました。「哲学ではなく哲学することを学ぶべきだ」彼の言葉を借りて「開発ではなく開発すること」を考え、深さと幅を育てることが大切です。
開発の深さ#
開発の深さとは、技術の構造と原理を理解し、自分が使っている技術がどのように動作するかを知っていく過程です。
自分のコードがなぜ動くのかを正確に知ることは、単純な機能実装を超えた重要なステップです。
なぜ深さを育てるべきか?#
- 機能をより速く実装できます
- バグの少ないコードを書けます
- デバッグが効率的に行えます
- これによって楽しさを感じられます
深さを育てる方法#
- なぜ動くのか/動かないのか突き止める:単に動作するかどうかの確認にとどまらず、理由を探求する
- ブラックボックスを減らす:Spring、Django、Reactなどで使うコマンドや関数がどのように動作するか掘り下げてみる
- 当たり前のことに疑問を持つ:慣れ親しんだコードでも意図を推測し、極端な状況を想像してみる
例えば、Springで使うアノテーションやReactの関数が内部的にどう動作するか分からないなら、それは自分にとってブラックボックスです。これを理解してこそ真の深さを育てることができます。
開発の幅#
開発の幅とは、さまざまな技術への関心と、自分の業務に関連する他の技術への理解を意味します。
国内外の開発コミュニティでトレンドを把握し、新しい技術に挑戦してみることも幅を広げる良い方法です。
なぜ幅を広げるべきか?#
- 新しい技術を素早く習得できます
- 良い設計を見抜く目が養われます
- 自分がもっと得意なことを発見できるかもしれません
- これも楽しさを感じられます
幅を広げる方法#
- 次のトイプロジェクトでGraphQLを使ってみる
- Webとは関係ないプログラムを作ってみる(例:メールクライアント)
- Djangoで作ったブログをSpring MVCで作り直してみる
- React-hook-formで実装したformをRecoilで再実装してみる
おすすめの活動と書籍#
幅を広げるために以下のような本を読んでみるのも良いでしょう:
- フレデリック・ブルックス、人月の神話
- チェット・ハース、Androidの意外な歴史
- フェリエンヌ・ヘルマンス、プログラマーの脳
- アラン・チューリング、知性について
- パク・ジョンイル、チューリング & ゲーデル:抽象的思考の偉大な力
人と技術への敬意#
技術の裏には人がいるという事実を必ず覚えておいてください。すべての技術的選択はトレードオフであり、ある技術がダメに見えたとしても、その代わりに得ているものがある可能性があります。
批判する前により良い方法を考え、多様性を尊重すべきです。
I Love My Job#
開発者は単にコードを書く人ではありません。
哲学的思考と実用的アプローチを通じて深さと幅をバランスよく育てていく時、真の楽しさを感じることができます。
皆さんも自分なりの方法で「開発すること」を実践してみてください!
Anybody can make history. Only a great man can write it.
— Oscar Wilde