月曜日, 12月 15, 2025
月曜日, 12月 15, 2025
- Advertisment -
ホームプログラミングベテランプログラマは生成AIをどう活用しているのか?そして初学者は生成AIをどう活用すべきか?

ベテランプログラマは生成AIをどう活用しているのか?そして初学者は生成AIをどう活用すべきか?


はじめに

これは「フィヨルドブートキャンプ Advent Calendar 2025」の15日目の記事です。

fjord-calendar.jp

昨日の記事は id:unikounio さんの「【Obsidian】Thinoで思考の整理を楽しもう」でした。

今回はメンターである僕、伊藤淳一がふだんの業務で生成AIをどんなふうに使っているのかを紹介したいと思います。
また、記事の後半ではフィヨルドブートキャンプ生に向けて、プログラミング初学者が生成AIを利用する際の注意点についても書いてみます。

【もくじ】

  • はじめに
  • どんな生成AIを使っているのか
  • どんなときに使うのか
    • 自分でコードを書いてもいいが、ちょっと面倒なとき
    • 自分で調べてもいいが、時間がかかりそうなとき
    • 叩き台となるコードを書いてもらいたいとき
    • 巨大なコードベースを調査してもらいたいとき
    • 「あれ何だっけ?」を雑に質問したいとき
    • GitHubのissueやPRを要約してもらいたいとき
  • 生成AIを使いこなすコツ(というかマイルール)
    • はじめの一歩は経験者を頼る
    • まずはPlan Modeから始める
    • お願いするタスクはなるべく細かく分ける
    • タスクばらしは人間の仕事と考える
    • コミットを細かく分ける
    • 人間だと思って必要な情報を全部与える
    • 生成AIが書いたコードに対しても責任を持つ
    • 自分で書いた方が速いこともある
    • わからない点を放置しない
    • 生成AIを信用しすぎない(情報の裏を取る)
    • 生成AIブームに飲み込まれない
  • プログラミング初学者は生成AIをどう活用すべきか?
    • ChatGPTがあれば税理士はいらない、は本当か?
    • 生成AIを使っても素人はプロにはなれない
    • 「自分のスキルとイコール、もしくはその1段上」ならうまくいく
  • やはり地道な努力は不可欠だし、プログラマの仕事もなくならない
    • フィヨルドブートキャンプの課題はAI不要?
  • まとめ

どんな生成AIを使っているのか

僕が使っているのは主に以下の2つです。

  • Claude Code
  • ChatGPT

あと、コーディング支援ツールとしてGitHub Copilotも使っていますが、今回は主にClaude CodeとChatGPTの活用方法を書きます。

といっても、僕はそこまで生成AIを使いこなしているとは自分で思っていません。
Claude Codeも使い始めてまだ半年ぐらいです。

「生成AIバリバリ使いこなし勢」の人たちから見ると、「えっ、それだけ?」と思われるかもしれませんが、まあ気にせずに書いていきます。

どんなときに使うのか

生成AIの利用シーンはだいたい次のような感じです。

自分でコードを書いてもいいが、ちょっと面倒なとき

「こんなコードを書きたい」というイメージは頭の中でほぼできあがっているが、それをいちいちキーボードで打ち込むのはちょっと面倒くさいなあ、と思ったときにClaude Codeに「こんなふうに書いて!」とお願いします。

今までは「プログラムみたいな複雑なものは人間じゃなきゃ絶対に書けないでしょ」と思っていましたが、Claude Codeはほぼイメージ通りのコードをバンバン書いてくるので、かなり衝撃的でしたね。

Claude Codeを使い始めた2025年は僕の中で「生成AIプログラミング元年」になったと言っても過言ではありません。

自分で調べてもいいが、時間がかかりそうなとき

僕はRailsが得意なので、サーバーサイドのコードは自力でスラスラ書けるのですが、フロントエンドはそこまで得意ではありません。
なので、JavaScript/TypeScriptやCSSを書くときは、どうしてもネットの情報や公式リファレンス、Chromeの開発者ツールとにらめっこする必要があります。

そういう場合はClaude Codeに「こんな感じにしたいんだけど」とお願いすると、やはりかなりイメージに近いコードを書いてくれるので助かります。

「調べつつ、試行錯誤しつつコードを書く」というのはいつもそれなりに時間を食うので、「調べたり試行錯誤したり」の時間をClaude Codeで削減できるのはかなり大きいメリットになっています。

叩き台となるコードを書いてもらいたいとき

仕事をしているとたまに「うーん、これはどうやって実装するのがいいかなあ」というふうに、実装の方針がぱっと見えてこない場合があります。

そういうときには、Claude Codeに「こんな機能を実装したい」とざっくりした依頼を投げます。
すると、Claude Codeは曲がりなりにも「とりあえず動くコード」を書いてくれます。
そのコードを見ながら、「なるほど、たしかにそういうやり方があるね」とか、「いや、それはちょっとイマイチでしょう」みたいなことを考えます。

この場合、Claude Codeにはそのまま即採用できそうなコードを書くことは期待していません。
あくまで「考え方のとっかかり」を作ってもらうだけです。
(もちろん、「おー、それでええやん!」と思ったらそのまま採用するかもしれませんが)

これは二人で一緒にブレーンストーミングするようなイメージですね。

巨大なコードベースを調査してもらいたいとき

業務で開発しているコードベースはとても巨大です。
長年いろんな人が手を加えてきているので、どこでどんなコードが書かれているのかを隅から隅まで把握するのは不可能です。

しかし、開発タスクによってはサービス全体に影響が出そうなものもあります。
下手な修正をすると、思いがけない場所でバグが発生する可能性があります。

そういういときはClaude Codeに「○○という変更を加えたときに影響が出そうな箇所や修正が必要な箇所を調査して」とお願いします。

もちろん、Claude Codeが必ずしも100点満点の回答を返してくれるとは限りません。
ですが、調査の叩き台としては十分なものを出してくれるので、その結果をもとに、僕の方でより詳細な調査を進めます。

「あれ何だっけ?」を雑に質問したいとき

「あれ何だっけ?」を思い出したいとき、検索キーワードがさっと思いつくときは昔ながらのネット検索を使います(いわゆる「ググる」ってやつです)。

しかし、ときどき「これ!」という検索キーワードがぱっと思いつかないときがあります。
そういうときは「ちょうどいい検索キーワード」を考える前に、ChatGPTに「これ、どうなん?」と雑に聞きます。

ddタグって2回登場してもいいの?

TypeScriptに出てくる”!”って何だったっけ?

Railsで生SQLで書いたサブクエリとJOINしたいんだけど

このUser-Agentは何?

あと、最近はネットを検索しても上位に表示されるのが「いかにも生成AIが作ったwebページ」だったりすることも多いので、最初からネット検索を諦めてChatGPTに聞くこともよくあります。

rel=”nofollow”ってどういうときに使うの?

GitHubのissueやPRを要約してもらいたいとき

「このissueやPRをじっくり読むと、自分の知りたいことが載ってそうな気がする」とは思うものの、descriptionやスレッドが長大だったりするとちょっと気が重くなります。
「じっくり読んでもいいけど、かなり時間がかかりそうな気がするぞ……」という予感がしたときはChatGPTに要約してもらいます。

このPRを要約して!

生成AIを使いこなすコツ(というかマイルール)

前述の通り、僕はそこまで生成AIを使いこなしているとは思っていませんが、これまでの経験から「こういうふうに使った方がいいと思う」というポイントがいくつかあるので、そのポイントを以下で紹介します。

はじめの一歩は経験者を頼る

あれは今年の6月頃だったでしょうか?
その頃「なんかClaude Codeがすごいらしい」という噂を耳にして「僕も一回使ってみようかな」と思い始めました。
だけど、ゼロをイチにするためのハードルってまあまあ高いんですよね。

具体的にいうと、

  • Claude Codeを使うためにどういうセットアップをしたらいいのか
  • 実際どんなふうに使えばいいのか
  • 使う上での注意点や落とし穴はないか

みたいなポイントは、まったく使ったことがない人間からすると完全に未知なので、「何もわからん」「とっても不安」という状態になってしまいがちです。

こういう場合、僕は「その方面に詳しい知り合い」を頼ります。
Claude Codeを使うときも、Claude Codeを使いこなしてそうな同僚に「Claude Codeを使いたいんだけど、何もわからんから教えて!!🙏」と、お願いしました。
そしてZoomで画面共有しながら手取り足取り教えてもらいました。

ネットの情報を見ながら一人でがんばる、というのもひとつの手ですが、僕は誰かを頼った方が早いと考えています。

誰かに頼ると相手の迷惑になりそう、と考えて躊躇する人も多いかもしれませんが、相手が自分のことを嫌っている、とかではない限り、誰かに頼られて嫌な気持ちになる人はほとんどいないでしょう。
もしめちゃくちゃ忙しかったりしたら、「今は無理だから他の人にお願いして」と言ってくるはずです。

というわけで、Claude Codeに限らず、誰かに聞いた方が早いと思ったときは、いつでも「ごめん、教えて!!🙏」と積極的に誰かを頼るのがお勧めです!

まずはPlan Modeから始める

Claude Codeに「こんなコード書いて」とお願いする場合はいきなりコードを書かせずに、まずPlan Modeで実装計画を確認します。

そしてその実装方針が自分のイメージ通りだったらGOの指示を出します。
イメージと違う部分があったら「ここはこうして」とお願いしてプランを作り直してもらいます。

Claude Codeはそれなりにイメージに近いコードを書いてくれるとはいえ、百発百中で最初からイメージ通りのコードを書いてくれることはないので、まずは「どう書くつもり?」というのを最初に確認するのが大事です。

お願いするタスクはなるべく細かく分ける

いきなり「こんな機能を作ってほしい。仕様はあーでこーで・・・」という指示を長文でどーんと投げるようなことは僕はしません。

僕がClaude Codeにお願いするときは、

「まずはモデルを作って」
「次はモデルにバリデーションを実装して」
「じゃあ次は画面からそれを編集できるようにして」

というように、こちらで事前にタスクを複数のステップに分けて、それを順に依頼していきます。

Claude Codeにはテキストで指示を出さないといけません。
人間同士のコミュニケーションでも同じですが、長文のテキストだと認識の齟齬が発生しやすいです。

確実にこちらが考えているものを作ってもらいたいなら、認識の齟齬が発生しないようになるべく小さな単位で指示を出していくのがいいと思います。

タスクばらしは人間の仕事と考える

というわけで、僕がClaude Codeを使うときは、いわゆる「タスクばらし」を人間がやるようにしています。
何をどういう順番で、どういうふうに作るのか、は予めこちらで考えるわけです。

上でも書いたように「自分でも書こうと思えば書ける。でもClaude Codeにお願いした方がラクだし速そう」と思ったときにClaude Codeを使うのが条件のひとつです。

ですので、Claude Codeを利用する場合は以下の記事で書いたような「仕事の進め方」を開発者がちゃんと身につけておく必要があります。

qiita.com

コミットを細かく分ける

Claude Codeはたまに「おいおい、そうじゃないよ!」という間違ったコードを書き散らすときがあります。
ですので、僕は基本的にClaude Codeにコードを書かせる直前にgitコミットしておきます。
もしClaude Codeが変なコードを書いたときはすぐにロールバックできるようにするためです。

ただし、コミット履歴があまりにも細かくなってしまいそうな場合は、--amendオプションを使って「コミット履歴は増やさずに、何かあればいつでも1つ前のステップにロールバックできる状態」を作り出すようにしています。

このテクニックについては昔書いた以下の記事を参照してください。

調査をサクサク進めるために。伊藤淳一が考える「良いプルリクエスト、悪いプルリクエスト」 | レバテックラボ(レバテックLAB)

出典:
人間だと思って必要な情報を全部与える

生成AIってとても人間っぽく振る舞いますよね。
なので、こちらの接し方もちょっと人間っぽくなってしまいます。

いや、というか、生成AIもエスパーではないので、「こんな機能を作ってほしい」とざっくりお願いするよりも、「このコードのこのへんをいじってね」とか「ここに参考になりそうなコードがあるよ」といったように、こちらが事前に把握している情報は一通りClaude Codeに伝えるようにしています。
たぶんその方が課金も少なく済みそうですし。

でもこれって人間に開発を依頼するときも同じですよね。
「こんな機能作ってね。よろ!」で終わるよりも、「たぶんこのファイルをいじることになると思うから」とか「この実装が参考になると思うよ」みたいな情報を伝えた方が、速く正しいものを作ってくれるはずです。

というわけで、自ずとClaude Codeへの指示の出し方は、人間に対するそれとほとんど同じ形式に収斂していくのでした。

生成AIが書いたコードに対しても責任を持つ

当然といえば当然ですが、生成AIが書いてくれたコードであっても、自分が開発者である以上、そのコードに対する責任は自分が持ちます。
おかしな書き方やもっと良い書き方があれば積極的に自分で修正し、「これは私が書いたコードです」と胸を張って言える状態にしています。

自分で書いた方が速いこともある

先ほどは「自分でも書こうと思えば書ける。でもClaude Codeにお願いした方がラクだし速そう」と思ったときにClaude Codeを使うのが条件のひとつ、と書きました。

これは逆に言うと、Claude Codeにお願いすると時間がかかりそうなら自分で書いてしまった方が良い、ということです。

テキストで説明しようとすると文章を考えるのが大変、とか、テキストを打ち込む時間でコードが書けそう、みたいな場合はClaude Codeに依頼するメリットがないので、自分でコードを書いてしまいます。

あと、思った以上にClaude Codeが試行錯誤し続けて「おい、いつになったら終わるねん」と思ったときとかも同様です。

というわけで僕はいつも、Claude Codeに頼んだ方がラクか、自分で書いた方がラクかを天秤にかけて、「じゃあこっち!」という方を選ぶようにしています。

わからない点を放置しない

前述のとおり、僕は「自分で調べてもいいが、時間がかかりそうなとき」にClaude Codeにコードを書いてもらいますが、できあがったコードにわからない点があったら、放置しないようにしています。

具体的にはClaude Codeに「この行の意味を説明して」とお願いしたり、自分でコードの意味を調べたりしています。

生成AIを信用しすぎない(情報の裏を取る)

上で述べた「この行の意味を説明して」とお願いするときもそうですし、検索エンジン代わりにChatGPTを利用するときもそうですが、生成AIが出してきた答えを全部鵜呑みにしないように気を付けています。

それっぽい答えが出てきても「この情報はもしかしたら間違っているかもしれない」と考えるようにしていますし、「本当に?」と怪しく感じたときは、信頼性の高い別の情報源で裏を取るようにしています。

ddタグって2回登場してもいいの?本当に?

念のためHTMLチェッカーで確認→本当っぽい!

生成AIブームに飲み込まれない

最近はネットを見てると猫も杓子も生成AIの話ばかりしている印象があります。
そして次から次に新しい技術やツールが登場して「スゴい!」「ヤバい!」「神!」みたいな話が繰り広げられています。

そうした新しい話題が大好きで、自ら首を突っ込んでいくのが苦にならない人は、どんどんそういった情報を摂取していけばいいと思います。
ですが、僕はそういうタイプではないので、昨今の生成AIブームに対しては「いやあ、情報量が多すぎて、さすがにこれはついていけまへんわ……」というお気持ちです。

何度も書いてるように、僕自身は生成AIを隅から隅まで使いこなしているとはまったく思っていません。
むしろ「生成AIユーザーレベル=1」だと思っています。
しかし、それでも生成AIをまったく使い始める前よりも生産性は向上しています。

情報の洪水に飲み込まれてしまうと「アレも知っておかなきゃ」「このツールも使いこなさなきゃ」と、それだけで疲労困憊してしまうので、僕はマイペースに生成AIとお付き合いしていこうと考えています。

プログラミング初学者は生成AIをどう活用すべきか?

さて、ここまでは僕が普段どんなふうに生成AIを使っているのかを説明しておきました。
ただし、これはプログラミング歴20年以上の熟練者の使い方です。
まだプログラミングを始めたばかりの初学者はAIをどう活用すればいいのでしょうか?

この問いに対する答えはなかなか難しいのですが、半年ほどClaude Codeを使ってみて、1つだけハッキリとわかったことがあります。

それは、

自分のスキルとイコール、もしくは1段上までのお願いなら良いが、自分のスキルを2段も3段も飛び越えるようなお願いはろくな結果を生まない

ということです。

図で表すとこんなイメージですね↓

なお、ここでいう「スキル」の定義は次のようなイメージです。

自分のスキルとイコール
「ClaudeCodeやChatGPTがなくても自力でスラスラ書けます!」というレベル
1段上のスキル
「いろいろ調べないといけないことも多いが、数時間かければClaudeCodeやChatGPTがなくても自力で書けます」というレベル
2段上もしくは3段上のスキル
ClaudeCodeやChatGPTの助けなしでは、いつ終わるかわからないレベル

「自分のスキルを2段も3段も飛び越えるようなお願いはろくな結果を生まない」と僕が考える理由はシンプルです。

  • 生成AIに対して上手に説明できないから
  • 生成AIのアウトプットを適切に評価できないから

そりゃ、当然といえば当然ですよね。
ですが、僕がそう確信するに至ったのは、実はプログラミングの文脈ではなく、帳簿の付け方にまつわる「ある出来事」があったからです。

ChatGPTがあれば税理士はいらない、は本当か?

話は突然変わりますが、僕の妻はパン屋をやっており、確定申告は税理士さんにお願いしています。
ただし、日々の帳簿は僕がマネーフォワードで管理していて、わからないところがあれば税理士さんに聞くようにしています。

先日、ちょっと難しい仕訳をしなければいけない場面がありました。
こういうときは税理士さんに質問するのがいいのですが、今回はChatGPTでどこまでできるのか試してみようと思いました。
ネットでは「生成AI時代には弁護士や税理士、医者といった専門職が不要になる」みたいな話もときどき見かけるぐらいですから!

というわけで、ChatGPTに「この金額がこうで、こっちの金額がこうなっていて・・・で、この場合はどう仕訳したらいい?」と、(自分なりに)細かく状況を説明した上で質問してみました。
そしてChatGPTは僕の質問に対してそれっぽい仕訳の方法を返してきました。

僕は「ほうほう、なるほど?」と思って、マネーフォワードにその金額を入力してみました。
ですが、貸借対照表をチェックすると、いくつかの項目がマイナスになっていたりして、明らかにおかしい状態でした。

そこでChatGPTの回答を採用するのは諦めて、税理士さんに正しい仕訳の仕方を質問してみました。

税理士さんからいくつかの質問を受けた後、最終的に提示された仕訳の仕方は、ChatGPTの回答とはまったく違うものでした。

しかも、「こういう場合は普通に確定申告するよりも、○○という制度を活用した方が節税できますよ」というふうに、僕が聞いたこともない制度の存在も教えてくれました。
もちろん、貸借対照表の数字も矛盾なくきれいな値に収まっていたのは言うまでもありません。

さすがプロ!餅は餅屋!!

生成AIを使っても素人はプロにはなれない

というわけで、最初の議論に戻ります。

先ほども述べた通り、自分のスキルを2段も3段も飛び越えるようなお願いはろくな結果を生みません。
なぜなら、

  • 生成AIに対して上手に説明できないから
  • 生成AIのアウトプットを適切に評価できないから

です。

先ほどの税理士さんのエピソードはまさにこれに該当します。
僕はChatGPTに状況を正確に説明できていませんでしたし、ChatGPTの回答が正しいかどうかも判断できないまま、それを鵜呑みにして意味不明な帳簿を付けてしまいました。
これはなぜかというと、この仕訳の難易度が僕の持っている簿記スキルを大きく上回っていたからです。

この状況はおそらく、プログラミング初学者のみなさんが生成AIを利用するときの状況にも結構近いと思います。

すなわち、ChatGPTやClaude Codeを使ってチートしよう(?)と思っても、自分が「上手に説明できない」「生成AIの回答も正しく評価できない」という状態なら、必ずいつか行き詰まる、ということです。

「自分のスキルとイコール、もしくはその1段上」ならうまくいく

一方、「どんなときに使うのか」のセクションで説明した以下のような依頼内容は、どれも基本的に「自分(伊藤さん自身)のスキルとイコール、もしくはその1段上」にとどまっています。

  • 自分でコードを書いてもいいが、ちょっと面倒なとき
  • 自分で調べてもいいが、時間がかかりそうなとき
  • 叩き台となるコードを書いてもらいたいとき
  • 巨大なコードベースを調査してもらいたいとき
  • 「あれ何だっけ?」を雑に質問したいとき
  • GitHubのissueやPRを要約してもらいたいとき

こういう使い方なら大きく失敗することはほとんどなかったので、これまでClaude Codeを使ってきた自分の経験と照らし合わせてもやはり、

  • 生成AIが必要とするインプットをこちらがちゃんと提示できるか?
  • そして、生成AIが提示してきたアウトプットに対して「うん、よさそう!」もしくは「いや、それは違うんじゃない?」が判断できるかどうか?

が大きな分かれ道になる、ということが言えそうです。

やはり地道な努力は不可欠だし、プログラマの仕事もなくならない

というわけで、Claude Codeのような生成AIが幅を利かせるようになっても、プログラミングのスキルはまだまだ必要になると思います。

生成AIを使えば誰でもプログラマになれるのではなく、プログラミングの知識がないと生成AIは使いこなせません。

なぜなら、生成AIがいくら高度に発展したとしても、「生成AIに説明してお願いする作業」と「生成AIの回答を評価する作業」を生成AIにお願いするわけにはいかないからです。
この部分にはやはりプログラマの専門的な知識が必要になります。
(ChatGPTがいくら発展しても僕が税理士にはなれないのと同じです!)

ですので、フィヨルドブートキャンプのみなさんは引き続き、コツコツと専門知識を身につけるための勉強をしていきましょう!

フィヨルドブートキャンプの課題はAI不要?

ちなみに、フィヨルドブートキャンプの課題は、最初から順にクリアしていけば「1段上、1段上、1段上…」というように、1ステップずつスキルアップできるようになっています。

ですので、どの課題も「いろいろ調べないといけないことも多いが、数時間(かどうかは人によります)かければClaudeCodeやChatGPTがなくても自力で書ける」はずです。

フィヨルドブートキャンプ内における生成AIの利用ルールについては、以下のDocsに詳しく書かれているので、生成AIの使い方に迷ったときはこちらを参照してください。

  • フィヨルドブートキャンプ AI利用ガイドライン(要ログイン)

まとめ

というわけで、今回のエントリでは僕が生成AIをどう活用しているのか、そしてプログラミング初学者が生成AIをどう活用すればいいのかについて書いてみました。

生成AIを取り巻く環境はすごい勢いで変わってきているので、来年の今頃はまた全然違うことを言っている可能性もありますが、とりあえず2025年現在の僕の認識はこんな感じです。
今回のエントリがみなさんの参考になれば幸いです!

では、明日の「フィヨルドブートキャンプ Advent Calendar 2025」もお楽しみに〜!😄

fjord-calendar.jp

bootcamp.fjord.jp

実践Claude Code入門―現場で活用するためのAIコーディングの思考法 エンジニア選書

実践Claude Code入門―現場で活用するためのAIコーディングの思考法 エンジニア選書

  • 作者:西見 公宏,吉田 真吾,大嶋 勇樹
  • 技術評論社

Amazon

ソフトウェア開発にChatGPTは使えるのか?――設計からコーディングまでAIの限界を探る

ソフトウェア開発にChatGPTは使えるのか?――設計からコーディングまでAIの限界を探る

  • 作者:小野 哲
  • 技術評論社

Amazon



Source link

Views: 0

RELATED ARTICLES

返事を書く

あなたのコメントを入力してください。
ここにあなたの名前を入力してください

- Advertisment -