見出し画像

初心者向け◎ ChatGPTをつかった「AIプログラミング」独学勉強法!

こんにちは! なつめ(ライター)です。

WordPressプラグインの開発が佳境かきょうを迎え、てんやわんやな深夜。息抜きもかねて、執筆(現実逃避)していますw

ChatGPTを家庭教師にすれば、センスに関係なく誰でも、プログラミングの独学は可能! AI時代ならではの勉強法を、超わかりやすく解説していきますね。

3行で要約

① AIに教わったコードを動かして、愉快ゆかいに学ぼう

② コードが何をしているのか? 「頭」をつかって解像度を4割アップ!

③ 技や文法、関数などを、「体」に浸透させる!

AI時代のプログラミング独学勉強法


③を別の言葉であらわすと、「頭」で4割わかったらコードを試してみる工程です。「試す」は「写す」ですが、場合によっては紙とペンを利用しても構いません。手をうごかすことで、言外に含み隠されている「何か」を汲み取れる訳です。

紙とペン
《?????》を《?》にわけて質問していこう




1.AI時代は「問題」ではなく「解答」が起点だからこそ、愉快痛快!

サブスクって「2ヶ月無料(解約しないと3ヶ月目から、月額1,980円ね!)」のように、お試しが長いと、ついつい入っちゃいますよね。

気づけば解約を忘れ……

1. なんか知らん引き落としがあるぞ!?

2. あー、Spotifyの無料お試し終わってた!

3. しゃーない7月だけ使うか(8月も継続してしまった……)

実話


例えばSpotify。アプリからの解約が無理なせいか、春にはやめよう.....そう思ったのに2024/7月現在も、がっつり使っちゃっています。

ですがChatGPTにお願いすれば、2分後にはサブスク管理アプリの爆誕! です。

ChatCPTに依頼
レンチンのようにアプリが爆誕!

ちなにに「こう」と入力するだけで、

~の意味を高校生でも分かるように、ベストプラクティス、かつ最もシンプルなサンプルコードでカリスマ講師のように教えて

のようなプロンプトをだせるように辞書登録を活用すると、便利です。

クールなプロンプトは辞書登録
2分で作ったサブスク管理アプリ


ほんとうにつかっているサブスクを登録してみた(リアル!)

サンプルコードとの向き合い方は後ほど解説しますが、小規模なアプリなら初心者でも2分で完成してしまう。これが、AIのおおきな特徴! ですがつくって満足! 愉快痛快! では、「プログラミング」は身につきません。

まずはAIが教えてくれたコードを、動かして遊ぶ。いったん動いたなら、頭と体で8割は理解する。

これぞ解答を起点とした、AI時代の逆算独学法といえましょう。

Python版・サブスク管理アプリ

コードを掲載しますので、興味があえばPythonをWindowsやMacにインストールして、いったん動かしてください。


うげぇ~って感じた場合は、読み飛ばしてもOKですよ!!!




(以下、うげぇ~注意⚠️)





import tkinter as tk
from tkinter import messagebox
from tkinter import ttk
import datetime

# サブスクを保存するためのリストを作成
subscriptions = []

# サブスクを追加する関数
def add_subscription():
    name = entry_name.get()
    price = entry_price.get()
    end_date = entry_end_date.get()

    # 入力のバリデーション
    if name and price and end_date:
        try:
            # 日付のフォーマットチェック
            end_date_obj = datetime.datetime.strptime(end_date, "%Y-%m-%d")
            subscription = {"name": name, "price": price, "end_date": end_date}
            subscriptions.append(subscription)
            listbox_subscriptions.insert(tk.END, f"{name} - {price}円 - {end_date}")
            entry_name.delete(0, tk.END)
            entry_price.delete(0, tk.END)
            entry_end_date.delete(0, tk.END)
        except ValueError:
            messagebox.showwarning("Input Error", "Please enter the end date in YYYY-MM-DD format.")
    else:
        messagebox.showwarning("Input Error", "Please enter name, price, and end date.")

# サブスクを削除する関数
def delete_subscription():
    selected_index = listbox_subscriptions.curselection()
    if selected_index:
        listbox_subscriptions.delete(selected_index)
        subscriptions.pop(selected_index[0])
    else:
        messagebox.showwarning("Selection Error", "Please select a subscription to delete.")

# メインウィンドウの設定
root = tk.Tk()
root.title("Subscription Manager")

# サブスク名のラベルとエントリ
label_name = tk.Label(root, text="サブスク名")
label_name.grid(row=0, column=0, padx=10, pady=10)

entry_name = tk.Entry(root)
entry_name.grid(row=0, column=1, padx=10, pady=10)

# サブスク価格のラベルとエントリ
label_price = tk.Label(root, text="月額いくら?")
label_price.grid(row=1, column=0, padx=10, pady=10)

entry_price = tk.Entry(root)
entry_price.grid(row=1, column=1, padx=10, pady=10)

# 無料期間終了日のラベルとエントリ
label_end_date = tk.Label(root, text="無料お試しっていつまで?(例:2024-08-08)")
label_end_date.grid(row=2, column=0, padx=10, pady=10)

entry_end_date = tk.Entry(root)
entry_end_date.grid(row=2, column=1, padx=10, pady=10)

# サブスクを追加するボタン
button_add = tk.Button(root, text="サブスク追加!", command=add_subscription)
button_add.grid(row=3, column=0, columnspan=2, pady=10)

# サブスクを表示するリストボックス
listbox_subscriptions = tk.Listbox(root, width=50)
listbox_subscriptions.grid(row=4, column=0, columnspan=2, padx=10, pady=10)

# サブスクを削除するボタン
button_delete = tk.Button(root, text="とりま削除!", command=delete_subscription)
button_delete.grid(row=5, column=0, columnspan=2, pady=10)

# メインループを開始
root.mainloop()

今回はTkinterは「ティーケーインター」を使って、マウスで操作できるようにしています。TkinterはPythonの愉快な標準装備! ほんのちょびっと勉強すれば、デスクトップアプリを作成できてしまうすぐれものです。

Pythonをインストールすれば、どのPCでもかんたんに動かせます。

え? Pythonってどうやってインストールするの?

っていうか、このプログラムの意味がわからない!

これらの《?》こそ、プログラミングの独学を成功させる《エントリーポイント》です! 幸いChatGPT4は、無料で家庭教師をしてくれます。このビックチャンスをフル活用し、「頭」で4割、「体」で4割! 合計80%の理解を目指しましょう。

では上記のようなコードを、どんな質問で理解・体得すればいいのでしょうか!? プログラミング初心者を対象に、詳しく解説していきますね。





2.コードの解像度を上げ、「頭」でつかむ

繰り返しになりますが、ChatGPTが教えくれたコードは、頭で4割・体で4割理解するのがポイント! まずは頭でつかむための、質問(プロンプト)を紹介します。

日本語入力ソフトに登録しておくとはかどりますよ!



質問(プロンプト)のコツ: 《?》を《わかった》に!


プロンプトをGoogle日本語入力に登録している画面

例えば「こう」と入力すると、Google日本語入力で、「の意味を高校生でも分かるように、ベストプラクティス、かつ最もシンプルなサンプルコードでカリスマ講師のように教えて」と表示されるように設定します。

このショートカットを利用し、

【Tkinter】の意味を高校生でも分かるように、ベストプラクティス、かつ最もシンプルなサンプルコードでカリスマ講師のように教えて

《?》を小分けにして、スモールステップで《理解》

と、GPTに質問してみます。

ぜひコピペして、あなたのGPTにも質問してみてください。

GPT先生の体験授業を通じて、Tkinter(ティーケーインター)の「シンプル解説」を確認しておきましょう。

Tkinterの説明

【Tkinter(ティーケーインター)ってなんだ?】


Pythonで使えるGUI(Graphical User Interface)ツールキットの一つです。GUIというのは、ボタンやテキストボックスなどのグラフィカルな要素を使って、デスクトップアプリを作るための機能です。




【なぜTkinterを使うのか?】


簡単: Pythonの標準ライブラリに含まれているので、追加でインストールする必要がなく、すぐに使えます。

軽量: 比較的軽量で、学習コストが低いです。

クロスプラットフォーム: Windows、macOS、Linuxなどで動作します。

ChatGPT 4oより引用(一部改変)



Tkinterを使ったシンプルなサンプルコード

import tkinter as tk

# ウィンドウを作成
root = tk.Tk()
root.title("Hello, Tkinter!")  # ウィンドウのタイトルを設定
root.geometry("300x200")       # ウィンドウのサイズを設定

# ボタンがクリックされた時の動作を定義
def on_button_click():
    label.config(text="Button Clicked!")

# ボタンを作成
button = tk.Button(root, text="Click Me!", command=on_button_click)
button.pack(pady=20)  # ボタンをウィンドウに配置し、パディングを設定

# ラベルを作成
label = tk.Label(root, text="Welcome to Tkinter!")
label.pack(pady=20)  # ラベルをウィンドウに配置し、パディングを設定

# メインループを開始
root.mainloop()

今回は「うまく質問し、頭と体で理解!」が目的なので、この小さくてシンプルなコードを理解してみましょう。

実行すると,,,


実行結果


クリック結果

ここから本格的に《?》を《わかった》に転換していきたいですね! いまは筆者が同時通訳者になったつもりで、GPTに次のように質問します。

このサンプルコードの *全ての行* にギャル語でプログラミング未経験の中学生でも意味がわかるような、コメントを、#~とつけて!

日本語入力に「ちゅう」って登録するといいよっ!


ギャルGPTの活用術は、下記のnoteを参考にしてください。


さっそく「ギャルGPT」が、初心者に寄り添った解説を、コード内に書いてくれたようです!


import tkinter as tk  # Tkinterをインポートするよ!これでGUIを作る準備OK

# ウィンドウを作成
root = tk.Tk()  # メインウィンドウを作るよ!
root.title("Hello, Tkinter!")  # ウィンドウのタイトルを設定するよ!ここはウィンドウの名前だよ!
root.geometry("300x200")  # ウィンドウのサイズを設定するよ!幅300ピクセル、高さ200ピクセルだよ!

# ボタンがクリックされた時の動作を定義
def on_button_click():  # ボタンがクリックされたら何するか決めるよ!
    label.config(text="Button Clicked!")  # ラベルのテキストを「ボタンクリックされた!」に変えるよ!

# ボタンを作成
button = tk.Button(root, text="Click Me!", command=on_button_click)  # ボタンを作るよ!「クリックして!」って書いてあるよ!
button.pack(pady=20)  # ボタンをウィンドウに配置するよ!上下に20ピクセルの余白をつけるよ!

# ラベルを作成
label = tk.Label(root, text="Welcome to Tkinter!")  # ラベルを作るよ!「Tkinterへようこそ!」って書いてあるよ!
label.pack(pady=20)  # ラベルをウィンドウに配置するよ!上下に20ピクセルの余白をつけるよ!

# メインループを開始
root.mainloop()  # ウィンドウを表示して、ユーザーの操作を待つよ!これがないとウィンドウがすぐ消えちゃうよ!

なんと! 気持ち的にもわかりやすいですね。上記解説内に《?》があれば、それもGPTに質問し、《わかった》に転換していきましょっーーー!


3.40%わかったら、「体」にインストールする

次は実際に「素読そどく」をします。

素読とは元々漢文や文章術などの学習法を指し、「よく意味はわかんないけど、先生のお手本を試してみる」やり方です。

日本語でも新しい言葉を身につけるときって、辞書でなんとなーくの意味をつかみ、会話や文章などで「素読する(試す)」と、血肉になっていきますよね。

このnoteの冒頭では、あえて耳慣れない言葉で挨拶をしてみました⤵︎ ︎

WordPressプラグインの開発が佳境かきょうを迎え、てんやわんやな深夜。息抜きもかねて、執筆(現実逃避)していますw

冒頭文

「佳境」ってあんまし使わない「新語」ですよね。この文脈ですと、佳境は「ある状況の頂点」を意味します。

  • 物語が佳境に入る

  • プロジェクトが佳境を迎える

といったイメージ!

ですがこうして佳境の意味を「頭」でわかっても、会話や文章などで、つかってみないと身につきません。

プログラミングは「頭で4割」理解したならば、「体でも4割」を覚える。そうしてはじめて、"マイリス"に入る、というわけです!

シンプルで小さなコードを、頭と体で理解するたびに、ポケモンカードをGETできる感覚! と言えましょう。




まとめ: 小さく分ければ楽勝!


大きな《?????》を、小さな《?》にわけて、かんたんそうな(弱そうな)やつから、ガンガンGETして、手札を増やしていけば◎! 初心者でも驚異的に独学がはかどります。

ChatGPTは、20万円、30万円のプログラミングスクールを越える家庭教師ですからね!


やばい! コーラのみたい!! (唐突)


▼関連記事▼


以上、なつめ|ライターでした!

ここまで読んでくださり、ほんっとーにありがとうございます。感想・質問コメントも大歓迎ですよ。 ではまた!






この記事が気に入ったらサポートをしてみませんか?