参考文献
昨今、ウェブに大量に情報があるため、本など買わなくてもプログラムは独習できると思うかもしれない。しかし、ウェブにある情報は玉石混交であり、ある程度の知識がないと何が玉で何が石かを判断することが難しい。特にプログラム関係では誤り、誤解、意味のない情報を掲載したサイトが大量にあるため、それらをかき分けて重要な情報にたどり着く努力をするよりは、公式のドキュメントにあたったり、評価が定まっている名著と呼ばれる書籍を購入した方が結局は早い。
また、本書ではPythonそのものを学ぶというよりは、Pythonを使ってカオスや統計などを体験することを重視した。本書で「数学やシミュレーションは面白い」と思ってもらえたなら望外の喜びである。本書で取りあげた「面白い数学」などのネタ元の書籍も紹介するので、是非読んでみて欲しい。
Pythonを学ぶために
- 「Python公式ドキュメント」(https://docs.python.org/ja/3/) プログラム学習で何か躓いたら、まずは公式ドキュメントを見る癖をつけて欲しい。公式ドキュメントは最も信頼性の高い情報である。初学者ほど公式ドキュメントを敬遠し、安易な初学者向けのサイトを頼る傾向にある。しかし、初学者向けのサイトを見ると「分かった気」にはなるが、だいたい後で困って調べなおしになるので二度手間になる。逆に言えば、公式ドキュメントを見るようになれば、それだけで初心者は卒業したと言っても良い。
- 「入門Python3 Bill Lubanovic (著), 斎藤 康毅 (監修), 長尾 高弘 (翻訳)」プログラムに限らずなにかを学ぶ際、最初は「軽い、薄い」本を読みたくなるが、真面目にやろうとすると、どこかで「重い、厚い」本を読む必要が出てくる。とりあえずオライリーの本を一冊買っておけば間違いない。
プログラムを学ぶために
Pythonでだいたいプログラムが書けるようになった、もしくは複数のプログラム言語が書けるようになってきた人が読む本。
- 「コーディングを支える技術 ~成り立ちから学ぶプログラミング作法 (西尾 泰和(著), WEB+DB PRESS plus)」プログラムを構成する要素について、様々な言語にまたがって説明することで「なぜその文法が導入されたのか、廃止されたのか」などを紐解く。一つの言語があらかたマスターできたあたりで読むといろいろ発見があるだろう。
- 「リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Dustin Boswell, Trevor Foucher (著), 角 征典 (訳), オライリージャパン)」 文法がわかり、とりあえず「動く」プログラムがかけるようになったら、次は「どのように書くべきか」を気にするべき。この本は読みやすいコード(リーダブルコード)を書くためのテクニックが詰まった古典的名著。手元において、たまに読んでみよう。その度に新たな発見があることだろう。
数学や科学について
本書でネタにした「数学」を面白いと思った方におすすめの本など。
- 「数学ガール シリーズ (結城浩 (著)、SBクリエイティブ)」高校生達の青春ドラマに、数学の楽しさと美しさを織り込んでいったような本。魅力的な登場人物の会話を追いかけているうちに「数学は面白く、そして美しい」ことが実感できると思う。
- 「数学をつくった人びと I, II, III (E. T. Bell(著)、田中 勇、銀林 浩 (訳) ハヤカワ文庫NF―数理を愉しむシリーズ)」数学という巨大で美しい学問の構築に携わった人々を描いた本。数学者というと浮世離れしたイメージがあるが、彼らも人間であり、そこには様々なドラマがあった。数学に興味があればもちろん、なくても楽しめる。大変おすすめ。
- 「カオス―新しい科学をつくる (ジェイムズ・グリック (著), 大貫 昌子 (訳) 新潮文庫)」 決定論的なしくみから予想不可能な振る舞いが生まれる「カオス」。その「カオス」に立ち向かった人々のドラマ。本書でも「カオス」を題材にしているが、それで興味を持った人は読んでみると面白いと思う。おすすめ。
- 「複雑系―科学革命の震源地・サンタフェ研究所の天才たち (M. M. Waldrop(著)、田中 三彦、遠山 峻征 (訳)、新潮文庫)」こちらは「複雑系」という学問(哲学?)を構築した人々のドラマ。全体は部分の和以上のものだろうか?こちらも面白い。
プロジェクトについて
多くの場合、プログラミングとは「何かを実現するための手段」に過ぎない。素晴らしいソフトウェアも、完成しなければ意味がないし、適切なビジネスモデルと組み合わせなければ収益を上げることができない。そんな「プロジェクト」はどうあるべきかについて興味がある人向けの本。
- 「闘うプログラマー パスカル ザカリー (著), 山岡 洋一 (翻訳)、日経BP」 マイクロソフトでWindows NTを開発した伝説のプログラマー「デイヴィッド・カトラー」の伝記のような本。マイクロソフトの命運をかけた巨大なプロジェクトは、超人的な努力と「デスマーチ」によって完遂された。プロジェクトとは何か、リーダーとはどうあるべきか等について考えさせられる。
- 「ザ・ゴール シリーズ (エリヤフ・ゴールドラット (著), 三本木 亮 (訳), ダイヤモンド社)」 企業の目的とは何か?それはお金を稼ぐことだ。それはどのようにして達成させるべきか?「なるべく機械が動いている時間を長くする」「暇そうにしている人に仕事をさせる」そんな「あたりまえ」のことが効率を悪化させていた。「部分最適化の和は必ずしも全体最適化にならない」ことを、魅力的なストーリーとともに教えてくれる古典的名著。著者が「日本人がこの本を読んだら経済的に強くなりすぎる」と、しばらく和訳を禁じていたことでも有名。