フラミナル

考え方や調べたことを書き殴ります。IT技術系記事多め

AIで胸のつっかえが取れて、心残りが減った【100日チャレンジ】

ITの業界にいると情報発信が盛んなので、みんなの勉強の成果がどんどん飛び込んでくる。それを見るたびに 自分もいつかやりたいな、やらないといけないな と思っていた。

特に本やハンズオンにもよく取り上げられる

  • OS自作
  • TCP/IPスタックの自作
  • 独自言語
  • コンパイラ自作
  • インタプリタ自作
  • RDBMS自作
  • エミュレーター

などは頻繁に見るけどそのハードルの高さと基礎知識のなさ、また即効性の無さからつねに後回しにしてきた。(キャリアのスタートが文系大学だったのでCSを学んでいないのも大きい)

なので、これらを見かけるたびに徐々に自分の中に「やらないとなあ」とか「自分ってダメだなあ」という枷を背負ってきた気がする。

実際にやった人に話を聞けば「ほとんど覚えていない」「実務で全く役に立たない」と言われるので(きっと何かの形で役に立っているが意識できないレベルなんだろう)、酸っぱい葡萄のように自分を納得させていた。

転機が訪れる

Vibe Coding と100日チャレンジだ。

blog.framinal.life

プログラミングをしたことがない大学生が ChatGPT を使って100日間、毎日一つアプリを作っていくこの本は自分にとっていいきっかけだった。著者の時の比べ自律的な AI Agent が登場し、大きく補助をしてもらえるこの環境なら色々と学べるかもしれないとそう思った。

ということで AI を利用してコーディングを初めてみた。人力の作業は可能な限り0とし、すべてAIにつくってもらう開発だ。(#LLMでバックエンド100日チャレンジ - Search / X

初日は散々だった。ToDoアプリすらまともに作れない結果に絶望した。

徐々に勘所を掴む

翌日は Go から Next.js にかえプロンプトもめちゃくちゃシンプルにした。その結果驚くほど簡単に成果が出た。これがAI Agentか。

だんだん慣れていき自分の知らない概念を理解するためのツールを作ったりもしてみた。

ついに対決へ

徐々に感覚を掴み Day31 では TCP/IP スタックに挑戦した。1日2時間程度という目標を立てていたが、数日はしっかりかかった。

IP/TCPはすんなりできたが、TLSとHTTP/2に苦しめられた。しかし最後にはなんとか形になり、独自プロトコルで通信に成功した。

感無量だった。自分が棚に上げ続けてきたことがはじめて形になった瞬間だった。

おそらく、AIがなければ将来暇になったとしてもきっとTCP/IPを作ることはなかったということを考えると、この経験は大きい。

もちろん作るにあたってなんとなーーーくしか実装を把握していないのでなんら定着はないだろうが「Goでこうやって作るのか」とか「AIで作るとこれぐらいのクオリティのものがこれぐらいの時間でできるのか」と分かったのは大きい。

なにより「胸の支えが1つ取り除けた」というのが最高に大きい。この調子でどんどん心残りを消化したい。

RDBMSを作る

勢いにのって RDBMS を作ることもできた。これも数日かかった。あとから永続化させようとしたら B+tree を保存する処理の実装がめちゃくちゃ大変(そう)だった。

またTransactionの実装は永久にエラーが解決せず放置した。

しかし RDBMS が作れた。既存のDBの凄さを肌で少しだけ感じつつ、また荷物を一つ下ろすことができた。

とにかく作ってみる

その後は Claude Sonnet 4.0 の強力な後押しのおかげもあり、いままで触ってきた様々なシステムや基礎技術を実装していった。どれも自分の理解としては5%にも満たないとは思うが、すべて 「(AIをつかって)実装したことがある」 という状態になれた。

他の人から見たら「自分で実装もせず身にもなっていないこの行為に何の意味があるのか?」と言われることだろうが、自分にとっては何らかの形であったとしてもずっと心残りになっていたこれらのものを 「一度作った」 という事実があることが非常に嬉しい。

心が軽くなるだけでなく「次は何の挑戦をしようか?」と頭をクリアにできたことが何よりも嬉しい。

まとめ

#LLMでバックエンド100日チャレンジはまだ道半ばであるが、最初に思ったよりも大きな効果を自分にもたらしてくれている。

大きく言えば 「世の中でよく使われるIT技術(ソフトウェア分野)の大半の技術を作った」 ので、新しいことが出てきても 「作ってみて軽く理解しよう」 というマインドになれたし、「各技術を専門でやっている人・コミュニティの凄さ」を再確認できた。

もし何か胸につっかえているものがあり、それがAIによって簡単にできるなら一歩踏みだすことをお勧めします。