【実際にやってみた】20時間でPythonを習得? ChatGPTが教える効率的な学習法
20時間の法則を使ってPythonの学習をしてみた
こんにちは。AIのいいなりになって生きている山田です。夕ごはんの献立から、新しいスキルの習得まで、なにもかもchatGPTに任せきりです。人は大いなる存在に支配されたがっている、みたいなことをいったのはだれでしたっけ?
20時間の法則とは?
実は、3月1日から「20時間の法則」に従って、プログラミング言語Pythonの勉強をしていました。平日毎日1時間を勉強時間にあて、約1ヶ月で20時間分の学習を終了しました。土日はお休みです。
以前にTEDの動画をみたときから、一度はチャレンジしてみたかったのです。20時間でスキルが習得できるなんて、うまい話すぎる。
とてもいい動画なので、見ていない方はぜひ見るといいです。
ChatGPTとは? AIを活用した学習の新時代
3月の半ばまではchatGPTのGPT-3.5モデルで、半ば以降はGPT−4モデルがリリースされたので即日課金して(月額20ドル)、chatGPTのGPT-4モデルで学習をしていました。
無料のchatGPTでも、かなり学習の助けにはなるかと思います。
学習前:山田佳江のスペック(2023年3月1日時点)
私、山田佳江がプログラミングに対してどのくらいの知識があったかというと、
HTMLとJavaScriptならちょっとわかる。あれでしょ「あなたは何番目のお客様です」とかホームページに表示するやつでしょ。いにしえのインターネットでやったことある!
という程度です。赤ちゃんなみの知識。
あ、そういえば小学生の頃、MSXでBASICとかいうプログラミング言語をやったことがあります。四角とか丸とか描きました。
20時間でPythonを学ぶチャレンジ:スケジュールとカリキュラム
2月の終わりにchatGPT(GPT−3.5モデル)に相談してPythonを学習するためのカリキュラムを作ってもらいました。参考URLも一緒に貼ってくれるので助かります。
参考サイトのほとんどが英語のサイトだったりします(英語わかんないので翻訳して読みました)
予定より進捗が早く、途中で内容を変更してもらったので、最終的なカリキュラムは下記のような感じです。
Python20時間チャレンジのためのチェックリスト
[x] ドットインストール はじめてのPython 全9回
[x] ドットインストール Python入門 基礎文法編 全29回
[x] ドットインストール Python入門 関数編 全17回
[x] ドットインストール Python入門 データ構造編 全25回
[x] ドットインストール Python入門 標準ライブラリ編 全19回
[x] ドットインストール Python入門 クラス編 全12回
[x] Python チュートリアルを読む
↑ ここまででちょうど10時間
[x] 1時間:数字当てゲームの作成
randomモジュール: https://docs.python.org/ja/3/library/random.html
[x] 2時間:NASAのAPIを用いて宇宙の画像を取得する
[x] 1時間:天気予報サイトから天気データを取得するウェブスクレイピングツールの作成
requestsライブラリ: https://docs.python-requests.org/en/latest/
BeautifulSoupライブラリ: https://www.crummy.com/software/BeautifulSoup/bs4/doc/
[x] 1時間:CSVファイルからデータを読み込み、解析するデータ解析ツールの作成
[x] 2時間:簡単なToDoアプリ
タスクの追加
タスクの一覧表示
タスクの削除
Flask公式ドキュメント: https://flask.palletsprojects.com/en/2.1.x/
[x] 3時間:AI関連カリキュラム
[x] 機械学習の概要 (45分)
機械学習とは何か
教師あり学習と教師なし学習
代表的な機械学習アルゴリズムの概要
参考URL: https://scikit-learn.org/stable/tutorial/basic/tutorial.html
[x] ディープラーニング入門(45分)
ニューラルネットワークの概要
活性化関数
バックプロパゲーション
最適化アルゴリズム
過学習と正則化
TensorFlowやPyTorchなどの主要なディープラーニングフレームワークの紹介
参考URL: https://www.tensorflow.org/tutorials https://pytorch.org/
[x] 自然言語処理入門(45分)
自然言語処理 (NLP) の概要
テキスト前処理
テキストのベクトル化
NLPタスクの例
NLTKやspaCyなどの主要なNLPライブラリの紹介
参考URL: https://www.nltk.org/book/
[x] 画像認識とコンピュータビジョン入門(45分)
画像認識とコンピュータビジョンの概要
画像データの前処理
CNN(畳み込みニューラルネットワーク)の概要
オブジェクト検出とセグメンテーション
OpenCVやPillowなどの主要な画像処理ライブラリの紹介
参考URL:https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.htmlOpenCV公式ドキュメント(英語):https://docs.opencv.org/master/d6/d00/tutorial_py_root.html
このリンクでは、OpenCVを使った画像処理の基本的なチュートリアルが紹介されています。
PyImageSearch(英語):https://www.pyimagesearch.com/
PyImageSearchは、画像処理とコンピュータビジョンに関する多くの役立つチュートリアルや記事が掲載されています。検索機能を使って、特定のトピックに関連する記事を探すことができます。
画像処理入門(日本語):https://imagingsolution.net/
このサイトでは、画像処理の基本的な概念や技術について、日本語で解説されています。OpenCVやPIL(Pillow)などのライブラリの使い方も紹介されています。
といった具合です。後半10時間に実践的なことをいろいろやりました。
数字あてゲームくらいまでは、かろうじて自力でやれている感もありましたが、ウェブスクレイピングあたりから「これはなにをやっているんだ?」状態になり、chatGPTのいいなりでわけもわからず、ひたすらコードを打ち込んでは実行していました。
最後のほうは「AI関連の知識がもうちょっと欲しいなー」と思って詰め込みすぎました。ざっくりなんとかさらった程度です。
ChatGPTの効果的なサポート
これは本当にありがたかったのですが、エラーが出るたびに「こんなエラーが出ました」とchatGPTに貼り付けて質問していました。
なんど同じことを聞いても丁寧に教えてくれる先生、ほんとうにありがたいです。人間の先生だったらキレるレベルで質問を繰り返していました。
成果と感想:20時間でどれだけPythonを学べたのか?
結局、山田はpythonができるようになったのか、と問われると「できるようにはなってない」と思います。
例えばトンカチという道具があって「これはなにをする道具?」という状態から「これは柄を持って釘を打つための道具」と理解でき、なんとか使えるようになった状態です。とりあえず釘は打てるようになったけれど、実用レベルではない、まだ大工見習いにもなれない。くらいだと思います。
でも、3月1日の時点では「ターミナルにPythonをインストールできない」「Hello worldがどうしても出てこない」「そもそも実行の仕方がわかっていない」という赤ちゃん状態から、3月30日現在、APIを使ってNASAの宇宙画像を取得したり、csvデータを解析したり(ワインの品質とかを解析してグラフにしました)ディープラーニングフレームワークを使ってみたり、画像処理ライブラリを使って画像をリサイズしたりグレースケールにしたり、といったことを実際にPythonで実行できるようになりました。
かなりすごいスピードで勉強することができたと思っています。まあ、chatGPTのいうとおりに、手とり足取りやっていただけなのですが。
ChatGPTを活用した学習:今後の展望
ともかく、Pythonがどのようなものか、なにができるのか、機械学習をするのになにを使えばいいのか、といったことが20時間の学習でなんとなく分かるようになりました。
今後もぼちぼち勉強を進めながら、困ったことがあればchatGPTに相談しようと思っています。
20時間のカリキュラムを終えたあとに、chatGPTに今後の学習と展望について尋ねてみました。
だそうです。ありがたいですね。
最後の最後まで、完全にchatGPTのいいなりでしたが、楽しく学ぶことができました。次はなにを勉強しようかなー。