🧠

AIを「理解に使う」か「理解をスキップするために使う」か。僕は「理解に使う」

に公開

はじめに

この記事では、主に以下のトピックについて、自分のためのアウトプットとして書きます。

  • AIの活用方法。AIを「理解に使う」か「理解をスキップするために使う」か
  • "ディープコードリーディング" という学習法について

AIを「理解に使う」または「理解をスキップするために使う」

https://note.com/simplearchitect/n/na43d5b84fdf1?sub_rt=share_pw

僕は 「AIを理解に使う」タイプ だったので、「理解スキップタイプ」 の方たちに比べると「自分、速度遅いな...」と不安になることが多かったのですが、その不安視していた速度は、"単純な速度、スピード" であり、本質的なものではないんだ。 と気付けました。

AIが無かった(使いものにならない)時代に比べれば、何かを理解するための時間もAIがブーストをかけてくれるので、理解するまでのスピードが上がったのはもちろんですが、理解スキップタイプの人に比べればスピードが落ちるのは当然ですよね。だって、「スキップせず理解に時間をかけているから

個人的には 「スピード > 量 > 質」 だと思っているので、もちろんスピードは大切なのですが、
"理解をスキップしてしまうほどのスピードは危うい" ということに気付けました。

何かを学ぶ上で、「理解をスキップするためにAIを使う人」と「理解するためにAIを使う人」とでは圧倒的な差が出る。

スピードを上げても、理解をスキップしていれば "質" の部分で取り返しがつかなくなります。

AIを活用し、"ディープコードリーディング" を実践すれば、妥協せず「理解する」を実践できる。

本当に、素晴らしい時代です 🎉

🔸 AIエンジニアリングの希少価値

多くの人は、Vibe Coding[1] みたいなもので、素人でのアプリ作れる世界というのを想定してる人もいるかもしれないが、少なくともここ数年の見立てでは、市場から、求められているのでは、素人ではなく、「AIエンジニアリングの知識と経験のある人」と感じる。
Vibe Coding が普通に使えるようになった現在、AIに指示に指示をする技術がスピードとクオリティに影響する。だから、コード知らないけどという状態は実は危うい。

確かに、Vibe Codingは自然言語で伝えるだけで、欲しい機能等を実装してくれるので、分からない部分をそのままにし、どんどん進めることもできるが、内部の理解を疎かにするのは危険。

分からないことを学ぶのは面倒と感じる人もいるかもしれないが、AI時代は「分からないことを学び、理解を深める」という行為を実現するハードルが本当に低くなった。

分からないことを学ぶのは面倒だと感じる人もいるかもしれない。
しかしAI時代では、必要な情報を即座に得られるため、「学び、理解を深める」という行為のハードルは驚くほど低くなった。

何回同じことを聞いても、AIは人間みたいに感情的にならず、淡々と答えてくれる。
AIの出力結果に満足できず、こちらから怒ってしまったとしても、AIは「すみません!」と、すぐに謝罪し、質を改善して出力し直してくれる。見習いたいくらい謙虚で、とても寛大だ。

  • 「また聞いたら怒られちゃうかも」
  • 「やべえ、ここ何だっけ?さっき聞いたばっかなのに...」

こういう "人" が絡んだ時に起きる悩みで悩む必要が無くなるから、
脳のリソースを無駄に割かずに済む。

これだけ素晴らしい環境が整ってるので、むしろ分からないことはどんどん学ぶべきだ。

🔸 今エンジニアをしている人がめっちゃお得な理由

もしかすると、5年後には、今やっている仕事の形態は物凄くかわっているかもしれないが、素人が開発する世界ではなく(一部ありそうだが)大半は、AIエンジニアリングが出来る人が相変わらず重宝されている気はする。
何がおいしいって、今だと、AIエンジニアリング歴1~2年でエキスパート扱いだ。
だってLLM使って10年の人なんか居ないから。今勉強する大チャンスだと思う。

🔸 求められるAIエンジニアになるためには?

多くの人は、「理解する」のをスキップするためにAIを使っているかもしれないが、お勧めは、AIに頼って「理解」を高めて、本体を強くすることだ。今はこれが出来る時代になった。
AIというアーマーによって、本体が10倍強ければ、それが10倍増幅されるイメージだ。
でも、本体がしょぼければ、ゴミを10倍のスピードで生産することになる。

これは全く個人的な感想だが、
深い理解と経験のある人、つまりしっかり勉強している人という事になると思う。

これは天才とか、才能ある人でないといけないという話ではなく、勉強した人になると思う。
なぜなら、今はAIが勉強するのをブーストしてくれるから。より、深く学ぶのが本当に楽になっている。

この部分、すごい腑に落ちました。

理解した上で使う "AIという名のツール" は、諸刃の剣にもなり得る。

AIを使えば、本体(自分自身)の強化をいつでも好きな時に出来るし、理解に妥協せず学ぶことが出来る時代に突入しています。

いつでもメタルキング(学びたい答え、情報)を目の前に呼び出して、倒して(学習)、レベルアップ(理解度を上げる)できる "チート" を誰もが使える時代です。

"ディープコードリーディング" とは?

https://note.com/simplearchitect/n/n312c0e0e1a37

まず、"ディープコードリーディング" とは何なのか?
考案者の牛尾剛 氏は記事の中で以下のように仰っています。

ディープコードリーディングは、めっちゃディープなコードリーディングの事だ。
PR完全理解&全部読み(名付けてディープコードリーディング)

記事を読んだうえで、自分は以下のように解釈させていただきました。

🔸 ディープコードリーディング
最初に選んだPR(Pull Request)を完全に理解するまで徹底的に読む学習方法

🔸 "ディープコードリーディング" によって得た体験

牛尾剛 氏は、ディープコードリーディングで1つのPRを完全に理解した結果、そのリポジトリの主要なアーキテクチャはすべて理解できている感じになったとのこと。

最初の1つのPRが理解出来たことで、他のPRが速攻で読めるようになり(飛ばし読みではなく)、PRの差分を眺めるだけでほとんど理解できるように。

意図がわからないときだけ、

  • ローカルにチェックアウトした最新のコードを読む
  • リファレンスを追いかける
  • AIにチャットで聞く

でも、ほとんどそれも必要ない感じだったみたいです。

自分がかつて感じたことのない「コンフィデンス」を感じていた。どのPRを観ても全然簡単に理解できるし、時間もかからない。これが、技術イケメンの皆さんが観てた風景なのか。

僕もいつか、技術イケメンさんが観てる景色を観てみたい 🤩

🔸 副次的発見からPRを分割する技術を学ぶ

PRを追いかけていると、副次的な効果もあった。それは、他の開発者がどんな感じでPRを作っているか、他の人が Approve しているかが分かったことだ。
PR完全理解&全部読み(名付けてディープコードリーディング)をやることで、他の人のPRが、ホンマしょーもないぐらい小さくて簡単で、必要な機能すら満たしていないレベルであるとわかった。
その機能を将来実現するための1つのパーツぐらいでもPRを作っていた。だから、レビューがクッソ簡単だからみんなApproveしてくれるという流れだとわかった。

単に自分のPRは「でかく」「リスキー」だったのだ。だから、Approver は 観るのも大変だったのだ。

PRを適切に分割できない場合は、AIに頼ってしまおう。
AIに相談すれば、どのようにPRを分けるかのアイデアをくれるし、どういう風に段階的にPRを書いたらよいかの案までくれる。

PRは「1つの機能実現を、1つのPRで完結させようとせずに、とにかく小さく、簡単に(必要な機能すら満たしていないレベルで)、その機能を将来実現するための1つのパーツぐらいで作成する」

こうすることで、
レビューが簡単=みんなApproveしてくれる。
という流れを "ディープコードリーディング" のおかげで発見できたという。

🔸 コンフィデンスを得られた体験

ディープコードリーディングでPR完全理解したことで、

  • 自分のやった変更に対して、他人に聞くことなくコンフィデンス[2]を持てるようになれた
  • 他の全く知らないコードベースでも、ディープコードリーディングをすればコンフィデンスを得られると分かったので、知らないコードベースに対する恐れがなくなった。

「他人のPRを読んで100%理解する」→ コンフィデンスに繋がる

🔸 Vibe Coding時代に必要なスキル

絶対的に重要だと思うのは結局「理解」なのだ。Vibe コーディングは単なるツールだが、理解こそが必要で、これがあると、すべてが速くなって、コンフィデンスが持てる。

Vibe Codingは単なるツールであり、「理解」こそが必要。

理解した上で、Vibe Codingをツールとして使用すれば、全てが速くなり、コンフィデンスまで得られ、AIに適切な指示も出せる。AIがアホなコードを書いたときも「違う」と言い切れる。

AIが無かった(使いものにならない)時代は「理解」に時間がかかり、途中で妥協せざるを得なかったことも、AIの発展により、妥協せず本質レベルで理解することが短期間で出来るようになったAI時代の今はまさに最高な時代である。

Vibe Codingにより、AIが勝手に実装してくれる体験はもちろん最高だが、それよりも、妥協せず理解できる環境が出来たのが最高である。

まとめ

どちらの記事も素敵な内容で勉強になりました ❤️‍🔥

今後もAIを理解に使い、ディープコードリーディングを実践し、コンフィデンスを得て生産性を上げていくために、沢山学んでいこうと思います。

自分が「今」できることをやっていこうと思う。
ちゃんと地に足つけていこ 😌

参考文献

https://note.com/simplearchitect/n/na43d5b84fdf1?sub_rt=share_pw
https://note.com/simplearchitect/n/n312c0e0e1a37

脚注
  1. 開発者が自然言語(普段使っている言葉)で指示を出すことで、AI(LLM)にコード生成・修正させるプログラミング手法のこと。2025年 2月に Andrej Karpathy(アンドレイ・カルパティ)氏によって提唱された概念で、「音楽の即興演奏(ジャムセッション)のように、"バイブス"(雰囲気、感覚、ノリ)を重視しながら、自然言語によるAIとの対話を通じて開発を進める」という特徴を持っています。AI駆動開発で使われるプログラミング手法。 ↩︎

  2. この理解/変更が正しいと言い切れる自信の度合いのこと ↩︎

Discussion