こんにちは!
GMOリサーチ株式会社の向井と申します。
システム部でプログラマーをしています。
また、社内外問わず、勉強会の開催や運営などを行なっています。
みなさまはstay home期間、何をして過ごされていたでしょうか?
私は特に何もする事が無いので、家で本を読んで過ごしておりました。
特に集中して読んでいたのがプログラミング言語Pythonについての本です。
私自身Python歴は長いのですが、インフラのバッチ処理を作ったり、1モジュールで完結するようなプログラムしか作った事がありませんでした。
そこで、もう少しPythonについての理解を含めたいと思い、Stay homeを機に色々なPythonの書籍を読み漁ってみました。
また、最近社内でPyhton勉強会をしたのですが、そこでオススメのPythonの本があったら教えてほしいとのリクエストがあり。
そんな経緯から今回、ブログにオススメのPythonの書籍をまとめて投稿することにしました。
ということで、この記事では私が最近読んだPythonの本についてまとめていきます。
機会があれば、当記事とは別に個人的に気に入った本について詳しく解説する記事を投稿しますが、本記事では各書籍のコメントは数行程度に抑えておきます。
ちなみに難易度順に並べており、星1つがやさしく、星3つが難しいとしています。
(難易度については、私の個人的な感想ですので、もしご購入される場合は、見本をご確認の上、ご自身に合っているかご確認ください。)
Python独学おすすめ本〜初心者向け〜
まずは初心者向けの本からご紹介していきます!
ゲームセンターあらしと学ぶ プログラミング入門 まんが版こんにちはPython
少年漫画『ゲームセンターあらし』やマイコン漫画『こんにちはマイコン』のすがやみつる先生がPythonをテーマにした書き下ろしの漫画です。
すがやみつる先生の作品は、昔のマイコン少年ならば、ほぼ知ってるのでは?
私のまわりの30後半〜40代の元マイコン少年からは「懐かしさのあまり、購入して読んだ!」との声がちらほらと聞こえてきました。
本書は、漢字に読み仮名がふってあるので、小学校低学年でも読める内容となっています。
なので、小学校低学年のいるご家庭で子供と一緒に読むのにもちょうどいいと思います。
本書の内容を少しだけふれると「フィズバズゲームを作ってみよう!」では、あのFizzBuzz問題をとりあげています。
また、「じゃんけんゲームを作ってみよう!」では、実際に遊べるテキストベースのじゃんけんゲームを作ったり、最後の章ではGUIのスカッシュゲームを実際につくるところまであります。
子供向け漫画といえども、漫画を読みながら実際にプログラムを打ち込みながら手を動かすと実用的なPythonのプログラムが作れるようになること間違いないと思います。
難易度 : ★
独学プログラマー Python言語の基本から仕事のやり方まで
Pythoやプログラミング一般の事、プログラマーの心構えが書かれています。
「ハマったときの助け」や「面接をうける」など、幅広い内容をあつかっています。
プログラマーの哲学書みたいな感じでしょうか。
難易度 : ★★
Python独学おすすめ本〜中級者・上級者向け〜
続いては、中級〜上級者の方にもオススメの書籍です。
Pythonで動かして学ぶ!あたらしい数学の教科書 機械学習・深層学習に必要な基礎知識
オンライン教育プラットフォーム『Udemy』のAI講座の講師が書いたものです。
どちらかといえば、Python自体を学ぶというよりは、Pythonを使って数学、機械学習を学ぶ、といった趣旨になっていました。
Pythonの基礎を他の書籍で学んだあとに読むことをオススメします。
また、「本書で扱う数学の範囲は、AIで有用な分野のみです。」と記載されいますが、
AIで有用な数学を順をおって効率的に学べる書籍です。
今の業務には、第4章の線形代数学が役にたちそうなので、本書を参考に、社内勉強会で発表しようかと思います。
難易度 : ★★
パーフェクト Python [改訂2版]
今年(2020年)の5/23に発売されたばかりの書籍です。
(紙の書籍は6/1発売みたいです。)
技術評論社さんから出版されている、パーフェクト●●というタイトルでいろいろな言語が出ているシリーズのPython版です。
Pythonの文法やエコシステム、言語の哲学や歴史について網羅的に解説してあります。
Python3.8に対応しているだけあって、3.8で入った関数の引数の位置引数の強制についても解説されています。
一通り読んだあとは、辞書的に使おうかと思います。
難易度 : ★★★
Pythonトリック
Python って歴史が長い言語なだけに、暗黙的のルールがあるのですが、それを解説しています。
いわゆるPythonic(Pythonらしい、シンプルで読みやすいコード)の事です。
他の言語からPythonにきた人にオススメです。
難易度 : ★★★
Pythonハッカーガイドブック (Compass Booksシリーズ)
今年(2020年)の5/28に発売されたばかりの書籍です。
早速、一通りパラパラと読んでみたのですが、完全にPython中上級者向けの書籍ですね。
OpenStackのプロジェクトチームリーダーであるJulien Danjouによって書かれた書籍です。
個人的に1番おもしろかったのが「第8章 関数型プログラミング」です。
章のはじめに「関数型プログラミングに真剣に取り組みたい場合はPythonを一休みして、Lispを学ぶことをおすすめします」のような事がかかれています。
Pythonのコードにて「純粋関数を作成する」「ジェネレータ」、「リスト内包」、「関数型の関数を使用する」が解説されています。
他の章では「AST、HY、Lispライクな属性」「パフォーマンスと最適化」が、興味がある事が書かれていました。
じっくりと手を動かしながら読みたい書籍ですね。
難易度 : ★★★
ハイパフォーマンスPython
https://www.oreilly.co.jp/books/9784873117409/
原書は『High Performance Python, 2nd Edition』で、第2版が出てます
High Performance Python, 2nd Edition
http://shop.oreilly.com/product/0636920268505.do
先日、弊社システム部の社内勉強会にてPythonのパフォーマンス改善のLTの発表をしました。
その際に参考にした本が原書『High Performance Python, 2nd Edition』です。
発表時間が短かったので、「2. Profiling to Find Bottlenecks」の要点をかいつまんで発表しました。
それでも、けっこうなボリュームで、時間いっぱいの発表となりました。
あと、注意点としては第1版はPython2対応で、第2版はPython3対応になっています。
基本的な内容は変わっていませんが、日本語版なら第2版を待った方がいいかも。
Pythonのチューニングを扱っている書籍で、本書以上に詳しい書籍はないかも?
難易度 : ★★★
最後に
Pythonの書籍紹介は、以上になります。
みなさまのPythonプログラミングライフの参考になれば幸いです!
*
GMOリサーチでは、WEBエンジニア(サーバーサイド、インフラ、フロントエンド)を随時募集しております。
興味のある方は、ぜひこちらからご応募ください!
詳しい募集要項など採用情報はこちら