ゼロから始めるAIシステム開発 #10 「Python1年生」

## Python勉強します
遅ればせながらあけましておめでとうございます。いつもの入門書の8章をやる予定でしたが、年を越して当面の目標をより具体的に設計した結果、オリジナルの生成AIアプリを製作するにはやはり**Pythonの習熟度が一定以上必須**と考え、予定を変更してPythonを一からやっていくことに決めました。

というわけで参考にした書籍はこちら。

**Python1年生 第2版 体験してわかる！会話でまなべる！プログラミングのしくみ**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3885923/ecf17e16-423a-5596-950f-0fb475c22d0b.png)
https://amzn.to/3WxQF5y
とある（独学の）YouTuberがオススメしてたという理由で実は2～3年前に買ってたやつ。その人いわく、**「この本でも分からないようならプログラムは諦めたほうがいい（くらいに易しい）」** らしいので、ン十年前とはいえ一応プログラミング経験があるからさすがに大丈夫だろう…という目算。今回はこの本のレビュー＋αで。

## レビュー
児童書みたいなノリでめちゃくちゃ分かりやすい。最近は小学校でもプログラムやってるらしいので実際子供向けなのかもしれない。章のタイトルを紹介すると、
- 1章 Pythonで何ができるの？
- 2章 Pythonを触ってみよう
- 3章 プログラムの基本を知ろう
- 4章 アプリを作ってみよう
- 5章 人工知能くんと遊んでみよう

こんな感じなので、経験者なら3章までは **10分で読み進めるレベル。** 実際に操作させて変数、型、型の変換、リスト、インデント、順次、分岐、反復、関数、引数、戻り値、モジュール…とプログラムやPythonの基礎を教えてくれる。読んでるのが子供なら好奇心を刺激しつつ続けさせるいい内容だと思う。大人はさすがに肩透かしを食らうかも。
4章・5章はそれなりに難しかった。書中のアプリを作るにあたってはtkinterやpillowなどのモジュールを使うのだが、それらの解説は概要のみで詳しい内容は紹介されておらず、コードを完全に読み解くには自身で調べる必要があった。おそらくPythonの習熟はこれの繰り返しだろうから、そういう意味で実入りになった。 **なんか…できそうな気がしてきた…！** 

https://ja.wikipedia.org/wiki/%E3%83%80%E3%83%8B%E3%83%B3%E3%82%B0%EF%BC%9D%E3%82%AF%E3%83%AB%E3%83%BC%E3%82%AC%E3%83%BC%E5%8A%B9%E6%9E%9C

5章においてはnumpy、scikit-learn、matplotlibなどのモジュールを使用するのでそれらを個別に調べていく。そうするとそれらが機械学習において定番のモジュールということを知れた。ちょっと調べればわかる浅い情報ではあるが、ただなんとなくの理解で入門書の通りコードを入力していたころに比べると視界に灯りが増えた印象になり、ずいぶん進みやすくなった気がする。**やりたいこと→やれること→具体的手段を知る→詳細の調査→理解して応用**、という踏むべき階段がしっかり見えてきたと思える。この本の功績か？と言われると違う気もするが。

## 参考にしている動画・サイト紹介
<iframe width="560" height="315" src="https://www.youtube.com/embed/nwmkGCxcjB0?si=fmJBf9FFFghYEG0E" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

冒頭で言及したYouTuberの**独学クソリーマン**さん。自分と同じ独学者の目線で紹介してくれるので参考になる。とりあえずこのロードマップで生成AIアプリ製作と並行し進めてみる予定。

<iframe width="560" height="315" src="https://www.youtube.com/embed/oJdG7srNDKU?si=5sZuHtHta5BYTzVW" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

PythonVtuber（ニッチだな…と思いきや登録者数10万人越え）の**サプー**さん。モジュール名で検索したらこの人が出てくるのでは。数学的な解釈等は割愛してコードの書き方に集中して教えてくれる。

<iframe width="560" height="315" src="https://www.youtube.com/embed/JEZCwhpCb4w?si=scmLnjIRyBjSyxJ0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

**数理の弾丸**チャンネル。複数人の発信者がいて初学者担当の人に教える形なので分かりやすい。AIについてもいろいろ発信があるので参考になる。

https://chokkan.github.io/python/index.html

**東京工業大学**によるPython早見帳。

https://docs.python.org/ja/3/tutorial/

**Pythonチュートリアル**。ボス曰く「情報が古いのがあるのでググったら負け。公式ドキュメントとチュートリアルだけ見ろ」とのこと。そう言われたのに↑でさんざんググっててすいません。

https://github.com/kitao/pyxel/blob/main/docs/README.ja.md

レトロゲームエンジンの**Pyxel**。ゲームもン十年ぶりに作ってみたいんだけど、やるべきことから乖離してるので趣味の範囲でかな…。

あとはおなじみ各種LLM。なんなら書籍作者の意図まで察して答えてくれる。便利すぎてもう手放せない…。

## おわりに
1月今回しか更新できず申し訳ない。12月よりは全然時間をかけてるんだけど、内容が初歩的すぎるのもあってここに書けることが少ないので、次回以降どうしようかな…。