5月14日にPythonの勉強を始めたわけだが、最初に手に取ったのが技術評論社から出ている『Pythonスタートブック(増補改訂版)』という入門書だった。手に取ったと言っても紙ではなくKindleなので実際には手に取っていない。
Pythonに興味を持つしばらく前から、趣味の将棋の方から、東大の博士課程の院生でプロ四段になった谷合廣紀さんが書かれた『Pythonで理解する統計分析の基礎』(これも技術評論社)という本は頭にインプットはされていた。いや、Pythonへの最初の興味が湧いたのはこの時だったかもしれない。今年Pythonを勉強しようと思い立った時に改めてAmazonでこの本を眺め、監修者の辻真吾先生という東大の先生にたどり着いた。そこから辻さんの本は?と探していったら『Pythonスタートブック』に行き着いたという感じだ。
さらに、辻真吾さんで検索してみて、オンラインでPythonを勉強する人たちの集う場で「Start Python Club」という勉強会があることを知ったことも後押しになった。辻先生は「Start Python Club」の中核メンバーだったので、オンラインの勉強会に参加しながらこの本を読んでいけばきっといいことがあるに違いないと思ったのだ。
今振り返って、この本からスタートして良かったと思う。適度にわかりやすく、適度に難しい。それと僕がPythonを学ぶに当たって取ったスタンス、「難しいところを根を詰めてわかろうとしない」ようにしたのが正解だったように思う。例えばこのスタートブックでも、後半のクラスと継承のところで躓いたが、これは他の本で別の角度から見直そうと思ってサラリと読んでやりすごした。おっさんのPython学習ではこういう読み方が正解じゃないだろうか。
さらにこの本で勉強中に、2回ほどオンラインの勉強会に出て、辻先生と一方通行だがコミュニケーションした気にもなった点も大きい。飽きず、諦めず、この本をなんとか読み終えることができた理由の1つだろう。
そこから途中、目に付いた『Excel×Python最速仕事術』『独学プログラマー』(いずれも日経BP社)という、ちょっと変わり種の本に浮気をし、Kindleの無料本(期間限定)で見つけた『Pythonふりがなプログラミング』(インプレス)に巡り会えたのはラッキーだった。というのも、実際、Pythonって何なのよ、ってところが一番手っ取り早く、感覚として理解できるからだ。中身のことを言うと、Pythonで書いたプログラム(コード)に、「ふりがな」が付けられ、ああ、この命令でこういう結果が出て、画面に表示されるわけねっていう意味が、体感的にわかるようになっている。その後、「読み下し文」で解説してくれるので、復習になる。もしかすると、漢文の勉強を思い出すかもしれない。
僕は、何か新しいことを始める時に、何か最初に概念的な説明を受けてもよくわからないことがよくある。でも、実際に手や身体を動かしてやってみると、ああ、こういうことだったのねって感覚的につかめることがけっこうある。これはほとんどの人がそうなんじゃないかと思うけど、そういう傾向の強い人にはとても向いている。英語学習で言うと、対訳本でどんどん英文を見ていって、英文の構造とか言い回しに慣れるみたいな感覚だろうか。少なくとも、文法的な解説から入ると思考が止まってしまう僕のようなタイプにはフィットしているようだ。
ページ数も少なくて、さくさくとすぐに読み終えられる点もいい。これで、Pythonってこういうものなのね、ってことを身体で理解する。身体の中にちょっとだけPython菌を入れて、Python耐性を作っておくようなイメージ。とにかく、Kindleの無料サービス期間にこれを見つけて読めたのはラッキーだった。
その後、試験対策を兼ねて、技術評論社の『Python3 スキルアップ教科書』を読むことにした。辻先生が著者に名を連ねていることもあるし、試験範囲をきちっと網羅してそうだというのも大きな理由だった。結果的にはこの選択も良かった。
実はこの本、最初の方で、Pythonプログラムを学ぶ題材としてフィボナッチ数列やらメルセンヌ数やらが出てきて、数学的な知識がない人にとってとっても敷居が高い。さらに、冒頭の部分で難しいことが書かれていて、何が何だかわからないまま、諦めるって人が多いのではないかというのが感想だ。ただ、僕はわからないところはそのままにして飛ばし読みするというスタンスを取っていたので、多少気にはなったが、なんとか読み進めることができた。それと、本に書かれているコードを自分の環境で実際に書いてみてドリル的に学んでいったことがよかったのかなと考えている。
こういう時には、簡単ですぐわかるコードよりも、少し難しくて考えさせてくれるコードのほうが、理解が深まるんじゃないだろうかと今では思っている。ドリルであり、パズル的なものを楽しむ感覚と言えばいいだろうか。
こうして、試験前々日までになんとかこの本を読み終えて、最後は難しかった部分を一夜漬けして、試験に臨んだ。ギリギリとはいえ結果を出せたのは幸運以外の何ものでもない。実際には合格できるだけの実力は身に付いていないと思うので、その後、復習を兼ねて、『新・明解 Python入門』(SBクリエイティブ)を読んでいる。この、プログラミング言語の学習では超有名な柴田望洋先生の本はさすがにきっちりと厳密でかゆいところに手が届いている感じだ。これでおさらいをしたら、いちおう入門的なところはクリアしたとみなして、次のステップ、Pythonによるデータ分析と機械学習への応用に進む予定でいる。AIまでの道のりはまだまだというか、はるかに遠いと言うべきか。これについてはおいおい書いていく。
ところで、いまから半年ほど前にカレンダーを戻して、もう一度効率的に学び直すとしたらどうするか。これを考えて今回は終わろう。まあ、実のところ、結果良ければ全てよしなので、ここまで書いてきた学び方が僕にとっては一番よかったということなんだが……。それでも、もしこの駄文を読んでPythonを勉強して「Python 3 エンジニア認定基礎試験」を受けてみようと思っている人たちのお役に立てるようにしたい。
そういう人たちにオススメの順番は二通り。
一つ目は、①『Pythonふりがなプログラミング』(インプレス)→②『Pythonスタートブック(増補改訂版)』(技術評論社)→③『Python3 スキルアップ教科書』(技術評論社)だろう。これは、難しいところは後回しにする読み方ができる人向け。
もう一つは、文法的なところをしっかり学び、きちっきちっと押さえていきたい人向けで、①『Pythonふりがなプログラミング』(インプレス)→②『新・明解 Python入門』(SBクリエイティブ)→③『Python3 スキルアップ教科書』(技術評論社)の順番だろうか。
いずれにしても『Pythonふりがなプログラミング』から入ることを勧めたい。この続編も出ているので、それもいいかもしれない。
本による学習に加えて、「Start Python Club」のようなオンラインの会合、ネットでの検索、正式なオンライン文書である「Pythonチュートリアル」を適宜組み合わせて学んでいくと、楽しく飽きずに学習できると思う。
(次回は次のステップ、Python応用の海への船出をどうするかについて書きたい。下は年内に読みたいPythonと統計分析の1冊)