コーディングエージェントでとりあえず動くものは作れるけど、技術的な理解が全く伴わない問題。未経験からエンジニア転職するときにどう埋めていくか、2つの解決策と4つのまんじティップスを書きます。
まんじです〜
今回はAIで動くものは作れるけど、意味不明問題っぽい話でも書こうかと思います。
最近だとコーディングエージェントでとりあえず動くものは作れてしまうんですけど、普通に技術的な理解が伴わなくて、未経験からのエンジニア転職とかで技術的な質問に全く答えられない。
採用側としても普通に実務だと厳しいんで、落ちてしまうという問題があります。
なんで、動くものはできるんですけど、技術的な理解をどうやって埋めていくのかみたいなところを書いていきます。
実はAIが出る前から本質は変わってない
一応最近はアフターAIの時代なんで、「AIのせいで動くものはできるけど全然理解できません」みたいな風に思われがちなんですけど、実はAIが出る前の僕が駆け出しの頃とかも結局同じでした。
Stack Overflowとかで適当に検索して、よくわかんねえけどコピペしてとりあえず動く、みたいなのが結構あったんすね。
あとは本当に駆け出しからジュニアレベルになったぐらいの人でも、よくわかんないけれど「とりあえずちょっと動くっぽいぞ」みたいな感じでプルリクエスト出して、ボコボコにコードレビューで叩かれるみたいなことがあったんで。
そういったところを踏まえると、実は本質的なところはあんまり変わってないかなっていう風に思うわけなんですね。
で、これを解決する方法なんですけど、個人的に明確な答えはやっぱないかなと思うんですけど、自分的にはこの2つでやればいいんじゃねっていうのがあります。
- ちびちびと理解しつつやる
- 目的の物を作る作業と理解する作業を分けてやる
この2つでどっちがいいとかっていうのが案外なかったりするんで、そこら辺踏まえて書きます。
1. ちびちびと理解しつつやる
まず1つ目のソリューションが、ちびちびやるっていう話です。
実際にコーディングエージェントにプロンプトを打ち込んでいくわけなんですけど、それをステップバイステップで打ち込むというか、粒度を粗くしないで範囲を限定的にしてあげて、それで開発していく感じですね。
例えば、
- 「このボタンをクリックしたらこういうモーダルを開くようにして、こういった手順で実装してください」
- 「このエンドポイントでこういった処理をしたいので、こういう処理のフローで作ってください」
みたいなのを、ちょっとめんどくさいんですけど、AIで一気にやる範囲をちっちゃくして、ちびちびと開発して確認していってっていう感じですね。
一応僕自身、実務でエンジニア作業ゲー、エンジニア労働ゲーをしてるんですけど、ちびちびとはそんなにやらないんですけど、明確な手順を日本語でAIにちゃんと伝えてあげて、出てきたコードをちゃんとレビューするみたいなやり方がすごい多いです。
実務の場合と、未経験からエンジニア転職で勉強してポートフォリオ作ってく時とは、厳密にはフローは違います。
実務の方は勉強っていうよりかは成果物を出す、ちゃんとアウトプットを出すのが目的なんで。
ただ、実務入る前の勉強とめちゃくちゃ大きな違いがあるかって言われると、意外とそんなに違いはなかったりするんで、ちびちびとプロンプト打って確認して、っていうのがいいと思います。
確認する時にコード読んだりとか、システムの理解をしようとするとか、処理の流れを追うとか、そういう風にやるのが普通にいいかなっていうのが1つ目の話ですね。
プロンプト打って確認して、ちゃんと理解して。プロンプト打って確認して、ちゃんと理解して、みたいな。
コード読んでる時に「全然よくわかんねえな」みたいになったら、AIにちゃんと聞いたり、ちょっと調べたりとかする。
そうすると「とりあえず動くものだけできて理解が全く伴わない」みたいな感じからちょっと抜けれるのかなと思うんで、そんな感じも1つおすすめですね。
2. 目的の物を作る作業と理解する作業を分ける
2つ目の解決策っぽいものの提案としては、目的の物を作る作業と理解する作業を分けるっていう話ですね。
ちびちびと若干被るっちゃ被るんですけど、作りたいものとか作りたい機能があると思うんで、そこを一気にざっと出してもらう。
で、出してもらってから、Gitでコミット・プッシュする前にちゃんとコードを自分でレビューというか理解して、「ちゃんと理解できてて、OKだな」って思ってからコミット・プッシュして次に進む。
これをひたすら繰り返すみたいな感じですね。
ちびちびのもうちょっと粗い版というか、一気に出してもらってそれで理解するっていう感じですね。
ただ、一気に出しすぎると理解が追いつかねえみたいなことが結構往々にしてあるのかなと思ってて、そういった時はデバッガー起動してデバッグするとか、TypeScriptみたいなところで言うとconsole.log打ち込みまくって「こんな感じにデータが流れてるんだな」って処理のフローを追うみたいな感じですね。
最近だとAIのモデルが優秀すぎて、一気に作ろうとすると作りすぎてしまう。めっちゃ作れてしまうんで。
一気にやりすぎるとやっぱ理解が追いつかないで、「とりあえず動くけど全然全く理解できん」みたいになりがちなんで、ある程度のところまで粒度は絞った方がいいのかなっていうのは思うところっすね。
理解するときはconsole.logで十分
昔は結構僕もデバッガーみたいの使ってたんですけど、ぶっちゃけ普通にconsole.logで変数の中見て、処理の流れを追うみたいなところで、いいのかなとは思ったりはしますね。
そんな感じのことをしつつ、頑張って理解しようとするみたいなのでいいのかなっていうのは思います。
結構繰り返しちゃってるんですけど、全然知らない用語とか、全然よく分からない処理があったら、そこは都度都度AIに聞きながら進めてくみたいな感じで良いと思います。
シンプルに言うと、AIに目的の物を出してもらいつつ、それでちゃんと理解をしながら進めていこうっていう話ですね。
AIで「こういうアプリ作って」って言ったらもうとりあえずまるっと出てきてしまう時代なんですけど、そこをもうちょっと粒度下げて段階的にやって、ちゃんと理解もしつつ作っていこうみたいな感じの話ですね。
まんじティップス1. 知らない単語や意味不明な部分をできるだけ無視しない
ここからは「AIで動くものは作れるけど意味不明」っていうところから、まんじティップスをちょっと書いていきます。
1つ目が、知らない単語とか意味不明な部分はできるだけ無視しないっていうところですね。
これは結構つまんない話ではあるんですけど、僕も実務やってたり、実務以外でもAIで色々わちゃわちゃとやっていて、知らない単語とかよくわからんところがちょいちょい出てくるんで、そこら辺はめんどくさいんですけどちゃんと調べてます。
- とりあえずAIに一旦「これはどういうことですか?」って聞いてみる
- もうちょっと全体的な理解が求められる場合は普通にネット検索して「このライブラリはこんな感じの用途で使うんだな」って把握する
ちょっと前の自分の実務で言うと、Apache Kafkaっていうミドルウェアっていうのかな、何て言うんすかね、あれは。そういうものが出てきて「なんだこれ」と思って。
コンシューマーとかプロデューサーとか出てきて、複数のリポジトリで繋がってるんで「よくわかんないよな」と思いながら、そこら辺もAIに聞きながら「あ、こういうやつなのか」って感じで、無視しないで少しだけ理解してあげる、っていうのをやってます。
大体なんかシステム作ってると「これよくわかんねえな」っていうのは絶対あるんで、そこを完全にフル無視しないで、都度ちょっと調べてあげる。
「こんな感じっぽいぞ」ぐらいでいいので、ちびちびと理解してくっていうのを日々習慣にするみたいなところですね。
これは1日単位だとそんなに大きな差にはなんないんですけど、1ヶ月、2ヶ月、3ヶ月みたいになってくるとやっぱり結構差になってくるんで、サボらないで僕もやるようにしてますし、未経験からの転職の場合でもやるといいのかなっていうのはめっちゃ思いますね。
知らん単語とか処理をちゃんとAIに聞いたり調べたりするのはめっちゃいいっすね。
まんじティップス2. 完全に理解しなくてもOKというマインド
2つ目のまんじティップスとしては、完全に理解しなくてもOKっていうマインドですね。
「分かんないことがあったらちゃんと調べましょう」って言った後なんですけど、ある程度7、8割ぐらい理解できてればいいんじゃねみたいな。
7割から8割ぐらいの理解度っていうか、「知ってるぐらい」みたいな。
「ちょっとだけ分かんないぞ」「よくわかんねえな」みたいなのはある程度放置しつつ、そんなに完璧主義になりすぎないぐらいのマインドで進めるといいのかなっていうのはめっちゃ思いますね。
ある程度理解はしたいけれど、完璧にやりすぎると消耗するんで。
ある程度ちょっと意識高めだけど、ちょっと緩さも持つみたいな感じのマインドセットで進めるといいのかなっていう感じですね。
まんじティップス3. 基礎的なところは手打ちでやる
3つ目のティップスとしては、本当に基本的なところ、基礎的なところは手打ちでやった方がいいっていう話です。
例えば、
- ポートフォリオを作る前にプログラミング言語1個ちょっと勉強する
- ハンズオンを見て真似して作ってみる
こういったところはちゃんと手打ちでやってあげた方が、個人的には最初はいいのかなっていうのは思いますね。
本当に入門フェーズだと、僕はコーディングエージェントでガリガリやらせるのはあんまり推奨しないですね。
ハンズオン系とかUdemyの講座とかをコーディングエージェントにやらせてしまうと、多分勉強にあんまなんないかなっていうのはそのフェーズでは思いますね。
で、一定超えてきてポートフォリオを作ってくみたいな具合になってきたら、コーディングエージェントをめっちゃ使いながら、ちゃんと理解をしながら進めてくっていう感じです。
これが若干ちょっと難しいんですけど、僕は入門フェーズとか本当に基本的なところ、ポートフォリオを作る前ぐらいまではわりかし手打ちが推奨ですね。
まんじティップス4. AIありでもちょい難しいことに挑戦する
4つ目のティップスは、AIあり、コーディングエージェントありでもちょい難しいことに挑戦するっていうところですね。
この「ちょい難しいこと」っていうのは何かって言うと、例えば、
- ポートフォリオに対してAPIをラップしてあげてMCPのサーバーを作る
- ポートフォリオのバックエンドにAIを組み込む
みたいなやつですね。
MCPサーバーの方は、これを聞いた時に「どうやってやればいいか分かりません」って感じだとほとんどの人が思うんですね。
そこをちゃんとAIに聞いたり、AIに壁打ちして「どんな感じで進めればいいのかな」っていうのを調べつつ、実装をAIと一緒にしてくっていうか、AIにさせてそれをレビューするみたいな感じになります。
AIを組み込む方は、フロントエンドからChatGPTとかに適当に質問すると返してくれるじゃないですか。
裏側にChatGPTとかClaude Codeでも何でもいいんですけど、そういったものを組み込んで、既存のポートフォリオにあるデータを噛ませて、プロンプトをAPI使ってAI側に投げて、レスポンスを受け取ってフロントエンドに表示する、みたいなやつです。
そういった感じでシステム的に少し複雑なものにちょっとトライするというか、「自分的にちょっとこれ難しそうだけど、こういうのあったら便利だな」みたいなのに積極的に挑戦すると、割と技術的な理解も伴ってくるのかなっていうのは個人的に思いますね。
AIありきでもちょい難しいとか、やり方わかんないなっていうのって、システム設計みたいなものがやんわりと分かってないといけないっていうか、データのフローとか処理の流れがある程度理解できてないとやっぱ厳しいんですよね。
なんで、自分的には少し難しいけれどチャレンジすればできそう、ぐらいのものに積極的にトライするっていうのは1ついいのかなっていうのは思いますね。
まんじからの感想
AIで動くものは作れるけど意味不明っていうところなんですけど、やっぱりちゃんと理解をする癖をつけるっていうところに落ち着くかなと思います。
- 知らん単語あったら調べる
- 知らんライブラリとか、「キャッシュってなんだ」とかも調べる
- 「デプロイ先でVercelとAWSのEC2って何が違うんだ」みたいな疑問を抱いた時にちゃんとAIに聞く
それで「大体こんな感じっぽいぞ」みたいな風に理解をしつつ進められるか、っていうところですね。
疑問点を放置しないっていうか、今はAIに聞いたら教えてくれるんで、疑問点をちゃんとAIに聞くっていうところかなって思います。
LVLPATHの未経験からの講座買ってもらって手順通りやってもらって自分に壁打ちやら質問してもらえれば、こういった微妙な塩梅とかニュアンスみたいなところも自分がフィードバックするんで、早いと思います。
ってことで終わりです。




