最近はバイブコーディングがトレンドだとはいえ、その行き着く先は結局、コードを理解して修正する力の必要性に帰着することが多い気がします。
私もフロントエンドをまったく知らず、バイブコーディングに頼っていたのですが、限界を感じて最近はGeminiを使って学んでいます。
学びたい分野の案内 - その分野を学ぶためのプロジェクト推薦 - 希望する期間に応じたロードマップ作成 - 各日に作るべき成果物(課題)の整理 - その成果物を自力で作るために必要な知識の整理 - 概要をもとに、毎日の知識 + 課題に似た例 + 提出すべき課題を整理した文書の生成 - 課題提出後のフィードバック
という構成でコーディングを学んでいます。個人的には従来の学習方法よりも楽しいですし、応用を強く求められる点で学習効率も良いと感じています。みなさんはAIを使ってコーディング学習をしてみたことがあるのか、気になって質問してみました。
7件のコメント
カリキュラムを作って取り組んだことはありませんが、だいたい分かっている分野をもう少し深く知りたいときに助けてもらいました。特によく使うパターンのようなものは自分で探そうとするとかなり時間がかかるのですが、LLMはそのあたりが専門なので、より役に立ちました。もちろん、クロスチェックが必要な場合も多くありました。
いわゆるバイブコーディングと呼ばれるような使い方はあまり好意的には見ていませんが、「やって」と丸投げする癖をつけるのでなければ、学習にはいくらでも役立つと思います。特に、どうしても急いで解決法を探さなければならないときや、どうにも何から手を付ければいいのか見当がつかないときには、それ以上にありがたいものはないと感じます。
投稿者の学習過程の中では、知識を自分で整理するプロセスが入っていることが最も重要だと思います。StackOverflow、Tutorial、Example、公式ドキュメントを自分で直接探してみることで、他人の状況を自分の状況に合わせて応用する練習になるのはもちろん、背景知識を蓄え、視野を広げていく過程にもなるはずです。AIに「君が整理して」と頼むようなやり方で勉強していては、なかなか得がたいものですね。
AIを使ってコーディングを勉強したというわけではないのですが..
既存のJavaから、あまり詳しくない別言語のNodeバックエンドを開発するときに
AIを使うと本を見ながらやるよりも.. 早くフィードバックをやり取りできるので
業務の成果が早く出ます。
コーディングはコーディングですが、数値解析の問題を解くときに助けてもらったことがあります。Cupyで数値解析の問題を解く際、関数自体は私がすべて書いたのですが、やはり遅かったので、関数をベクトル化するのに手伝ってもらいました。
仕事で TCP ストリーム処理が必要になり、Netty + RxJava を学習中です。それまでは、逆圧(backpressure)や hot/cold observable がなぜ必要なのか、公式ドキュメントやブログを読んでも理解できませんでした。
自分で実際に解きたい問題を設定して質問すると、その状況にぴったり合った意味のある説明が返ってくるので、理解がずっと楽になります。サンプルコードもむやみに信用せず、実際に動くコードだけを学習に使えばよいので本当に便利です。月3万円が惜しくないと感じたことが二度あるのですが、そのうち一度がこういうケースで、もう一つはチームリードやコミュニケーションに関する質問や考察でした
copilotに有料課金して、コンテキスト理解と、言語・データ構造・ネットワーク・データベース・オペレーティングシステムを必要に応じて身につけることが必要だと思います。私なら、学ぶ先のGitHubリポジトリを決めて、repomixでもcc/codexでも分析させて、質疑応答のループを回しながら学び、状況が許せばPRも出す、という過程を何度かやってみると思います。