中級者・上級者向けのPython書籍の紹介
中級者・上級者向けのPython書籍をご紹介します。
入門 Python3
入門という名前がついていますが、一度目を通して欲しい書籍です。
特に、中級者レベルになったばかりの人には是非、この本を通して幅広い分野の知識を得て欲しいと思います。
前半部分はPythonの言語仕様などの初学者向けの内容ですが、後半からは中級者にとっても有意義な内容が多いでしょう。
ウェブについて、WWW(ワールドワイドウェブ)の成り立ちについてや、Telnetを使ったHTTPでのやり取りをはじめ、
GIL(グローバルインタプリタロック)についての説明や、I/Oバウンド・CPUバウンドといった並行処理での基本的な考え方、
「お化け屋敷を調査する超常現象研究科」に例えたマルチスレッドとマルチプロセスの解説などがあります。
また、HTTPだけでなくTCP/IPについての解説や、socketモジュールを使用した低水準でのデータのやり取りについても触れられており、
わかりやすいサンプルコードも載っています。
原文がユーモア溢れる文章なためか少々翻訳に苦労されてるように感じましたが、読んでいて飽きない作りになっています。
実践 Python3
2014年Joltアワード受賞書の、邦訳です。
Python上級者の方にもお勧めできる内容となっております。
内容としては「デザインパターン」から始まり、「並行処理」、「Cython」、「ネットワーク処理」、「グラフィックス」といった高度な内容になっています。
デザインパターンは有名なGoFのデザインパターンをPython流に書くという内容で、「生成に関するパターン」「構造に関するパターン」「振る舞いに関するパターン」と順番にサンプルコードを用いながら解説していきます。
Pythonでのデザインパターンについて詳しく書かれた本は少ない為、その点で少し注目を浴びているように思えますが、この本はデザインパターンの入門書ではないことに気をつけましょう。
既にデザインパターンについてある程度知っている人間に対しての解説で、そのデザインパターンはそもそもどういった内容か、といったことに関してそこまで深くは書かれていません。
また、サンプルコードはかなり実践的ですが難易度も高く、人によってはコードの内容を理解するのに時間を要するでしょう。
勉強会等でこの書籍を使いデザインパターンを学ぶ方達は、上記の点に留意していただければと思います。
既にデザインパターンを他言語で学んだ方にとっては、非常に有意義な内容になると思います。
他の項目に関してもまさに「実践」といった内容で、特に並行処理に関しては、他の日本語書籍とは一線を画す内容となっています。
Effective Python
Pythonエンジニアが待ちに待った、Effectiveシリーズ待望のPythonバージョンです。
59の項目に分かれており、書籍では「ランダムアクセスが可能」と紹介されています。
興味のある部分だけを読んでいく、といったことが可能で、時間の取れない方にもお勧めです。
この本にはベストプラクティクスや避けるべきコードなどが載っており、Pythonでの「最良」と言えるような思考、コードが身につきます。
各項目の最後には「覚えておくこと」としてポイントが記載されており、便利です。
Pythonプロフェッショナルプログラミング
帯に「PythonによるWeb開発の最新手法」と書かれていましたが、正にその通りの内容となっています。
他の書籍との大きな違いはプロジェクトやチームでの開発を強く意識した本であることです。
プロジェクト管理ソフトのRedmineの使い方や、ドキュメントやテスト、CI(継続的インテグレーション)、デプロイの自動化、パフォーマンスの改善などにも触れられています。
会社でPythonでのWeb開発に取り組むならば、ぜひこの本をお勧めします。
また、洋書の邦訳ではなく純国産であり、邦訳によくある「日本語に違和感を感じる」といったことがないのも助かります。
パーフェクトPython
書籍の構成はPythonの特徴・成り立ちから始まり、言語仕様、実践的な開発、適用範囲となっています。
特にWeb、学術・分析、マルチメディア、ネットワークといった幅広い分野についても取り上げており、サンプルコードや解説も豊富です。
こちらも純国産書籍で、文章も非常にわかりやすいでしょう、
Pythonプログラマとしての技術の範囲が広がるような、そんな書籍です。
エキスパートPythonプログラミング
この本は当初「ベストプラクティクスPython」という書籍名で売り出すことを考えられていた、という経緯があります。
通常のループに比べてリスト内包表記が早い具体的な理由や、インナー関数(関数の中の関数)には「inner」のような関数名をつけない、デコレータをAPIとして提供する場合は1つのモジュール内にまとめよう、といったベストプラクティクスを学べる本です。
名前の付け方一つとっても有意義な内容ですが、2016年現在では少し古く感じてしまう点も否めません。
それでも一度は目を通す価値のある書籍です。