「AI に聞けば動くコードが返ってくるのに、いまから自分で書けるようになる必要があるのか」。この疑問をよく見かけます。
実際に出ているのは、たとえばこういう形です。大学の講義課題は AI に投げれば完成したものが返ってくるので、苦労して学ぶ意味が感じられない。これから学ぶ初心者に必要なのは、AI が書いたコードの良し悪しを判断できる読解力のほうではないか。知識がないまま AI に書かせたコードを業務で使っているが、このままで仕事になるのか。
この記事では、精神論ではなく、実際に AI へ丸ごと任せて動かした結果で答えます。検証は 2026 年 8 月 10 日、Python 3.12 で行いました。
先に結論を書いておきます
結論は 3 つです。
- AI に任せて「エラーで止まる」のは、実は困りません。止まれば気づけるからです
- 困るのは、エラーが出ずに最後まで動いて、答えだけが間違っている場合です。今回の検証ではこれが起きました
- そして、その間違いはコードを読んでも見つかりませんでした。原因がコードではなくデータ側の前提にあったからです
つまり「読めればいい」は、半分は成り立ちますが、半分は成り立ちません。以下、実際の出力を見ていきます。
試した条件
依頼の文面は、実務でありそうな粒度にしました。「売上 CSV を読んで、月ごとの合計を出して」。これだけです。ファイルの中身の説明は付けていません。仕事で頼まれるときも、たいていこの粒度だからです。
渡した CSV は、日本の業務でよくある形にしました。
- 文字コードが Shift_JIS(Excel から書き出すとこうなることがあります)
- 金額に桁区切りのカンマが入っている(
128,000) - 日付の書き方が揃っていない(
2026/1/5と2026-01-20が混在) - 途中に空行がある
- 最終行に「小計」の行が入っている
どれも珍しいものではありません。むしろ、こうなっていない CSV のほうが少ないと思います。
AI に任せたコードは、3 回目に「静かに」間違えた
1 回目と 2 回目は、エラーで止まりました
最初に返ってきたのは、こういうコードでした。要件を言っていないので、UTF-8 で、金額は数値で、行は整っている、という前提で書かれています。
with open(path, encoding="utf-8") as f:
for row in csv.DictReader(f):
month = row["日付"][:7]
totals[month] += int(row["金額"])
実行するとこうなります。
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 0: invalid start byte
文字コードを Shift_JIS に直すと、次はここで止まります。
ValueError: invalid literal for int() with base 10: '128,000'
ここまでは、実は問題がありません。止まった場所がそのまま原因を指しているので、AI に貼り付ければ直りますし、直ったことも確認できます。エラーは親切なほうです。
3 回目は、エラーが出ませんでした
カンマを取り除く 1 行を足すと、今度は最後まで動きました。出力はこうです。
{'2026/1/': 131200, '2026-01': 8400, '2026/2/': 160000, '小計': 299600}
止まらず、赤い文字も出ず、辞書が返ってきています。それでもこの結果は間違っています。3 か所おかしくなっています。
| 起きたこと | 理由 |
|---|---|
1 月が 2026/1/ と 2026-01 に分かれた | 日付を頭から 7 文字取っているだけなので、書き方が違うと別の月として数えられる |
小計 という月ができた | 集計行をデータとして読んでしまっている |
| 合計が 2 倍になった | 小計行を足したため。正しい総額 299,600 円に対し、出力の総和は 599,200 円 |
正しい答えは {'2026-01': 139600, '2026-02': 160000} です。ちょうど 2 倍という、いかにもありそうな外し方をしています。桁が飛んでいれば気づきますが、2 倍は「そんなものかもしれない」と思ってしまう幅です。
スポンサーリンク
スポンサーリンク
「読めればいい」は成り立つか
ここが今回いちばん確かめたかったところです。冒頭の疑問にあった「AI が書いたコードを読んで判断できればいい」は、この場面で機能するでしょうか。
3 回目のコードを読み返しても、おかしなところは見つかりません。変数名は素直で、処理は短く、書き方として間違っている行は 1 つもありません。バグはコードの中ではなく、「日付は同じ書式で入っている」「全部の行がデータである」という、書かれていない前提のほうにあります。
この前提は、コードを読んでも見えません。見えるのは、実際に動かして、出てきた数字を別の方法で数え直したときだけです。今回も、合計を手で足して初めて 2 倍だと分かりました。
つまり必要なのは「読む力」ではなく、「疑って、確かめる手を持っていること」でした。そしてその手は、自分で少し書けないと持てません。答え合わせ用の別の数え方を、もう一度 AI に頼むと、同じ前提で同じように間違えるからです。
仕事がなくなるかどうかは、別の話です
この疑問は「プログラマーの仕事はなくなるのか」という話と一緒に語られがちですが、別の問いです。需要の話は公的な推計を読むほうが早いので、そちらは別の記事にまとめています。
この記事で扱っているのは、職があるかどうかではなく、自分が結果に責任を持てるかどうかです。合計が 2 倍になった資料を提出したとき、「AI が出しました」は理由になりません。
では、何を、どこまで学ぶか
今回の検証から言えるのは、「全部書けるようになる必要はないが、確かめられる程度には要る」ということです。具体的には、この 3 つが今回の間違いを見つけるために必要でした。
- データを自分で覗ける — 文字コード、行数、変な行が混じっていないかを確認する
- 出力を別の方法で数え直せる — 合計を手で足す、件数を数える、1 行だけ抜き出して追う
- エラーメッセージを自分で読める — どこで止まったのかを、貼り付ける前に把握する
逆に、ゼロから設計を組む力や、フレームワークを覚え込むことは、この目的には要りません。「AI に任せるために、まず自分で全部書けるようになれ」という話ではないということです。
学び方は 2 方向あります
ここから先は、どちらが正しいという話ではなく、入り口が 2 つあるという話です。
| 入り口 | 向いている人 | つまずきやすい点 |
|---|---|---|
| AI を使う側から入る | 作りたいものが先にある。仕事で使う予定がある | 動いてしまうので、間違いに気づく機会が来ない |
| 基礎から手で書いて入る | 後から自分で判断できるようになりたい | 成果物が出るまで時間がかかり、続かないことがある |
独学で進める場合は本が向いています。一人で進む自信がない場合は、講座という選択肢もあります。金額も進み方も違うので、どちらが自分に合うかは実際に中身を見て決めてください。
スポンサーリンク
スポンサーリンク
よくある質問
Q. もっと詳しく指示すれば、AI は間違えなかったのでは?
そのとおりです。ただし「日付の書式が混ざっている」「小計行がある」と指示するには、先にそれを知っている必要があります。知っている人は指示でき、知らない人はできない、という差がここに出ます。
Q. 別の AI なら結果は違いますか?
違う可能性はあります。ただし今回問題になったのは AI の性能ではなく、言われていない前提を埋める必要があったことです。前提が渡されていない以上、どのモデルでも何かを仮定して埋めます。
Q. 何から始めればいいですか?
いま手元にある実際のファイルを 1 つ選び、AI に処理させて、出た数字を自分で数え直すところからで十分です。今回やったのはそれだけです。
まとめ
- AI に丸ごと任せた結果、エラーで 2 回止まり、3 回目はエラーなしで間違った答えを返した
- 間違いはコードを読んでも見つからない。原因が書かれていない前提にあったため
- 必要なのは全部書ける力ではなく、データを覗き、出力を数え直し、エラーを読むところまで
- 「勉強する意味があるか」への答えは、意味はあるが、想像より狭い範囲でよい
※ 本記事の検証は 2026 年 8 月 10 日時点・Python 3.12 で行ったものです。使用したデータは検証用に作成したもので、実在の売上ではありません。



コメント