2 ポイント 投稿者 GN⁺ 2024-02-17 | 1件のコメント | WhatsAppで共有
  • プログラミングを初めて学ぶ人や、以前の学習でつまずいた人向けの Python 入門書で、第3版の紙版と電子書籍を注文できる
  • 書籍全体が Jupyter ノートブック形式になっており、テキストの読解、コード実行、練習問題への取り組みを一連の流れで進められる
  • 各章のノートブックは Colab でそのまま実行でき、別途インストールせずに学習を始めやすい
  • 第3版では本文の改訂、一部の章順の調整、練習問題の拡充により、学習の流れを再整理している
  • 各章末の ChatGPT と Colab AI の活用提案は、行き詰まった箇所で追加説明や練習問題の助けを得る補助手段として使える

初学者のための Python 入門書

  • Think Python は、プログラミングに初めて触れる人、または以前に試したものの難しさを感じた人向けの Python 入門書
  • 第3版の紙版と電子書籍は Bookshop.orgAmazon で注文できる
  • Green Tea Press の書籍ランディングページは Think Python 3rd Edition で確認できる
  • 第3版は書籍全体を Jupyter ノートブックとして構成し、テキスト、実行可能なコード、練習問題を一か所で扱う
    • ノートブックは Colab で実行できるため、インストールの負担が減る
    • 本文がかなり改訂され、一部の章順が入れ替えられた
    • 練習問題が増えた
    • 各章末には、ChatGPT と Colab AI を学習や練習問題の解答に活用する方法が含まれている

Colab ノートブックと授業活用資料

1件のコメント

 
GN⁺ 2024-02-17
Hacker News の意見
  • このニュースは本当にうれしい。Jupyter Notebook で Practical Deep Learning for Coders を出したとき、Allen と、彼のいくつかの本も同じ方式で作ろうという話をしていた
    今それが実際に進んでいて、さらに良いことに、ノートブック内でインラインのグラフィックを表示する Jupyter ベースの turtle のようなすばらしいツールまで加わっている
    リリースされれば、Python プログラミングを学ぶ最高の方法になる可能性が高いと思う
    以前、この本の第2版の一部を nbdev ノートブックに変換する概念実証を見せたことも覚えている: https://github.com/fastai/nbdev_cards/blob/master/01_deck.ip...
    そのノートブックはこの HTML としてレンダリングされる: https://fastai.github.io/nbdev_cards/deck.html

    • Think Bayes と Think Stats は本当に好きだったが、ほかのみんながノートブックを使っているときには少しズレている感じがあった
      AdventOfCode のようなもので新しい言語を学ぶとき、最初の作業はいつもその言語用の Jupyter イメージを作ること
    • こういう隠せるコードはドキュメント化にとても良さそう。しばらくこういうものを探していた
  • Think Python 第2版は自分の人生の方向を変えた。Java の授業を一つ受けてあまりに嫌になり、プログラミングを諦めていたが、数年後ネットワークエンジニアとして働いているときに、スクリプトで解けそうな問題が出てきて、Think Python を手に取った後、Python とプログラミングそのものにのめり込むようになった

    • まさに今読むべき内容だった
      自分の人生の方向をコミュニティ/メイカー/教師の役割のほうへ変えることを考えていて、教える仕事のためのフリーランス/小規模ビジネスのアイデアがあるのだが、「ゆるいカリキュラム」の資料が必要
      プロの Web 開発者として働く中で Python が必要だったことがなく、今学んでいるところ。Perl と Ruby を含め、Web 中心の言語はほぼすべて使ってきた
      Python は一般的な概念を教えるのに適した言語に見えるし、参考にできる本があると助かりそう
    • 反例として、bash/Perl から始めて Python に移り、最初は本当に良かったが、動的型付けのせいで問題が起き始めた
      その頃、チームの主言語が Java に決まり、静的型付けの利点を見てからは戻れなくなった
      その後 Python もオプションの型サポートと、それを強制してくれる IDE のおかげでかなり進歩したが、今では静的型付け言語のほうに完全に偏っている
      ユーティリティスクリプトを書くときは、bash だけを使うよりずっと洗練された Python が今でも好き。ただし完成品のアプリケーションに使う言語を選べるなら Java/Scala などを好む。Rust もすばらしいが、普通の人の大半にとって学習曲線が急すぎる
      PyCharm のようなツールがサポートする Python のオプション型付けを自分で使ったことはないので、ツールのおかげで静的型付け言語に近い体験になっている可能性はある。IntelliJ Community Edition で Python の型強制を有効にして使ったことがある人がいれば、経験を聞きたい
    • 自分も似たようなものだった。Java、Matlab、C、Perl を少しずつ学んだが、Think Python 第2版を読んでようやく完全に引き込まれ、その後いくつもの本を読みながらソフトウェアのキャリアへ転向した
    • 自分もそうだった。街を移って仕事を探している最中にこの本を印刷し、章ごとに読み始め、この本のおかげでソフトウェアエンジニアになった
    • C++ の授業、Java の授業などを経ても理解できなかったオブジェクト指向プログラミングを、Think Python のおかげで初めてきちんと理解できた
  • Think Python が好きで、多くの学習者に薦めてきた。新しいプログラマー向けの本が気を配るべきさまざまな要素のバランスを本当にうまく取っている
    Allen Downey は似たアプローチのほかの本もいくつも出している: https://greenteapress.com/wp/
    一部は厳密さを下げる方向に少し行き過ぎていると思うが、自分が見た本は全体としてかなり良かった
    以前カンファレンスで Allen と同じテーブルになったことがあり、彼の本をどれほど頻繁に薦めたり買ってあげたりしているかを話したら、彼は大げさに言っていると思ったようだった

    • 友人の息子が大学の最終学年で、自分が薦めた Olin に行くかもしれない。Olin を知ったのも Think Python のおかげだった
  • 少し話題を変えて申し訳ないが、実務経験はすでにあり、仕事をしながら積んでいるとして、中級/上級 Python 開発者向けに同じくらい質の高い資料はあるだろうか?
    言語や標準ライブラリの中に、自分の知らない大きな塊がいつもあるように感じる

    • Python 1.5.2 の頃に公式ドキュメントで学び始めたが、今でも良い資料だと思う
      https://docs.python.org/3/tutorial/index.html
      https://docs.python.org/3/library/index.html
      新しいバージョンが出るたびに What’s New ドキュメントを読む
      それ以外では、標準ライブラリや人気のあるサードパーティパッケージのソースコードを読むのが好き。この助言は Python だけでなく、新しい言語を学ぶときや学び直すときにもおおむね当てはまる
    • Effective Python が良かった。ユースケースと適用例が付いたおすすめが載っているTips 形式の本
    • Fluent Python はそのレベルに良い本で、仕事中のリファレンスとして使うにも良い
    • https://effectivepython.com/ が好き
      それに Norvig の毎年の Advent of Code 実装を読むだけでも、エレガントで簡潔な Python コードを書く方法について洞察を得ることが多い
    • Fluent Python と Effective Python は良い本。前者は非常に分厚く、実質的に複数冊が一冊に入った本に近い
  • 著者は最新の Python プロジェクト、主にベイズデータ分析の作業を https://www.allendowney.com/blog/ にブログ投稿していて、かなり面白く読んでいる

  • Python の中級から上級プログラミング向けの本には何があるだろうか? Python とプログラミング一般はすでに知っているが、Python の実力をさらに伸ばしたい
    今読んでいる Fluent Python と CPython Internals くらいしか知らない

    • 実際の実用コードで手法がどう適用されるかを示す本を検討してもよい
      たとえば Effective Pandas 2 は、表形式データを扱う一般的なパターンを示している。その過程で内包表記、ラムダ、アンパックなどを使い、pytest でリファクタリングする方法や、データを理解するための可視化の活用も見せている
      ちなみに私が著者です
    • Fluent Python で十分。残りの言語機能は公式リファレンスマニュアルを読めば理解できるようになる
    • より一般的なアルゴリズムとデータ構造の本や、設計関連の本も読める
      https://www.redblobgames.com/ にも、とても機知に富んだ記事が多い
    • Cristina Videira Lopes の Exercises in Programming Style 第2版も見てみる価値がある
      あまり知られていないが、異なる制約のもとで同じ問題を解く複数のプログラミングスタイルを探究する本だ
    • 結局はドキュメントとソースコードでは?
      ある程度の熟練度、つまり基本的な実務者レベルを超えると、残るのはコードを読んで書くことだけだ
  • 関連記事:
    Think Python 2e - https://news.ycombinator.com/item?id=35421096 - 2023年4月、コメント30件
    Think Python: How to Think Like a Computer Scientist - https://news.ycombinator.com/item?id=1586000 - 2010年8月、コメント9件

  • 運がいい。ちょうど Python のメンタリングを始めたところで、私は Downey の大ファンだ。本当に優れた教育者であり、ルネサンス的な人物
    この本は必ずチェックするつもりだ

  • 私もプログラミングを初めて学んだとき、この本で人生が変わった。キャリア転換というより、本の書かれ方といくつかの概念が、完全な初心者だった私に突然理解できるようにしてくれたことが大きかった
    今、10〜15年後に第3版を見ると強い懐かしさを感じるし、この本はいくら薦めても足りない

  • 以前の版の Think Java では、特にこの一節が好きだった: https://files.catbox.moe/v1vgdc.jpg
    もう一つ素晴らしい部分はこれだ:

    次に起こったことが素晴らしい部分だ。バージニア州の高校教師 Jeff Elkner が私の本 [Think Java] を採用し、Python に翻訳した。彼は翻訳版を送ってくれ、私は自分の本を読みながら Python を学ぶという珍しい経験をした。