2010-02-01
さて、大学卒業する前にプログラミング関係の良書をまとめておくか。
ども、calcsです。多分今年度で大学卒業します。
で、人生で初めてのフルタイムのお仕事に来年度から従事することになるでしょう。
そこで後から、一部の就活生向けセミナーで言われるように、「『学生』から『社会人』になった時」に価値観って大きく変わるのか? を、検証するために(私は懐疑的です)、今良いと思っている本をリストして置こうかと。
良いと思う本はかなりその人の価値観を表していると思うので。今回はプログラミング系。それ以外はまた後日。
リストは『複数回の再読に耐え、かつ、言語を問わずに使えるノウハウを供すること』基準で選定。個人的にはどれも最低5回ぐらいは読んでるはず。
- 作者: アンドリューハント,デビッドトーマス,Andrew Hunt,David Thomas,村上雅章
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2000/11
- メディア: 単行本
- 購入: 36人 クリック: 889回
- この商品を含むブログ (327件) を見る
まぁ、基本。日本語版の初版は既に10年前。あまりにも紹介されすぎてて、もはや「読んでない奴とかいるの?レベル」の本。
色々な本が今は出ているから、技術ノウハウ的な意味ではこの本を読まずとも、新しい本から色々摂取できる。ただし、なぜそういうノウハウが考案されるのか、というスタンスを確立する意味ではこの本は今現在に置いても良書。
別に無批判で受け入れろってことではなく、導入するノウハウのたたき台として活用できるよーって事ね。
で、この本で有名になった言葉に何といってもDRY(Don't Repeat Yourself)がある。プログラミングの極意的に紹介される事もあるが、個人的にはこれもあくまで技術的ノウハウの一つだと思う。
重要なのは「今目の前にある仕事に対するより良い手法を考えつづける姿勢」であって、その結果考案されたコピーの一つがDRYだから。もちろん凄く頑健な指針だから、これからも有用でありつづけるだろうけどさ。
Code Complete第2版〈上〉―完全なプログラミングを目指して
- 作者: スティーブマコネル,Steve McConnell,クイープ
- 出版社/メーカー: 日経BPソフトプレス
- 発売日: 2005/03
- メディア: 単行本
- 購入: 36人 クリック: 1,007回
- この商品を含むブログ (266件) を見る
上下巻。これも有名。原書は分冊されてない。英語が読めるならお得。ひたすらコーディングの話に終始している。コメントと変数命名の話は秀逸。
- 作者: 藤原博文
- 出版社/メーカー: 技術評論社
- 発売日: 2003/07/12
- メディア: 単行本(ソフトカバー)
- 購入: 5人 クリック: 164回
- この商品を含むブログ (49件) を見る
これ、たしか改訂版が出たのは私が中学の時だった気がする。確か小学校の時はウェブで公開されている物を、ローカルに落として読んでいた。
名著であることは疑いようもないのだが、今更紹介するべきか? と思ったが、この本で扱っているレベルをカバーする本を未だに他に知らないので(挙げるならすべてのプログラマに効く 危険なプログラムの処法箋あたりかな)、載せておく。ダメコードの見本集として、上の本と合わせて使える。まぁ、C言語ユーザでなくても一回ぐらいは読むべき。
- 作者: ブライアンカーニハン,ロブパイク,Brian Kernighan,Rob Pike,福崎俊博
- 出版社/メーカー: アスキー
- 発売日: 2000/11
- メディア: 単行本
- 購入: 48人 クリック: 910回
- この商品を含むブログ (201件) を見る
これも書名のとおりだ。コードの実際の働きについて、コードを考える頭の働きについても考えさせられる。
エキスパートCプログラミング―知られざるCの深層 (Ascii books)
- 作者: ピーターヴァン・デ・リンデン,Peter van der Linden,梅原系
- 出版社/メーカー: アスキー
- 発売日: 1996/03
- メディア: 単行本
- 購入: 12人 クリック: 354回
- この商品を含むブログ (70件) を見る
まぁ、C言語とは銘打ってあるが、コンピュータ内部のことも扱ってくれているので色々興味深い。あと、Cの言語仕様とかね。基盤の事も少しは抑えておかないといかんよ、と言うことで。C言語ユーザなら必読。そうでないなら、レパートリには入れておいた方がよろしい、ぐらいなのか?
- 作者: 蒲地輝尚
- 出版社/メーカー: アスキー
- 発売日: 1994/09
- メディア: 単行本
- 購入: 20人 クリック: 147回
- この商品を含むブログ (85件) を見る
上と同じく基盤周りで。未だに立場の強いx86のアーキテクチャは抑えておいて損は無い。ガチで。intelのマニュアルもかなり使える。ただ、アセンブラの扱いを軽く抑える意味でも定番の本書を推薦。
- 作者: Joel Spolsky,青木靖
- 出版社/メーカー: オーム社
- 発売日: 2005/12
- メディア: 単行本
- 購入: 15人 クリック: 314回
- この商品を含むブログ (454件) を見る
まぁ、これも有名だしねぇ。プログラマーにとって、示唆の多い読み物集。息抜きにでも読める。
- 作者: トム・デマルコ,ティモシー・リスター,松原友夫,山浦恒央
- 出版社/メーカー: 日経BP社
- 発売日: 2001/11/26
- メディア: 単行本
- 購入: 24人 クリック: 277回
- この商品を含むブログ (189件) を見る
自室の環境を整備するときにすら応用が効く素晴らしい本。ただし、問題もある。
この本、「プログラマーの生産性の向上」を、ひたすら扱っているのだが、それをそのまま「プログラマーの話」として書いている。
経営者などの管理者こそ読むべき、とか何とか言われてるが、(プログラマーに言われて)プログラマーでない経営者が読んだ場合「プログラマーは繊細なんだからもっと良い環境よこせ」と、催促しているようにとられてしまうのが痛い。
もっとも、本音としてはそういう部分も多分にあるのかもしれないが(笑)、ここは「創造性を発揮するホワイトカラーにとっての話」とでもして、その具体例としてプログラマーの話をあげる、と言う形で書いてあると、プログラマーでない人にお勧めする時に色々違ってくると思うのだが…。
リファクタリング―プログラムの体質改善テクニック (Object Technology Series)
- 作者: マーチンファウラー,Martin Fowler,児玉公信,平澤章,友野晶夫,梅沢真史
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2000/05
- メディア: 単行本
- 購入: 74人 クリック: 2,468回
- この商品を含むブログ (275件) を見る
言語はJavaだけど、もはや名前を知らない人はいないであろう「リファクタリング」と言うテクニック。まぁ別にそれ自体は凄いテクニックというわけでは全くない。デザインパターンもそうだが、「ありがちなパターンに名前をつけた」と言うこと自体が大きな功績。あとはうまくコード変更を分類し、手順化したことで、「外部動作に影響を与えない」ことを明示したことも重要か。
いずれにせよ「名前がついている物」なら人は簡単に認識できるので、共通語彙を作ったという意味でも貴重。Javaユーザでなくても一読を。
- 作者: エリックガンマ,ラルフジョンソン,リチャードヘルム,ジョンブリシディース,Erich Gamma,Ralph Johnson,Richard Helm,John Vlissides,本位田真一,吉田和樹
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 1999/10
- メディア: 単行本
- 購入: 13人 クリック: 510回
- この商品を含むブログ (195件) を見る
上で出たので。いわゆるGoF本。デザインパターン勉強するだけなら、今はこの本でなくても良いと思う。自分の使う言語の解説書を読めば大体事足りる。
ただし、先にも述べたが、「名前をつけて共通認識を得られる」ようにしたこと自体がこの本の大きな功績。ここはTemplate methodでヨロ、とかで通じるし。このクラスにMemento作っておいて、とか。凄く楽。たとえテクニックとしてはこの本出版以前から使っていたものであったとしても、である。
リファクタリング・ウェットウェア ―達人プログラマーの思考法と学習法
- 作者: Andy Hunt,武舎広幸,武舎るみ
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/04/27
- メディア: 単行本(ソフトカバー)
- 購入: 18人 クリック: 375回
- この商品を含むブログ (137件) を見る
この本は割と新しい。頭の使い方の説明書と言った感じ。もっと簡単に言えばいわゆる『勉強法本』。自己啓発本に分類すべきか悩んだが、出版がオライリーなので…。
とくに技能発達のモデルである、ドレイファスモデルは秀逸。
C言語による最新アルゴリズム事典 (ソフトウェアテクノロジー)
- 作者: 奥村晴彦
- 出版社/メーカー: 技術評論社
- 発売日: 1991/03
- メディア: 単行本
- 購入: 19人 クリック: 332回
- この商品を含むブログ (94件) を見る
定番。…今でも定番なのか? まぁ、ともかく手元にあると何かと重宝。vectorでソースコードも公開されているので、ちょっとアルゴリズムの実装に困ったときに参照するのに便利。それなりに有名で古いアルゴリズムならかなり載っている。アルゴリズムはプログラマの教養と言うことで。
- 作者: G.M.ワインバーグ,木村泉
- 出版社/メーカー: 共立出版
- 発売日: 1991/10
- メディア: 単行本
- 購入: 19人 クリック: 339回
- この商品を含むブログ (83件) を見る
ワインバーグの本は良書が多いのでいっぱい挙げたいが、あえてここはこの一冊で。チームを管理すること、学習を啓発することについて、(私は)全然実践できないけど興味深い。
アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣
- 作者: Venkat Subramaniam,Andy Hunt,木下史彦,角谷信太郎
- 出版社/メーカー: オーム社
- 発売日: 2007/12/22
- メディア: 単行本(ソフトカバー)
- 購入: 33人 クリック: 924回
- この商品を含むブログ (290件) を見る
これはデスクの横に置いておきたい一冊。アジャイルと銘打っているが、別にアジャイル関係ないプラクティスも多数含む。ソフトウェア開発のベタープラクティスの、クイックリファレンスぐらいで捉えるのがちょうどいい。
アジャイルのいろんな本を手元に置いておくのはかさ張るけれども、薄くまとめてくれている本書は入門にも暇つぶしにも最適。
- 作者: ジェラルド・ジェイサスマン,ジュリーサスマン,ハロルドエイブルソン,Gerald Jay Sussman,Julie Sussman,Harold Abelson,和田英一
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2000/02
- メディア: 単行本
- 購入: 30人 クリック: 933回
- この商品を含むブログ (474件) を見る
SICP。この本を挙げた理由は、「いろんなプログラミングのパラダイムを知ると頭が柔らかくなるよ」と言うことを象徴的に示すため。
実際schemeの入門としても悪くないどころか、良いと思う。例題に解答が無いことを除けば…。まぁ、でもK&Rとかも解答ついてなかったし、何とかなるでしょう。と言うか、私は例題とかほとんど解かない…。
とりあえず今回はこんな所で。言語問わずで絞ったので、かなりしぼられています。でもまとめるの疲れる...orz
今回は「誰にでも有用なわけでは無い」という本も全面カット。例えばA.V.AhoのCompilersとかさ…。
- 22 http://pipes.yahoo.com/pipes/pipe.info?_id=faa858a20082ef6d25ad27557e37e011
- 12 http://reader.livedoor.com/reader/
- 11 http://b.hatena.ne.jp/hotentry/diary
- 9 http://labs.ceek.jp/hbnews/list.cgi
- 7 http://www.google.com/reader/view/
- 6 http://www.google.co.jp/reader/view/
- 5 http://b.hatena.ne.jp/t/programming
- 4 http://b.hatena.ne.jp/entrylist
- 4 http://d.hatena.ne.jp/f-star/
- 4 http://k.hatena.ne.jp/keywordblog/scheme