Pythonプログラマーにおすすめの本:とりあえずEffective Pythonは読むべし
Pythonプログラマー(中級から上級)におすすめしたい本を5冊紹介します。
私はPython、Go、JavaScript、PHP、SQLをよく使い、たまにJava、C#、Cを使うプログラマーです。サーバー、バックエンド、フロントエンド、データアナリティクス、統計処理、そして機械学習を専門としています。最新プログラミング言語ランキング:時代遅れにならない言語はJavaとPythonで解説したように、今後はPythonが重要なプログラミング言語になりますが、Pythonだけを知っていればいいとは思いません。
ここで紹介する本にはPython以外の専門書もありますが、それはPythonの上級者になるために必要でしょう。
UNIXという考え方
すべてのプログラマーに読んでほしい本を一冊あげるとしたら、「UNIXという考え方」をあげます。作者はベテランのプログラマーで、プログラマーがいつも意識しなければいけない鉄則をいくつか紹介しています。
- 小さなものを作れ
- てこの原理をきかせろ
- 階層的に設計しろ
- 車輪を再発明するな
他にも重要なエッセンスを説いていますが、「小さなものを作れ」と「てこの原理をきかせろ」はプログラマーが持つべき最大の哲学です。
なぜおすすめできるか?
- 読むだけでプログラミングの真髄を理解できる
プログラマが知るべき97のこと
またPythonの本ではありません。この本はプログラミングと設計そのものに関する先輩のアドバイス集です。
つまり寝っ転がって読めます。ベッドのそばに置いて寝る前に読むことをおすすめします。先輩プログラマーというのは、私たちのような中堅プログラマーにとって宝箱のようなものです。先輩は私たちの何倍も失敗を重ねているはずで、私たちはその失敗をあらかじめ知ることで、徒労と無駄な出費を回避できます。
この本は個人とチームが実践するべき法則を紹介しています。結局、PythonだろうがJavaScriptだろうが、中級から上級の階段を上るには哲学者にならないといけません。いいプログラマーというのは、卓越した思想と習慣を持っています。その抽象的な概念を実践しているか否かが、成功の鍵です。
なぜおすすめできるか?
- 先輩の失敗を知ることはなにより重要だから
- 先輩が悟ったことを知れば、より効率よく上級者になれる
Effective Python - Pythonプログラムを改良する59項目
Pythonの本といったらこれです。この本はコードをより自然に、美しくするためのテクニックを紹介しています。PythonにはPython的なコードというものがあります。美しいコードを共有したいという気持ちは、おそらくPythonのプログラマーが一番強いでしょう。この本はチームの連携を強化するための必読書になります。
「rangeよりenumerateにする」といった細かいテクニックですが、知らないと損することがたくさん書かれています。Pythonの本をとりあえず買いたいという人は、まずこの本を本屋で手にとってください。
なぜおすすめできるか?
- 美しいコードが書けるようになる
- チームワークがよくなる
直感 Deep Learning - Python×Kerasでアイデアを形にするレシピ
この本は機械学習をさっさと学習したい人におすすめできます。「数式はいいから、とりあえず動くものを作りたい」という人はこの本をまず買うといいと思います。
実際、この本にあるサンプルコードを書くだけで、文字や画像の認識といった基本はなんとなくマスターできるはずです。機械学習はTensorFlowよりもKerasといった高次元のライブラリを使うほうが、学習効率がよくなります。
なぜおすすめできるか?
- さくっと機械学習を学習できる
- 面倒な数式が少ない
Python機械学習クックブック
機械学習のソフトウェアを実際に作るうえで参考になる本。Pythonというよりは機械学習の中級者が参考にする本かもしれない。テーマが幅広いため、対象になる読者はかなり多そう。
なぜおすすめできるか?
- 機械学習で遭遇する典型的な問題を解くうえで役に立つ
積極的におすすめできないが、Pythonオタクに必要な本
私は毎日Pythonのコードを書いているため、Python3に精通する必要がありました。そこで手にした本が
Fluent Python - Pythonicな思考とコーディング手法
です。三省堂や丸善に行くとPython関係の本がずらっと並んでいますね。そこにある一番分厚い本がこれです。800ページもあります。
Pythonエンジニアはこの本を読む前に「Effective Python」を読むべきでしょう。「Effective Python」で物足りない人、プログラミングの中心がPythonの人、なによりPythonが好きな人はこの分厚い本を買うといいでしょう。
JavaScriptのプログラマーはわかると思いますが、プログラミングにおいて無知は重大な罪です。PythonはJavaScriptと同じように、便利な文法と膨大なライブラリが存在します。無知なプログラマーは、すでに存在する関数を自分の手で作ってしまいます。
PythonとJavaScriptの開発コストの三分の一は、ひょっとしたら車輪の再発明に使われているかもしれません。結局、Pythonのソフトウェア(アプリケーション)の開発コストは、ビジネスロジックに関するものだけに絞られるべきです。他のアプリケーションでも使われそうなモジュールはなるべく作ってはいけません。