2025年現在、ソフトウェア開発の世界では効率がますます重視されるようになり、AIを使いこなせないと開発者失格だとまで言われるようになっています。
しかし、ソフトウェア開発者はそもそもなぜ、コードを書く道を選んだのでしょうか。Joshua Barretto氏はブログ記事「Writing Toy Software Is A Joy」を公開し、その答えは、「おもちゃのようなソフトウェア書いてみる」という行為にあると主張しています。
同氏によると、トイプログラムの目的は「動かすこと」ではなく「学ぶこと」にあります。
完璧さよりも探索と発見のプロセスを重視し、20%の労力で80%の機能を目指すスタンスが基本となります。
自前でOSカーネルやエディタを作成すると、ソフトウェアの「形」を決める要素が見えてくるため、その知見を日々の実務に生かすことができるようになります。難しそうに見える技術も、小さく試作してみると案外できてしまうという、成功体験が最大の報酬だとのことです。
おすすめのトイプロジェクトの例
同氏はトイプロジェクトの例として以下をリストアップしています。
プロジェクト | 難易度 | 時間目安 |
---|---|---|
正規表現エンジン | ★★☆☆☆ | 約5日 |
OSカーネル | ★★★★★★★ | 約2ヶ月 |
GBAゲーム | ★★★☆☆ | 約2週間 |
テキストエディタ | ★★★★☆ | 2〜4週間 |
GUIツールキット | ★★★★☆ | 2〜3週間 |
物理エンジン | ★★★★☆ | 約1週間 |
チェスAI | ★★★★☆ | 2〜5日 |
これは関連資料も多く、自学にも最適で、言語スキルや興味に応じてカスタマイズすることもできます。
LLMに頼らない楽しさ
同氏はAIは便利だが、トイプログラムにおいてはあえてLLMを使わない勇気も大切で、迷いながら、バグに出会いながら、自分の頭で考える。それが「自分で作る」最大の意味だとしています。
「走った人だけがランナーズ・ハイを感じる」ことができ、 LLMでは味わえない「コードを書く歓び」を思い出すことができるとまとめています。
Hacker Newsでもこの記事に関する議論が行われており、実用性がなくても、自分の好奇心を満たすためにソフトウェアを作ることは楽しいという意見が共有されています。また、プロジェクトの具体的なアイデアが多数紹介されていますので、実践してみたい方は参考にすることをおすすめします。