最近はAIを使って効率よくコーディングするのが当たり前になっていますね。
自分も実際にAIを使う場面が増えており、日々その利便性を感じています。
ですが、その一方で気になっていることもありました。
「このままだと自分はコードが書けなくなってしまうのでは...!?」
私は異業種からエンジニアに転職してまだ3年目のひよっこです。まだまだ知識も足りないし経験も足りません。
そんな私が際限なくAIにもたれかかってしまったら、いつまでも知識が身に付かず、コードの書けないエンジニアになってしまいます。
とはいえ、実際の業務では工数に限りがあるのも事実で、工数削減のためには今やAIの活用が不可欠です。
悩んだ私は、視点を変えて、ある方法を試してみることにしました。
遡ること数年前、エンジニアへの転職を目指していた私は、知り合いのエンジニアにコーディングの基礎を教えてもらいました。
作りたいものを作るためにどんな知識やツールが必要か、詰まってしまった時にはどうしたら解決するか、など...
決して最初から答えは教えず、自分の頭でしっかり考えるように導いてくれた経験が、今の私の土台になっています。
今回私が試した方法は、AIにそのエンジニアのような役割を担ってもらうことです。
とはいっても難しいことは何もしていません。
これだけです。AGENTS.mdや長いプロンプトの作成も不要です(あればもっと効率化できるかもしれませんが)
ただし、こちらから聞くまでAIにコードを出させないことを徹底しています。
コードを先にもらうと、どうしても「読む」ほうに意識が寄りやすくなります。
それよりも先に、自分で考えて手を動かして、どこで詰まるのかをはっきりさせるようにしています。
実際には、だいたい次のような流れで進めています。
最初から完璧でなくてもいいので、まずは自分の言葉で整理します。
一度言語化してみると、理解できている部分と曖昧な部分が見えやすくなります。
次に、その計画をAIに見せて、実装上足りない観点がないかを確認します。
この段階では「他に必要な項目はあるか」「見落としている処理はないか」を聞くようにしています。
自分になかった視点をAIに補助してもらうイメージです。
ざっくりした計画のままだと実装中に迷いやすくなるため、ステップ単位まで細かく分解してもらいます。
ここでも意識しているのは分からないまま進まないことです。
「分からなければ分かるところまで分ける」補助をAIにしてもらいます。
実装は基本的に自分で進めます。
AIには、次のステップで何をすべきか、どういう点に気をつけて実装を進めればいいかを都度案内してもらいます。
AIがあると答えをすぐ見たくなりますが、そこを踏みとどまって、自分の頭で整理する余力を残すようにしています。
詰まったときも、まずは考え方や切り分け方を聞きます。 コードを見るのは最後の手段です。
最初に答えを聞かずに、「どこで止まっているのか」「何を確認すれば次に進めるのか」をはっきりさせてから補助してもらうようにしています。
実装中のカレンダーにフィルター機能を追加したときも、最初に自分で処理の流れを整理し、そのあとAIに抜け漏れを確認してもらいました。
このページのカレンダーについて、フィルター機能を追加したいです。 処理の流れを次のように整理したのですが、他に必要な要素や考慮すべきことはあるでしょうか。
すると、元データの保持やSP側の再描画処理など、自分では見えていなかった実装上の穴をAIが補ってくれました。
提示されたフローはほぼ正確ですが、実装上で必要になる要素が4点不足しています。 ...(不足している要素と、それを踏まえて修正したフローを提示) このフローで問題なければ、実装に進めます。いかがでしょうか?
その内容をもとに実装手順を分解してもらい、AIに考え方を案内してもらいながら実装を進めました。
はい。実装に進みたいです。1ステップずつ案内してください。 その際、こちらが聞くまでコードは提示せず、考え方の流れだけ提示してください。
このやり方にしてから、ただ詰まる時間が減っただけではなく、「何が分からなくて進めないのか」が見えやすくなりました。
先に自分で計画を書いてからAIに見てもらうので、「ここまでは考えられている」「ここから先が足りない」という状態を確認しやすくなります。
また、コードをすぐに見ないようにすると、読むだけで終わりにくくなります。
自分で考える時間を残したまま、必要なときだけ補助を受けられるのが、このやり方のよいところだと感じています。
もちろん、このやり方が万能だとは思いません。
最初に自分で考える必要があるので、AIに丸投げするより時間も労力もいります。
また、AIの指摘が常に正しいとは限らないので、最後は自分で検証し、判断する必要があります。
これは、「AIを使って楽をする方法」というより、AIを使いながら自分の理解も深めていくための方法だと思っています。
自分はこれまでAIにうっすらとした苦手意識があり、うまく使うことができていないように感じていました。
ですが、今回紹介した方法を使うようになってからは、AIも道具の一つであり使い方次第なのだなと考えられるようになってきています。
今後も、自分なりの距離感でAIと付き合いつつ、自分の力も伸ばしていければと思います。