Pythonの学習におすすめの本を紹介します。また、Python関連以外にも役に立つおすすめ書籍についても取り上げます。各書籍の概要について私の見解を交えながら紹介していきます。Pythonの学習を始める際の参考にしていただければと思います。
Python入門におすすめの本
Pythonの基本となる文法やプログラミングの考え方等を学ぶための入門書籍としておすすめの本を紹介します。個人的なおすすめ順で紹介します。
シリコンバレー一流プログラマーが教える Pythonプロフェッショナル大全
Pythonの学習をこれから始める方におすすめの入門書として「シリコンバレー一流プログラマーが教える Pythonプロフェッショナル大全」を紹介します。
著者の酒井潤さんは、シリコンバレーでエンジニアとして活躍されている方です。この本は、Udemyのベストセラー講座「現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル」をもとに充実させた内容で発売されました。私は最初、このUdemy講座でPythonを学びました。
この書籍は入門編と応用編に分かれており、Pythonにおける重要な文法を十分に学ぶことができます。なお、Udemy講座に含まれるデータベースやテスト、非同期処理などは含まれていません。それらの項目を学びたい方はUdemy講座の受講も検討してください。
プログラミング学習において最初は上手な人のコードを真似することが重要です。シリコンバレーの現役エンジニアの酒井さんのコードは非常によいお手本となると思います。
本書のレビュー記事はこちら:「【シリコンバレー一流プログラマーが教える Pythonプロフェッショナル大全】Pythonの勉強におすすめの良書」
Udemyはセールを頻繁に行っています。セール中は通常数万円する講座が書籍1冊分ぐらいの値段まで下がることが多いため、タイミングをみて購入するのがおすすめです。
独学プログラマー Python言語の基本から仕事のやり方まで
Pythonの文法だけでなく、プログラマーとしての仕事の全体像やチーム開発についてもあわせて学びたい方には「独学プログラマー Python言語の基本から仕事のやり方まで」がおすすめです。
この書籍では、Pythonの文法の基本から、オブジェクト指向プログラミングの概念、Bashの使用方法、GitおよびGitHubを用いたバージョン管理など、実際に仕事でプログラミングをする際に役立つ知識を幅広く学ぶことができます。
本書のレビュー記事はこちら:【独学プログラマー Python言語の基本から仕事のやり方まで】Pythonの基本だけでなく幅広くプログラマーの知識を学べる良書
独習Python
サンプルコード、例題、練習問題が豊富に掲載されており、読みやすい入門書としては「独習Python」がおすすめです。
この書籍はプログラミングの書籍として有名な独習シリーズのPython版です。Pythonの基本的な文法を学ぶには十分な内容となっています。
入門Python3
「入門Python3」は、Python 技術の広範囲な文法をカバーしており、情報量が豊富な本です。複素数に関する情報など、他の書籍ではあまり取り上げられないトピックも扱っています。
C/C++やJavaなど他の言語での経験があり、プログラミングに関する基本的な知識がある人には、豊富な情報源として役立つと思います。
Python応用におすすめの本
Python応用編としておすすめの本を紹介します。
エキスパートPythonプログラミング
Pythonのプログラミングの文法の基本を理解し、より良いソースコードを書きたいと考え始めた際には「エキスパートPythonプログラミング」がおすすめです。
この書籍では、優れたPythonコードを書くためのベストプラクティスが紹介されています。並行処理、イベント駆動プログラミング、メタプログラミング、拡張モジュール、テスト駆動開発、パッケージ配布、最適化など、幅広い内容をカバーしており読みごたえがあります。
Pythonの上級向けの概念や最新機能を学びたいエキスパート向けの内容であるため、Python入門者がいきなり読み始めるには難しいと思いますが、実際の開発現場の人だけでなく、趣味でプログラミングを楽しむ人にも興味深い内容となっています。
本書のレビュー記事はこちら:【エキスパートPythonプログラミング】Pythonを深く極めるための良書
Pythonによるデータ分析におすすめの本
Pythonは、多岐にわたる分野で使用できる言語ですが、機械学習を含むデータ分析領域はその代表例です。Pythonを用いたデータ分析を学ぶのにおすすめの本を紹介します。
Pythonデータサイエンスハンドブック
Pythonでは、データサイエンスを扱うための様々なライブラリとして「Jupyter」「NumPy」「pandas」「Matplotlib」「scikit-learn」が有名です。これらのライブラリを学ぶための書籍としては「Pythonデータサイエンスハンドブック」がおすすめです。
Pythonの文法は理解していることが前提のため、Pythonの基本を知らない人は先に紹介したような入門書で学んでからにするのが良いでしょう。また、ディープラーニングの領域は含まないため、ディープラーニングについては後述する書籍を参考にしてください。
本書のレビュー記事はこちら:【Pythonデータサイエンスハンドブック】Jupyter, Numpy, pandas, Matplotlib, scikit-learnの学習に最適な良書
Pythonによるディープラーニング
ディープラーニング実装では、ディープラーニングフレームワークの使い方を学ぶのが効果的です。ディープラーニングのフレームワークとしては、TensorFlowやPyTorchが特に有名です。
TensorFlowに関する書籍としては「Pythonによるディープラーニング」が非常におすすめです。この書籍は、中級~上級者向けの内容を扱っています。TensorFlowや、その高水準APIであるKerasの各種APIの使い方の詳細まで記載されており、本質を理解するのに役立ちます。
CNN(畳み込みニューラルネットワーク)、RNN(再帰的ニューラルネットワーク)、Transformer、GAN(敵対的生成ネットワーク)といった高度なトピックも取り上げられています。E資格(JDLA Deep Learning for ENGINEER)の資格取得をしたい人の参考書籍としても役立ちます。
本書のレビュー記事はこちら:【Pythonによるディープラーニング】TensorFlow/Kerasによるディープラーニング実装力を向上させる
E資格取得時の体験記事はこちら:アイデミー(Aidemy)のE資格対策講座を受けてE資格(JDLA Deep Learning for ENGINEER)を取得
scikit-learn、Keras、TensorFlowによる実践機械学習
先に紹介した「Pythonによるディープラーニング」では、TensorFlowを中心の書籍となっています。機械学習ライブラリであるscikit-learnも含めて幅広く機械学習、ディープラーニングを学びたい人には「scikit-learn、Keras、TensorFlowによる実践機械学習」もおすすめです。
ゼロから作るDeep Learningシリーズ
ディープラーニングでは、TensorFlowやPyTorchといったフレームワークを使用することが一般的です。しかし、その理論的な背景を深く理解したい場合には「ゼロから作るDeep Learning」シリーズがおすすめです。
書籍名 | 主に扱う内容 |
---|---|
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装 | ディープラーニングの基礎となるニューラルネットワークについて、基本となるパーセプトロンから段階的に実装し、理解を深めます。 |
ゼロから作るDeep Learning 2 ―自然言語処理 | RNN、Attentionといった自然言語処理に関連する技術を中心に扱います。 |
ゼロから作るDeep Learning 3 ―フレームワーク編 | ディープラーニングフレームワークの基礎から自分で最小限のフレームワークを実装することで理解を深めていきます。 |
ゼロから作るDeep Learning 4 ―強化学習編 | 強化学習を中心に扱います。 |
私がE資格(JDLA Deep Learning for ENGINEER)を取得した際には、コード穴埋め問題に、これら書籍の内容に似た問題が多く取り上げられていました。E資格の取得を目指す方にも参考書としておすすめです。
Python公式ドキュメント
Python書籍について紹介してきましたが、最新のPythonの情報を取得するために公式ドキュメントは重要です。Python安定版の最新ドキュメントは「Python3 ドキュメント」を参照してください。
また、Python標準ライブラリのページでは、Pythonの標準ライブラリーの使い方が記載されています。標準ライブラリは、Pythonプログラミングの中心のため、使い方に困ったらまずはドキュメントを確認するようにしましょう。
その他おすすめの本
Python関連書籍を紹介してきましたが、優秀なエンジニアになるためには幅広く知識を深めていく必要があります。参考になる書籍を紹介しますので興味があれば、ぜひ読んでみてください。
オブジェクト指向でなぜつくるのか
Pythonはオブジェクト指向プログラミングに対応したマルチパラダイム言語です。オブジェクト指向の基本を学びたい方には「オブジェクト指向でなぜ作るのか」をおすすめします。
Pythonは、int
やstr
といった型を無意識に使用していますが、これらもクラスとして定義されています。オブジェクト指向は、初心者に理解しづらいとよく言われます。本書ではオブジェクト指向がなぜ理解しづらいのか、その点も含めて詳しく説明されています。
オブジェクト指向を既に理解している方も、自分の知識の再確認に読んでみていただけると良いかと思います。
達人に学ぶDB設計 徹底指南書/達人に学ぶSQL 徹底指南書
Pythonを学んでいる方にはデータ分析に興味を持っている方も多いでしょう。企業では多くのデータをリレーショナルデータベース(RDB)で管理されています。そのため、DB設計の考え方やSQLについて理解しておくことは役に立ちます。
これらの技術の理解には「達人に学ぶDB設計徹底指南書」や「達人に学ぶSQL徹底指南書」がおすすめです。
「達人に学ぶDB設計 徹底指南書」では、正規化やER図の説明に加え、DB設計の重要なポイントを理解できます。また、「達人に学ぶSQL 徹底指南書」は、中級者向けのSQLプログラミング入門と位置付けられており、効率的なデータ抽出の方法を理解するうえで役立ちます。
「達人に学ぶDB設計 徹底指南書」のレビュー記事はこちら:DB設計時のポイント ~達人に学ぶDB設計 徹底指南書を参考に~
DXを成功に導くデータマネジメント/マスタデータマネジメント
Python技術力がいても、データ分析・活用が企業で進まないということはよくあります。
例えば「必要な情報がすぐ手に入らない」「データ加工にすごく時間がかかる」「組織間、システム間でデータの意味が統一されていない」「データモデリングの考え方に統制が取れていない」などのようなことです。これらに対応するためには、データガバナンスやデータマネジメントについて学び、組織化やルール化をしていくことが重要です。
これらの考え方や実践方法を学ぶには、データ総研から出版されている「DXを成功に導くデータマネジメント データ資産価値向上と問題解決のための実務プロセス75」や「DXを成功に導くマスターデータマネジメント データ資産を管理する実践的な知識とプロセス43」がおすすめです。
データマネジメント知識体系ガイド
データマネジメントについて語る上で重要なもののがデータマネジメント知識体系ガイドです。
これはDMBOK(Data Management Body of Knowledge)と呼ばれており、第二版まで発行されていることからDMBOK2と呼ばれます。データマネジメントに関わる実務者にとってバイブルのような存在となっています。
この書籍では、データマネジメントに関する幅広い知識領域について体系立ててまとめた書籍となっています。全17章で非常にページ数の多い書籍なので手元に置いて興味のある章を深堀して読むというのがいいと思います。各章イントロダクションを読むだけでも非常に勉強になります。