誰かに見てもらうための、簡単なデザイン

《読んだ本》土日で分かるPythonプログラミング教室

プログラマーで社長で技術講師な「あいさん」と、新米プログラマー「ななこ」の掛け合いで楽しく学べるシリーズ、
土日でわかるPHPプログラミング教室の次となる本、「土日でわかるPythonプログラミング教室」を読んだのでレビューです。
Pythonは名前しか知らず、最近プログラミングをほぼしていない私が読んでも分かるものか…?と思いましたが、前回と同じくキャラクターの会話ベースで話が進むのでとっつきやすく、要所要所を振り返りながら読めました。

この本は、Pythonプログラミングの本…なのですが、要点は「人工知能を作ってみる」ということに置かれているので、がっつりPythonについて解説しているというわけではありません。
あくまで基本はPythonを使った人工知能づくりで、それを体現するための他の要素やツールも出てきます。
Docker、Mecab、Django、JavaScriptなどですが、それらの機能や使い方も解説してあります。
全部で222ページの本なので、いろんなことが盛りだくさんでそれぞれについて詳しく書いてあるわけではありません。
人工知能を作る環境整備、過程や仕組み…そういったことが完全に理解できなくとも体験してみる…といった感じの本です。
その中心となる言語がPythonで、Pythonの文法や細かい解説はないので、Pythonだけをがっつりやりたい、もっと詳しく知りたいという方には不向きかもしれません。

Pythonで何ができるか知りたいとか、人工知能の仕組みに興味がある方なら、その取っ掛かりとなる要素が多く詰まっており、また会話形式で読みやすいのでピッタリかもしれません。
人工知能に欠かせない「形態素解析」「マルコフ連鎖」といった考え方も図解や実践で解説されています。
Pythonという言語自体に慣れるという項目もあり、この部分では「FizzBuzz」という有名な?分かりやすい例を用いてやっています。

この本で出てくる人工知能

この本では、ユーザーの質問に対して、ほぼ定型文を返答する人工知能を作ります。
作ります…というか、1からプログラミングをするというよりは、サンプルがあるのでそれを見ながら部分的な解説を読んだり、ところどころ改変したりして、コードを体感しながら学んでいきます。
その過程でMecab(形態素解析エンジン)を利用して、日本語を意味を持つ単語に区切って返答文を構成できるようにしたり、マルコフ連鎖で意味を持つ文章に組み立てたりします。
ユーザーの入力文を解析し、入力された単語の返答に合うような文章をランダムで返す仕組みができます。
人工知能に言葉を覚えされることもできます。このあたりでcsvファイルを扱ったりとかもします。
MecabやらcsvやらをPythonで呼び出して使っていく…感じですかね…なので割と手広くいろんなものに触れながら進めていく感じです。

開発環境はDocker

この人工知能は、Webブラウザで表示させてテキスト入力のみでやり取りできるものですが、開発にはDockerを使います。
Dockerのインストール方法はWindows、Mac両方共解説されています。
使うエディタはAtomで、こちらもインストールからPython用の設定方法まで解説されています。
コードの検証や実行はDockerのkitematic画面から行いますが、まぁ…平たく言うと黒い画面ですよね…
というわけで、Atomでコードを書いては黒い画面で検証していく…といった感じです。
あくまで実行・検証に使うので黒い画面用の詳しいコマンドの説明などはありませんし、そんなに難しいことはしません。
この本は自分で何かを考えて書くという演習的なものはないので、実行するコマンドそれぞれには解説がついていて、実際に打ち込みながら挙動を見ていく感じです。

ボリュームとしては少し少なめ…かな?

タイトルに「土日でわかる」とありますが、環境構築から最後までで12時間と、土日でやろうとすると1日6時間の計算で書かれています。
前半はPythonプログラミングですが、後半はWebの仕組みなど、どうやってデータの取得や返答が行われているか、主にデータ処理に関する説明になります。
その過程でJQueryやDjango、JSONなどが出てきます。これもそれぞれがっつりやるわけではなく、こういう仕組みがあるよ〜ってサラッと流す程度です。
結構盛りだくさんなので…全部を理解するのは難しいと思いますし(私もなんとなくしか理解できなかった)、この本の最後で、学習者である「ななこ」は「全然わかってない」と発言しており・・・なので・・・多分「理解する」のではなく「触れてみる」、そして興味があれば関連書籍なども紹介されているのでそれでもっと理解を深めていく、いうことがこの本の主な目的になっているんじゃないかと思います。

マルコフ連鎖やタプル型の説明を何度も見返しましたが、それでも私は理解することができず…多分それで良い?いや理解できたらもっと良いんでしょうけど、とりあえずそういうものを使って何かを作る過程を体験することによって体感を得るのが次に繋がる、本当に入門というか体験入学みたいな本かな、と思いました。
細かい部分は理解できなくても、重要な部分は「あいさん」と「ななこ」の会話できっちり表記されていて、またそれが会話形式なので読みやすく、そして作業の流れもきっちり追える構成になっています。
「◯◯でつまづいたらここに戻ってこよう」とそれぞれの章の最後に書いてあるので、見返す時も楽そうです。
しかしWeb制作やプログラミングの専門用語などは普通に出てきますし解説もないので、全くWeb制作をしたことがない方はちょっとつまづくかもしれません。

前作のPHPの本を読んだ時は、また続き(というかシリーズ?)が読めるとは思っていませんでした。
前回でななこはプログラマーとしてのキャリアをスタートさせたので、今回初心者を離脱してゴリゴリのプログラマーになってたらどうしよう…ついていけないかも…と思いましたがそんなこともなく…いつも初心を忘れず、初心者がつまづきそうな部分で必ずツッコミを入れてくれる良い子でした。

それでは!Have a nice design!!