Python 入門書の比較

Dec 4, 2020 12:00 · 311 words · 2 minute read

妻が最近「Python を勉強したい。日本語の Python 入門書を推薦してくれ」と言う。

生物学分野の研究者である妻は R でグラフのプロットしたり画像処理解析ソフト ImageJ のマクロは書ける。プログラミングが全くできないわけではない。直近で解決したい問題があるわけではないが、時間に余裕のある今のうちに、もう少し汎用的な言語である Python を勉強したいとのこと。将来的な用途を想像すると、統計学的な解析、画像処理、機械学習、繰り返し作業の自動化あたりか?

大学のプログラミング入門講義では何を教えているか?

まず大学の Python を使ったプログラミング入門講義でどのような内容を教えているか調べた。大学の講義内容はアカデミア向けに十回前後の授業時間で効果があるように内容がよく練られており、今回のケースでは参考になりそうだからだ。2020年、東大は全学向けに「Pythonプログラミング入門」という講義を開いていて、シラバスを見ると悪くなさそうに見える。

https://catalog.he.u-tokyo.ac.jp/detail?code=0590102-1&year=2020

  • 第1回 Jupyter Notebookの使い方 数値演算 変数と関数の基礎 論理・比較演算と条件分岐の基礎 デバッグ
  • 第2回 文字列 リスト 条件分岐
  • 第3回 辞書 繰り返し 関数
  • 第4回 ファイル入出力の基本 イテレータ コンピュータにおけるファイルやディレクトリの配置
  • 第5回 モジュールの使い方 モジュールの作り方 NumPyライブラリ
  • 第6回 内包表記 高階関数 クラス
  • 第7回 pandasライブラリ scikit-learnライブラリ ミニプロジェクト

講義内容や資料(HTML版 | PDF版) も公開されている。これで勉強してもいいと思う。

候補探し

個人的に numpy, pandas, scikit-learn などのデータ分析ライブラリは今回選ぶ入門書で扱ってなくても良いと思ったので、上記の講義第1-6回の内容がおおよそ網羅されている本を探す。

amazon.co.jp で「Python 入門」の検索結果を中心に、2015年以降に発行、日本語、電子書籍がある入門書から良さそうなものを選んだ。目次とサンプルページから判断する。環境構築の説明が丁寧でなかったり、2020年時点ではベストプラクティスではないものもあるが、そこは適宜教えてあげればいいので選定の観点から外した。

よさげ

新・明解Python入門

大学の教科書っぽい

最短距離でゼロからしっかり学ぶ Python入門 必修編 〜プログラミングの基礎からエラー処理、テストコードの書き方まで

英語の技術書のノリ・言い回し・翻訳が嫌いでなければ

みんなのPython 第4版

今回の目的には合わない

Python言語によるプログラミングイントロダクション第2版

Python で計算機科学入門する本。MIT の講義2学期分に基づくらしい。

いちばんやさしいPythonの教本 人気講師が教える基礎からサーバサイド開発まで

サンプルページを見る限り説明の仕方は嫌いではない。アプリケーションエンジニアになりたい人向けか。

入門 Python 3

少し古い。プログラミング初学者には重い。

Python実践入門 ── 言語の力を引き出し、開発効率を高める

特殊メソッド、ジェネレータ、デコレータ、コンテキストマネージャ、デスクリプタ、asyncio、 concurrent、CI を含む。硬派な印象。他の言語でプログラミングができる人向け。

独学プログラマー Python言語の基本から仕事のやり方まで

言語の説明以外に、アルゴリズムとデータ構造、Git、就職などについても書かれている。0から独学でソフトウェア開発者になりたい人向けか。

医療AIとディープラーニングシリーズ Pythonによる医用画像処理入門

画像処理、医用画像フォーマットの扱い、機械学習の入門。最低限のプログラミング基礎も扱ってはいるようだ。硬い。

かんたんすぎる

turtle や簡単なゲームプログラムなどの例が多かったり、説明が冗長に感じたもの。初めてのプログラミングなどにはいいかもしれないが、今回は変数や制御構文の基本は分かっているので候補から外した。

スラスラ読める Pythonふりがなプログラミング

スッキリわかるPython入門

スラスラわかるPython

Pythonスタートブック [増補改訂版]

Python 1年生 体験してわかる!会話でまなべる!プログラミングのしくみ

いちばんやさしい Python 入門教室