見出し画像

Python学習ではChatGPTで楽しく深く知識を広げられる。Google検索も併用

だんだんとChatGPTを併用したPython学習の手法ができてきたのでそのメモ。ただし独学であってもコアとなる学習教材をベースに学習を進めている点に注意。

完全にゼロベースでYouTubeやWeb情報をかき集めるという非効率的な学習スタイルは今回はやめておいた。

あくまでも進むべき道を1本に決めた「学習教材を進めるスタイル」で効率的にPythonを攻略する。

さて、だんだんとChatGPTの使い所が分かってきた。

(約 3,500文字の記事です。)


学習パターン


  1. 教材を進める

  2. 疑問点が出てきたらGoogle検索

  3. トップ3くらい調べても解決しない場合にはPythonリファレンスを読む

  4. それでも解決しない場合やしっくりこないときにChatGPTに質問する

  5. 出てきた答えをヒントに、さらに未知の情報についてGoogle検索(2に戻る)

  6. 無限ループに陥りそうになったら切り上げる

  7. UpNoteに学習メモと必要そうなURLをペースト。

  8. 調査終了。学習教材に戻る

こんな感じだ。1つ調べると3以上の謎や疑問が出てくる。無限連鎖=核融合になってしまうので、ある程度調べて「もう無理、今はそこまで必要ない!」と思ったらバッサリ切り捨ててまとめに入る。ある程度UpNoteにメモしたりコピペして終了。


ChatGPTの「私の知識外」からの答えが面白い

やはりGoogle検索とChatGPTとの大きな違いは、まったく私の知識外からの「より効率的な提案」があることだ。これはGoogle検索ではなかなか難しい。ロボット検索はあくまでも検索キーワードに関連したものしか提案してくれない。だがChatGPTは質問内容に関連した新たな提案を持ってきてくれる。ここが面白い。

Pythonの場合、今はまだ学習中で「本来ならば上級編で初めて登場するような関数」なども、質問に対する適切な返答でそれが必要ならばその関数を教えてくれる点。そしてそれに関してGoogle検索などしてみてもさっぱり使い方や仕様を理解できない場合でも、「何がどう理解できないのか、何をどう教えて欲しいのか?」を丁寧に文章にしてChatGPTに聞くとしっかり教えてくれる点。

確かにこの間に学習教材の進度は止まるものの、どんどんとPythonに関する知識が増えていることは間違いない。それはきっと、この初級編の教材が終わったあとの中級編での理解の加速に貢献すると感じている。


プログラミングは課題解決のための手段

そもそも「課題の解決のための手段」に、初級編も上級編もない。問題が解決できさえすれば1行コードでも10行コードでも構わない。それを生み出すのに1時間かかろうが30秒で終わらせようが、結果は一緒なのだ。ならば早いほうがいい。省エネでコスパとタイパがいい方が正解だ。

そこに努力や気合いや根性や過去の経歴や人種や性別は、関係ない。Outputが答えだ。ソースコードが全てだ。それがプログラミングの面白いところ、公平なところ。

Pythonの柔軟性

学習を進めて感じたことのメモ。C++やPHPなどと比べて、Pythonらしいな、と思ったところが幾つかある。

最初から配列を前提にしているところ。そして配列には色んな型のオブジェクトが格納されることが前提になっていること。

1つの関数が文字列型を返したりint, float型やbool型を返したりするなど、1対1の関係の縛りが少なくて、どちらかというと1対多を前提に設計されている点。一見すると「この関数はどんな型を返すのか、ごちゃごちゃ?」とも思えるが、柔軟性とのトレードオフだと感じた。今のところ、そういう言語だと思ってしまえば特に支障はない。もし型変換でミスしてもエラーコードを見ればすぐに気付けるのでOK。

インデントによってブロック化されているので、当たり前だがインデントは重要。そして無駄にブロックの始点・終点を示す文字を入れなくていいので、全体的にタイピング量が少なくて済むし見た目もごちゃごちゃしにくい点もいい。これはソースコードの可読性に思い切り関わっている。

これに関連してPEP 8でソースコードの書き方をある程度統一している点もGood。初心者からベテランまで、一定の書式でソースコードを書くルールに統一されているので、可読性がある程度保証されている。これもいい。初心者に特に優しい。

Python 3.6以降から急激に発展した?

何となくだが、3.3からの変更点などよりも3.6や3.9以降の進化が激しい気がする。今は3.12が最新だが日本語版のドキュメントはむしろ枯れた3.10がよくできている感じがした。3.12のマニュアルはまだ所々英語のままだったりする。

学習教材が3.10なので、特に理由もないので3.10で学習中だ。もし3.11がLTSになったら、その頃にはPython中級者になっているはずなので、次のバージョンをメインにするか検討できるだけの知識量になっているだろう。今はまだ3.10 LTSで十分。


早くGUIソフトを作りたい

PythonではGUIアプリも作れるらしい。調べたところTkinterなるもので簡素なものは作れるらしいし、凝ったものならばQtPyやPySideで作れるらしい。ただしライセンスの関係でソースコードを非公開で商用利用したいならばPySide一択とのこと。なので将来的にはPySideでWindows用アプリをPythonで開発したい。そのために今勉強を進めている。PySideの教材も確保済み。

ちなみに3DCGの鉄板ソフトのMayaも実はPySideでコーディングされているとか。Mayaでは他にPyMelなどというPythonを使ったMaya拡張が可能だ。他にも3DCGではBlenderでもPythonでアドオン開発ができる。なので私にとってのPython習得は必須であり、公私ともにPC能力を何倍にも高めるための手段でもある。だから今必死に学習している。

ある程度自由にPythonを使いこなせるようになったときの、自由の空は果てしなく広いと感じている。

そこに加えてChatGPT先生の的確なアドバイス。もうPython学習が楽しくてしょうがない😍早くスキルアップしたい。

今日もUpNoteのPythonメモが凄い気負いで増えていく。だがUpNote運用ルールを事前に決めているので量が増えても探し出すのに苦労しない。ワンクリックとキーワード検索でサクッと辿り着ける。Python学習に入る前にUpNoteで自分の情報収集&蓄積システムを構築しておいてよかった。そしてTickTickによる習慣的な学習システムと時間計測ログシステムの運用スタイルを構築できてよかった。

(本来はこれはPython学習のためではなくて次の大きな目標のために整備したのだが、まずは)Python学習でその価値を確認できてよかった。

とりあえず今日の息抜き日記はここまで。あと相変わらず普通に禁酒できてます。今は酒よりもPythonの知識をがぶ飲みしたい。


今回の創作活動は約45分(累積 約3,820時間)
(1,077回目のnote更新)

筆者はAmazonアソシエイト・プログラムに参加しています。(AmazonアソシエイトとはAmazon.co.jpの商品を宣伝し所定の条件を満たすことで紹介料をAmazon様から頂けるという大変ありがたい仕組みのこと。)
以下のリンクを経由してAmazonでお買物をするとその購入額の1~3%ほどのお小遣いが私に寄付されます。誰が何を買ったという情報は私には通知されませんのでご安心下さい😊 以下のリンクを経由して頂ければ紹介商品以外のご購入でもOKですよ~。

酒と言うよりも元々炭酸飲料が好きだったので、炭酸は夜に息抜きに飲んでいます😊


読んでくれてありがとう。気長にマイペースに書いてます。この出会いに感謝😊