概要
- 超高層ビル建設 と 裏庭の小屋作り を対比し、エンジニア人生の二面性を描写
- 企業での大規模開発 と 個人プロジェクト の経験が相互に作用する重要性を強調
- 個人プロジェクト がエンジニアとしての好奇心や創造性を維持する役割
- 大規模開発 で得た知見を 個人開発 で応用することで成長を実感
- キャリア維持 には個人プロジェクトの継続が不可欠であると結論
エンジニア人生の二つのモード
- 超高層ビル建設 :設計図、許可、監査など多くの準備工程が必要
- 裏庭の小屋作り :計画なし、自由に材料を使い、即興で構築
- 企業開発 :数百人規模の連携と長期間のプロジェクト進行
- 個人プロジェクト :週末だけで完結する自由な創作活動
- 仕事と趣味 の二重生活という捉え方
企業開発で学ぶスケールの物理
- 実際のコーディング は全体作業のごく一部
- 設計書、テスト計画、レビュー などのドキュメント作成
- 大規模システム では設計やテストの手抜きが許されない現実
- Cloud Spanner など規模特有のツール利用経験
- 防御的設計思考 や 障害モード の事前検討
- 規模の大きさ が生む硬直性と自由度の制限
個人プロジェクトで設計を遊ぶ
- 個人開発初期 は設計やアーキテクチャを軽視しがち
- 企業で培った設計パターン が自然と個人開発にも浸透
- Homelab でのインフラ自動化やコードによる構成管理
- 自由な実験環境 で構造的規律を自分流に応用
- 個人プロジェクト が安定し、成長を実感
個人開発の自由と学び
- 失敗のコスト が小さく、試行錯誤が容易
- 開発者・レビュワー・ユーザー を一人で兼任
- 新しいツールや技術 を気軽に試せる環境
- GBAエミュレータ をGoで構築するなど、好奇心主導の開発
- 実験ごとに新しい知見や反省点 を獲得
好奇心とキャリアの持続
- 企業開発 は価値が大きいが、単調さや疲弊に陥りやすい
- 個人プロジェクト はソフトウェア開発の楽しさを再発見できる場
- 仕事と趣味 の両面から技術を体得することで、成長の加速
- 失敗や試行錯誤 を通じて、現場で即戦力となる知識を獲得
- 個人開発 がエンジニアとしての本質や創造性を守る役割
エンジニアとしての自分を守るために
- 日常業務 だけに依存すると、創造性ややる気が低下
- 個人プロジェクト は好奇心や実験精神を維持する生命線
- 企業開発 が「生き残るコード」の書き方を教え
- 個人開発 が「書きたいコード」を守り続ける理由
- 自分をエンジニアたらしめる場所 として、個人プロジェクトの継続が不可欠