【エキスパートPythonプログラミング】Pythonを深く極めるための良書

Python の中級~上級者に非常におすすめできる良書の「エキスパートPythonプログラミング」を紹介します。
目次
エキスパートPythonプログラミング
「エキスパートPythonプログラミング」は、Python の中級から上級の開発者向けの書籍です。Python の文法を一通り学んだ人が一歩先に進むためおすすめです。
本書は、Python のより高度な側面や、より効果的なプログラミング手法といったコーディングのベストプラクティスに焦点を当てており、Python コードとしてよいとされるコードの書き方が紹介されている他、コードのデプロイ、管理、ドキュメント作成、テスト駆動開発、最適化手法等々の幅広い内容をカバーしています。
本記事更新時点では第 4 版まで出ていますが、私は改訂版が出るたびに購入して読んでいます。Python 入門者には難しい内容ですが、実際の開発現場で Python を使いたいという人だけでなく、趣味でプログラミングをしている人にもとても面白い内容です。
この記事では、エキスパート Python プログラミングについて概要やおすすめポイントを紹介します。
目次と概要
「エキスパートPythonプログラミング」のコンテンツとしては以下のような構成となっています。
- 現在のPythonのステータス
- 現代的なPythonの開発環境
- Pythonの新しい要素
- Pythonとほかの言語の比較
- インターフェイス、パターン、モジュール化
- 並行処理
- イベント駆動プログラミング
- メタプログラミングの要素
- PythonとC/C++をつなぐ
- テストと品質保証の自動化
- Pythonパッケージの作成と配布
- アプリケーションの挙動とパフォーマンスの監視
- 最適化
- 付録A 型ヒントの書き方
本書では、前半で Python の現状や開発環境、新しい機能(例えば、構造的パターンマッチなど)の紹介がされます。4 章の「Pythonとほかの言語との比較」では、Python の重要な機能のいくつかを見直しつつ、他の言語との比較をして Python のイディオムについて学ぶことができます。
第 5 章以降では「デザインパターン」「並行処理」「イベント駆動プログラミング」「メタプログラミング」「Python と C/C++ との橋渡し」といった高度な内容について説明があります。
第10章以降は、テスト駆動開発やパッケージ作成・配布、アプリケーション監視や最適化といった高品質なPythonプログラムと保守のために必要な内容が扱われています。
Python の基本をある程度学んだあとに「パフォーマンスがよく」「安定性があり」「保守しやすい」ソースコードを書きたいと思った時に最適な 1 冊と言えます。
後半の章は、より高度な内容のため、初心者には難しく感じるかもしれません。また、前の章が必ずしも前提の知識となっているわけではないため、上から順にではなく興味がある章をピックアップして読むのもおすすめです。
「エキスパートPythonプログラミング」のおすすめポイント
Pythonらしくプログラミングする
Python には「Pythonらしくシンプルで読みやすくコーディンする」という考えがあります。「Pythonicなプログラムコーディング」という記事も参考にしてください。
Python プログラマは、他の言語(例えば C/C++ や Java など)の経験が事前にある人も多いと思います。このように他の言語から移ってきたプログラマの場合、多くの場合は、他の言語でよく知られている方法(イディオム)でコーディングをしてしまいがちです。私も以前は C/C++ や Java 等を経験していた中で Python を学んだため、最初は Python の書き方に慣れないということがありました。
しかし、Python と他の言語は特性が異なるため、Python に他の言語のイディオムを用いると分かりにくくなったり、パフォーマンスが悪化したりすることになります。このことは、本書の第 4 章冒頭でも触れられています。
本書では、Python コミュニティにおける慣行やスタイルガイド等にも準拠して説明があるため、Python らしく記載できるようになるために非常に役立ちます。
高度な内容に触れることができる
「エキスパートPythonプログラミング」では、構造型パターンマッチや型ヒントなどの最近追加された新しい技術についても学ぶことができます。Python は常に進化していっている言語であるため、最新情報に触れる意識を持つことができます。
また、Python はマルチパラダイム言語であり、関数型プログラミングにも対応できます。関数型プログラミングに関連する「ラムダ関数」「ジェネレータ」「デコレータ」の実装方法についてもしっかりと説明がされています。私は、Python を学び始めたときにはこれらの内容がよく分かりませんでしたが、本書を読むことで少しずつ理解を深めることができました。
さらに、上級レベルの高度なトピックスである「デザインパターン」「並行処理」「イベント駆動プログラミング」「メタプログラミング」「Python と C/C++ との橋渡し」といった内容についても説明がされているため、読者はより複雑で洗練されたプログラミング手法について学ぶことができます。
テスト駆動開発やアプリケーション監視、最適化といった品質に関わるような章についても、プログラム開発の際には重要な内容であり、学ぶことに高い価値があります。
「エキスパートPythonプログラミング」の内容を理解することで、初心者から一段階上のステップに進むことができると思います。
初心者の人は基礎を学んでからがおすすめ
上記で紹介した通り「エキスパートPythonプログラミング」は、中級~上級者のPython プログラマにおすすめできる本です。まだ、Python の文法や考え方に慣れていない人が読むのは少しハードルが高いと思います。
Python プログラミングをこれから学びたい人には、まずは以下のような書籍で全体的な文法等をしっかりと理解してから、本書を読み始めることがおすすめです。
私は最初、酒井さんのUdemy講座「現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル」でPythonを学びました。そのUdemy講座が書籍化されている「シリコンバレー一流プログラマーが教える Pythonプロフェッショナル大全」も非常におすすめです。
より広くプログラマーとしての仕事を把握したい場合、文法だけでなくプログラマーの仕事全体にも触れてくれている「独学プログラマー Pythonの基本から仕事のやり方まで」もおすすめです。
まとめ
Python の中級~上級者に非常におすすめな「エキスパートPythonプログラミング」について紹介してきました。
本書では、Python のより高度な側面や、より効果的なプログラミング手法といったコーディングのベストプラクティスに焦点を当てており、Python コードとしてよいとされるコードの書き方が紹介されている他、コードのデプロイ、管理、ドキュメントの作成、テスト駆動開発、最適化手法等の幅広い内容をカバーしています。
入門書を読み終えた後に、Python をより深く理解して、Python 技術者としてステップアップするためにはおすすめな書籍です。私としても折に触れて読み返したいと思っていますし、改訂版が出たらまた購入したいと思っています。
ぜひ皆さんも読んでみていただけたらと思います。




のE資格対策講座を受けてE資格(JDLA-Deep-Learning-for-ENGINEER)を取得.jpg)



