えびすい@スマホアプリ開発のALPHAです。

アプリ開発会社をしてます。アプリ制作+メディア運営で喰っていきたいと思いつつ関係有る事無い事を書いていきます。

「詳細! Python 3 入門ノート」をレビューするために実際に使って勉強して見たよ

f:id:ebyan:20170904004410j:plain
お世話になります。えびすい@ALPHAです。

ブロガーさんたちが書評を書きまくるこんな仕組みがあります。

ギガ盛りUnlimitedに参加している強力ブロガー集団(?)による書評が上がってきたので紹介するよ | 染谷昌利公式ブログ

その仕組みを利用して今回セレクトしたのは、大重美幸(著)「詳細! Python 3 入門ノート」ソーテック社、2017/5/24に発売された本です。
書評を書かなきゃというタスクがあれば途中で投げ出すことはできないだろう、という腹づもりもありましたので。

詳細!Python 3 入門ノート

詳細!Python 3 入門ノート

Pythonというのはプログラミング言語のひとつで、近年はAI(機械学習)をするときによく利用される言語として注目されています。
ちょっと乱暴な表現ですが、機械学習に触れて見るにはPythonというプログラミング言語を操る必要がある、ということなのです。
「詳細! Python 3 入門ノート」は、じゃあPythonを勉強してみよう、というタイミングのときに選択肢にはいる本ですね。

ぼくはいままで業務システムとかWebシステムをVBやPHPとかで作る経験が長かったので、Pythonを勉強するときにどの本が良いかがわかるほど機械学習やPython方面に詳しくないので、他の本と比べて見てどうか、というよりは実際使って見てどうか、いくつかポイントを紹介してみよう、というのが今回の主旨です。

手を動かしながら読了した時間

先にも触れてますが、過去に他のプログラミング言語でシステム構築の経験があるぼくが読了するのにかかった時間、ということです。

最初は細かく時間をメモしてたのですが、後半バテてしまったのでざっくりの時間カウントです。

本書は、以下の構成(とぼくがざっくり手を動かしながらかかった時間)です。

Part1 準備:Pythonをはじめよう(40分くらい)
Part2 基礎:Pythonの基本構文を学ぶ(10時間くらい)
Part3 応用:科学から機械学習まで(4時間くらい)

おっさんだし、ここ何年かはガリガリプログラミングしてないし、なので、若い人なら1日1時間、計1週間くらいで手を動かしながら本書に一通り目を通せるのではないかと思います。

リスト、タプル、セット、辞書あたりがボリューミー

Chapter6のリストからChapter9の辞書まで、このあたりがPythonの特徴でもあるんですね。
データ解析や機械学習をやりやすくするための仕様なんでしょう。

似た概念がつらつらと続くのでちょっと辛くなるかもしれませんが、がんばりましょうというところです。

本書で書いていく、サンプルプログラムのひとつがこちら。 エディタはAtomを使っています。構文をみて自動でインデントしてくれます。(インデント不要なところをキャプチャしているのにあとから気づきました。)
f:id:ebyan:20170904005209j:plain

機械学習にもさらっと触れられます

「Part3 応用:科学から機械学習まで」の中で機械学習(scikit-learn)の教材として利用されている「手書き文字を分類する」、「3種類のアヤメを分類する」、「ボストンの住宅価格を分析する」が紹介されています。
実際にどんなコードを書いて学習させるかがなんとなくわかります。
実際に自分でデータを集めて機械学習させるには、このあと何段階かの壁があるとおもいますが、入り口として過不足なく説明されていると思います。

まとめ

機械学習をやってみたいプログラミング初心者が本書のメインターゲットですね。

他のプログラミング言語経験者だと、Part2はPythonの特徴でもあるインデントでブロック分けをするところとリストや辞書、タプルあたりを押さえたら、Part3に進んでもいいかもしれません。
都度、わからないところがあればもどるという具合です。

以上。

追伸

これは老婆心から書いておきますが、これからプログラミングを学んでIT業界に就職しようという方は、この本から学び始めるのはやめたほうが良いです。
Pythonは主に、機械学習とか統計分析とか科学技術計算をする人が結果を得るための「手段」として学ぶプログラミング言語です。
なんとなくIT業界で働きたいという程度の動機だと、いくら本書が初心者向けとはいえこの言語を学ぶ価値は無いに等しいです。
そういう方は、RubyだとかPHPだとかJavaを学んだほうがツブシがきくと思います。