この記事はリライトしました
初回公開日:2024-09-17
リライト更新日:2026-09-30
旧タイトル:【保存版】AI時代の必須スキル!生成AIプログラミング2023
主な変更点
- 2023を題に付けた旧稿を現在の初心者の作成・検証手順へ全面再構成。
- 対話/補完/複数ファイル支援の形を比較し特定製品ランキングを作らない。
- 架空の数量集計、入力条件、テスト表、エラー相談テンプレートを独自作成。
生成AIを使ってプログラミングを始めるなら、一つの処理を作り、入力と期待する結果を決めて、実際に確かめるところまで進めることをおすすめします。 コードを生成してもらうことは出発点です。何をするコードか理解し、間違いや例外を見つけ、直すことも制作に含まれます。
この記事は、AIを補助に使いながら、小さなプログラムを読んで試したい方に向けたものです。実案件の開発速度が何倍になる、プログラミング未経験でもすぐ仕事を受けられる、といった保証はしません。
後半では、Pythonで品目別の数量を集計する練習例を紹介します。架空のデータだけを使い、外部サービスへの接続やファイルの書き換えを行わない、小さな例です。
原公開日:2024年9月17日。内容確認日:2026年9月30日。
AIを使えば、プログラミングの知識は不要ですか?
不要にはなりません。コードを初めから全部書く負担を減らせる場面はありますが、結果が目的に合っているか、どこを変更するかは確かめる必要があります。
例えば、集計結果が表示されても、空欄を無視したのか、同じ品目を別々に数えたのか、入力を上書きしたのかは、画面だけではわからないことがあります。必要な処理を言葉にして、コードと結果を照合するための理解が必要です。
GitHubのCopilotインライン提案に関する公式資料も、生成されたコードが不正確な場合があること、利用者が内容を確認し、テストする必要があることを説明しています。GitHub「Responsible use of GitHub Copilot inline suggestions」
学習中は、AIに「完成品を全部作って」だけでなく、「この処理を説明して」「この入力ではどう動くか」「この部分だけ直したい」と聞きながら進められます。
最初の題材は、どう選べばいいですか?
入力が小さく、期待する結果を自分で確認できる題材を選ぶと、試した結果を判断しやすくなります。
| 練習の題材 | 自分で確かめる結果 | 初回の範囲 |
|---|---|---|
品目別の数量集計 | 手で足した合計と一致するか | 架空の一覧を画面に表示する |
日付順の並べ替え | 順序と元の件数が一致するか | コピーした練習データだけを使う |
定型文の生成 | 指定した項目が入り、余計な内容がないか | 下書きを表示するところまで |
簡単なクイズ | 正解・不正解の判定が合うか | 自分で作った問題で試す |
最初から、本番の顧客へ送信する仕組みや、業務データを一括で書き換える仕組みにする必要はありません。まず、判断できる範囲で作ってから、保存、接続、公開などの機能を順に考えます。
どのAIツールを選べばよいですか?
使いたい作業に合わせて、支援の形を比較できます。製品によって機能や実行の権限、契約の条件が違うため、導入前に公式情報を確認してください。
| 支援の形 | 主な使い方 | 確かめたいこと |
|---|---|---|
対話でコードを相談する | 仕様案、短いコード、エラーの説明を求める | 出された案をどこで実行し、誰が確認するか |
エディタで補完する | 書いている箇所に提案を受ける | 提案の差分と、参照される情報 |
複数ファイルを扱う支援 | 既存の構成を調べ、変更や検証を補助する | 変更する範囲、実行する操作、確認できる記録 |
これは製品の順位表ではありません。学習の最初は、一つのファイルや関数を扱い、提案の内容を読み返せる形から始める方法があります。費用、対応する環境、利用上限、データの取り扱いは、契約する時点の公式資料で確かめましょう。
AIへの指示には、何を書けばいいですか?
目的に加え、入力、出力、例外、処理してはいけないことを書きます。コードの好みよりも、どんな動作を求めているかを先に決めましょう。
例えば、今回の品目集計では、次のように指定できます。
品目集計プログラムを依頼する仕様例
Pythonで、品目別の数量を集計する関数を作りたいです。
目的:架空の一覧を使って、集計処理と入力確認を学ぶ。
入力:item(品目名)とquantity(数量)が入った辞書の一覧。
出力:品目名ごとの合計数量を辞書で返す。
条件:
・数量は0以上の整数。文字列、小数、負数は受け付けない。
・品目名は文字列で、前後の空白を除いて空ならエラー。
・同じ品目名は合計する。空の一覧は空の辞書を返す。
・入力した一覧は変更しない。
・外部への送信、ファイルの読み書きは行わない。
まず処理の順番を説明し、短いコードを示してください。
正常な入力と、条件に合わない入力の確認例も付けてください。
これは、この稿で扱う練習用の仕様です。AIへ書けば必ず条件を満たす、という意味ではありません。出力されたコードを仕様と比べ、確認例も自分で見直します。
実例:Pythonで品目別の数量を集計する
次は筆者がこの稿のために用意した練習例です。実務の台帳や、あらゆる入力形式に対応するプログラムではありません。
入力は、itemとquantityという項目を持つ辞書の一覧です。辞書は、項目名と値を組にして扱うPythonのデータ構造です。この例では、品目名の前後にある空白を除き、数量を足します。
def total_by_item(rows):
totals = {}
for row_number, row in enumerate(rows, start=1):
item = row.get("item")
quantity = row.get("quantity")
if not isinstance(item, str) or not item.strip():
raise ValueError(f"{row_number}行目: 品目名を確認してください")
if type(quantity) is not int or quantity < 0:
raise ValueError(f"{row_number}行目: 数量は0以上の整数です")
item = item.strip()
totals[item] = totals.get(item, 0) + quantity
return totals
sample = [
{"item": "メモ帳", "quantity": 2},
{"item": "ペン", "quantity": 1},
{"item": " メモ帳 ", "quantity": 3},
]
print(total_by_item(sample))
期待する結果は次のとおりです。
{'メモ帳': 5, 'ペン': 1}
この例で大切なのは、結果を手で確認できることです。同じ品目が合計され、空白がある「 メモ帳 」も「メモ帳」として数えられることを見ます。
数量が文字列の"3"なら、数字に見えても、この仕様ではエラーです。文字列を自動で整数へ変えたい場合は、別の条件として設計します。あいまいな入力を勝手に補うことと、決めた仕様で処理することを分けて考えましょう。
Pythonの基礎文法や辞書、関数は、Python公式チュートリアルで確認できます。このチュートリアルはPython言語の入門であり、プログラミング自体が初めての方には難しい箇所もあります。実行する環境の準備が難しい場合は、まずこの関数の入力と結果を読むところから始めてかまいません。
「動いた」だけでなく、何をテストすればいいですか?
正常な例だけでなく、空欄や条件に合わない入力でも、期待どおりに扱うかを確かめます。テストとは、この例では、入力に対する結果やエラーが仕様に合うかを確認する作業です。
| 入力の例 | 期待する結果 | 何を確かめるか |
|---|---|---|
同じ品目が複数ある | 合計される | 品目を正しくまとめるか |
空の一覧 | 空の辞書 | データがない場合を扱えるか |
数量が0 | 合計へ0として入る | 許可した境界の値を扱えるか |
数量が負数・小数・文字列 | エラー | 条件に合わない値を拒むか |
品目名が空白だけ | エラー | 集計の対象が明確か |
処理した後の元データ | 変わらない | 指示した範囲以外を変更していないか |
例えば、次の確認を加えられます。
assert total_by_item(sample) == {"メモ帳": 5, "ペン": 1}
assert total_by_item([]) == {}
assert total_by_item([{"item": "ペン", "quantity": 0}]) == {"ペン": 0}
assertは、条件が真かを確かめるために使っています。すべての利用場面の正しさを証明するものではありません。入力が辞書ではない場合など、この例が扱っていない状況もあります。
また、TrueやFalseを数量として受け付けないために、数量の型を厳密に確認しています。仕様にどんな値を認めるかを決めると、必要な確認も見えてきます。
エラーが出たときは、AIにどう相談しますか?
使った入力、期待していた動作、実際の結果、該当するコードをまとめます。エラーメッセージだけでは、何を直したいかが伝わらない場合があります。
期待したこと:
実際に起きたこと:
再現するための小さな入力:
該当する短いコード:
実行環境と表示されたエラー:
まず原因の候補と、確かめる順番を説明してください。
修正が必要な場合は、変える箇所と理由を示してください。
変更後に、元の正常な例と問題の例を確かめる方法も教えてください。
業務の情報、パスワード、認証用の文字列などがコードやエラーに含まれる場合は、そのまま相談文へ貼らず、公開・共有してよい練習用の形にします。
AIの案を取り入れた後は、問題のあった例と、以前に動いていた例の両方を確かめます。一つのエラーを消すために、別の動作を変えてしまう場合もあるからです。
次にCSVや業務フローへ広げるときは、何が必要ですか?
今回の例はメモリ上の一覧を扱うだけです。CSVファイルを読み書きする場合は、列名、文字コード、区切り、空欄、保存先などの条件が増えます。
PythonにはCSVを扱う標準ライブラリのcsvがあります。独自にカンマで文字列を分ける前に、公式資料で読み書きの方法を確認できます。Python公式「csv」
業務へ広げるなら、元データを保存し、練習用のコピーで読み込みから確認までを試します。出力先を新しいファイルにする、既存ファイルがあるときの動作を決める、エラーを記録する、といった設計も必要です。
「収集→整理→連携→処理→検証→確認」という業務フローでも、それぞれに何を入れ、何が出るかを定義します。AIを使う工程、決めたルールで動かす工程、人が判断する工程を区別すると、何を作るかが明確になります。
よくある質問
AIにコードを書かせることと、AIを組み込んだアプリは同じですか?
違います。今回のようにAIを相談やコード作成の補助に使っても、できたプログラムの実行時にAIが動くとは限りません。AIサービスをアプリから呼び出す場合は、接続、費用、認証、送る情報、失敗時の扱いなどを別途設計します。
学習では、どの言語が一番よいですか?
作りたいものによります。この稿は小さな集計を説明しやすい例としてPythonを使いました。Web画面、スマートフォンアプリ、ゲームなどでは必要な言語や環境が違うため、目的と学習資料を合わせて選びましょう。
エラーが出なくなれば、本番で使えますか?
エラーが出ないことと、業務の条件を満たすことは別です。結果の正しさ、例外、入力情報の扱い、運用、変更後の確認などを、使う場面に合わせて確かめる必要があります。
プログラミングの仕事をすぐ受けてもよいですか?
練習で動くことと、相手の要件を満たして保守できることは分けて考えましょう。まず担当できる範囲を整理し、説明、検証、修正ができる作品を残します。仕事の契約や責任を、AIが代わりに引き受けるわけではありません。
関連する記事
HTサポートワークスへの業務フローやAI活用の相談は、相談フォームからお聞かせください。
記事の制作と確認について
AIを下書きや構成の整理に活用し、主張を一次資料と照合してリライトしました。参照した資料と確認範囲は、本文の出典・注意点に記載しています。
製品の仕様や制度は変更されることがあります。利用する際は、本文で示した条件と最新の公式情報を確認してください。

