『独習Python入門』を献本頂きました

著者の ござ先輩(id:gothedistance) こと湯本さんからご献本頂きました。
手配してくださった、また編集担当の技術評論社の池本さんありがとうございます。

本日2016/8/5が記念すべき出版日です。(紹介記事ギリギリ間に合った)

『独習Python入門』

書籍のタイトルどおり、プログラミング言語Python(以下、Python)を使った書籍。

f:id:rokujyouhitoma:20160805235641j:plain:w300

まとめ

各章の紹介はあとにして、まとめを先に。

  • よい書籍。説明丁寧でわかりやすい。
  • 僕自身が中学生、高校生時代に欲しかった。内容は職業プログラマーで経験値そこそこ積んだ僕には入門すぎるので適してない。
  • ゆえに、中学校、高校に置かれたらいいなー。自治体の図書館とかにも適してると思う。
  • プログラミングの一般教養として一冊目に読むのはあり。大学で一般教養科目としてプログラミング言語のコースを今時取るのですが、その前の一冊として読むのもあり。
  • IPAが行っている国家資格のITパスポート持ってるくらいの人はこのレベルは知っててほしいところ。
  • 5年ごとに改丁版出せるぐらい、ロングセラーになるとよいな。(時事扱ってるのもあるからそのあたりの更新は楽しみ)
  • 息子が4歳なのだけど、将来、彼が大きくなったら、一冊目にはこの本よさそう。

gihyo.jp

目次

  • 第1章 はじめてのプログラミング
  • 第2章 条件で分ける方法(分岐の基礎文法)
  • 第3章 繰り返しさせる方法(反復の基礎文法)
  • 第4章 関数を使ってみよう!
  • 第5章 いろいろな型を学ぼう
  • 第6章 エラーと例外を使いこなす
  • 第7章 オブジェクトとクラスとは何か?
  • 第8章 自分が書いたログラムをテストする
  • 第9章 明日から使えるWebプログラミング
  • 第10章 Webアプリケーションことはじめ
  • 第11章 今後の学習に向けて

各章にコメント

1章

導入部分として、プログラムとは何か?Pythonは何か?をさっくり説明。
Pythonの開発環境を整えずために図解とともに手順しめすのもこの章。

四則演算、変数、演算子文字コード、型に関する説明や、プログラムコードのネーミングスタイル(ネーミングルール)の説明。

2章

2章では、冒頭から開発環境の構築。Atomというプログラマーでは大変有名なgithub.comというサービスを運営する会社が無償で配布しているテキストエディタを図解ととともに導入手順を示している。

その後この章で一番伝えたいであろう、条件分岐(もし〜だったら、何をさせる)について解説。
論理演算子(and, or, not)やプログラミング言語

合わせて、コンピュータの基本的な機能のお話。具体的にはディレクトリとは何か?どのように操作するのか?を簡単に解説。

Pythonのエラーにや、多くのプログラミング言語で存在する予約語についてもこの章で触れる。

練習問題としてはFizzBuzzというGoogleで検索すると、よくお目見えする問題と、体重/身長^2で算出できるBMI値の求め方。

3章

3章では、反復処理について、配列というデータ構造とともに説明していくのが中心。
ソースコードにメモ書きを残すコメントという機能についてもこの章で解説。

4章

4章では、多くのプログラミング言語で提供されている関数という機能の紹介。
Pythonが標準でもっている標準関数の幾つかに触れた後、プログラミングする人が自分で定義できるユーザー定義関数について解説されています。
また、ライブラリの読み込み・呼び出しもこの章で解説。

練習問題は、世界のナベアツに関してでアホだなー。

Note: すっごい細かいこというと4-6 "ほかの関数を使う(import)"は若干ミスリードタイトルで、importは関数ではなく、文(Statement)かなー。
6. 単純文 (simple statement) — Python 2.7.x ドキュメント

5章

5章では、Pythonにおけるデータ型について説明。具体的には辞書型(Dictionary), タプル型(tuple), 集合型(set), None。

関数のキーワード可変長引数も混ぜ込まれてる。

6章

この章では、Pythonにおけるエラー・例外処理とは何かを紹介。

Note: 例示されているTypeErrorは構文エラーかどうか...実行時エラーではなかろうか...。

合わせて、ファイルへのデータの読み書きを解説。ファイル読み書きは例外処理する典型例でもあるので解説。

7章

7章では、概念的なお話。オブジェクトとは何か、何をどう捉えるのかというお話。
Pythonにおいて、どのようにプログラムで表すのかを解説。

この章の練習問題はいままでと違って、若干ボリュームがあるけど、プログラムの設計について著者からの助言を読めるので、読み飛ばさず読むことをおすすめ。

Note: すごい。実測値かしらないけど、著者の身長、体重載ってておもろい。

8章

8章では、テスト。
書いたプログラムはかならず意図した動きをするのかテスト・検証する必要があり、その解説。

プログラムに対しては、Pythonには標準ライブラリにunittestというライブラリが搭載されているので、そのライブラリを使っての解説となる。

9章

この章では、Webシステムの基本を抑える解説。
HTML, CSSをさらっと紹介し、サイトにスクレイピングという手法で情報(データ)を集める流れを紹介する。

Note: 僕自身は過去に検索エンジンの会社でクローラー関連も携わってたから倫理・道徳観が養われているわけだが、むやみなスクレイピング。ダメ・ゼッタイ。という記載が欲しかったところ。

10章

10章では、Pythonを使って簡単なWebアプリケーションを作って学ぶ。

11章

11章は、最後の章で、今までの振り返りと、今後の学習方法の提案をさらっと。

困ったら、ござ先輩に問い合わせるでいいと思う。編集者にではなく、著者のござ先輩へ。

参考

独習Python入門――1日でプログラミングに強くなる!

独習Python入門――1日でプログラミングに強くなる!

他の書評など知り、Pythonで困ったら

まずはGoogleで検索

それでも困ったら面倒だから、著者の id:gothedistance をネット上で捕まえて問い合わせしちゃっていいと思う。

まずはGoogleで検索

それでも困るようなら id:rokujyouhitoma に連絡で構わないです。

ござ先輩

野球好き。

なお、ござ先輩とは直接面識はない。たぶん。
もしかしたら java-jaコミュニティですれ違ってるかも。たぶん。

そんなに遠くに感じない不思議。

僕とPython

余談です。全くもって余談。

僕とPythonとの関わりを紹介すると、ちょうど10年前の秋(06Q4)。

SIerが手掛けるかなり大きめの案件に参画して、ファイル保存サーバにActivePythonがあるのを発見して、ドキュメント読んだりCGI書いて遊んだのが最初だったと記憶してます。

いま思うと、繁忙期ではなく、かつネットに繋がれていない開発ルームだったから触った、外の息吹を感じたかったのだと思います。

その数カ月後にプロジェクトに導入されてたTrac(たしか0.11系だったような?)のプラグイン書く作業があって、担当したのが仕事で書いた初めてのPythonコードだったのかな。

その後趣味で使ったり、仕事で使う機会があったりしました。今はゲームプログラマー2年生でUnity C#を使う機会が増えたのですが、今日はたまたまクローラーを書く必要があったのでScrapyを投入してみたりする際に使ってます。

一番しっくりするツールチェーン is Python