2010-11-25(木)
■技術力をあげたいプログラマが読んでおかないと話にならない本10冊


ここにあげた本じゃなくてもいいので、同じ分野でなにか読むとか、本に書いてあるほど詳しくなくてもそれなりに知識をもっておくべき本。
![]()
- 作者: George T. Heineman,Gary Pollice,Stanley Selkow,黒川利明,黒川洋
- 出版社/メーカー: オライリージャパン
- 発売日: 2010/04/26
- メディア: 単行本(ソフトカバー)
- 購入: 7人 クリック: 420回
- この商品を含むブログ (27件) を見る
まずはアルゴリズム。クイックって書いてあるけどぜんぜんクイックじゃないw。各言語で書かれた入門書を読んでもいいと思う。
実際のプログラムにアルゴリズムの知識を活かすということを知りたいならプログラミングコンテストチャレンジブックがおすすめ。
![]()
プログラミングの基礎 (Computer Science Library)
- 作者: 浅井健一
- 出版社/メーカー: サイエンス社
- 発売日: 2007/03
- メディア: 単行本
- 購入: 9人 クリック: 90回
- この商品を含むブログ (42件) を見る
プログラミングってなにかということを。再帰とか、そういうの。OCamlという関数型言語で書かれてるので、関数型言語も知っておくという意味でもおすすめ。
![]()
並行コンピューティング技法 ―実践マルチコア/マルチスレッドプログラミング
- 作者: Clay Breshears,千住治郎
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/12/21
- メディア: 大型本
- 購入: 6人 クリック: 377回
- この商品を含むブログ (25件) を見る
そろそろ並行処理の勉強は必須になるんじゃなかろうか。ほかにThe Art of Multiprocessor Programmingとか。あと、実際にプログラムを書くためのライブラリとしてはJavaがかなり充実してるのでJava並行処理プログラミングとか読んどくといいですね。
![]()
データベース入門 (Computer Science Library)
- 作者: 増永良文
- 出版社/メーカー: サイエンス社
- 発売日: 2006/10
- メディア: 単行本
- 購入: 2人 クリック: 9回
- この商品を含むブログ (6件) を見る
NoSQLとはいうけども、リレーショナルデータベースのコンセプトを知らないのは話にならないと思われる。
知っておくべきは、現実データから論理データへの落とし込み・一貫性の確保について。要するに、現実世界から論理世界にデータを変換して、物理的にどう扱うかという問題があることを知っておく必要があるということです。
![]()
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
- 作者: 山本陽平
- 出版社/メーカー: 技術評論社
- 発売日: 2010/04/08
- メディア: 単行本(ソフトカバー)
- 購入: 107人 クリック: 3,578回
- この商品を含むブログ (112件) を見る
HTTPとかURLとか、このあたりは、ちゃんと整理して知っておいたほうがいいですね。
![]()
ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識
- 作者: 戸根勤,日経NETWORK
- 出版社/メーカー: 日経BP社
- 発売日: 2007/04/12
- メディア: 単行本(ソフトカバー)
- 購入: 14人 クリック: 121回
- この商品を含むブログ (69件) を見る
ネットワークについてちゃんと知っておいたほうが、ちゃんとネットワークを扱うプログラムが書けます。
![]()
- 作者: 大原雄介
- 出版社/メーカー: 技術評論社
- 発売日: 2006/04/13
- メディア: 単行本(ソフトカバー)
- クリック: 14回
- この商品を含むブログ (10件) を見る
CPUなどハードウェアのアーキテクチャ。これから多コアを意識するのプログラムのが大事になると思うので、知っておいたほうがいいかも。
薄い割に、OSの対応から仮想化までとりあげられていい本なんけど、この分野はすぐに「出品者からお求めいただけます。」になっちゃうのよねー。まあ、似たような本はだいたいいつでも出てると思います。
あと、アーキテクチャという点でOSについてLinuxとWindowsを理解するためのOS入門とかで勉強するのもいいんじゃないかと思います。けど、この本のAmazon評価、タイトルにつられて間違えて買った人が逆切れしてる感じで、かなりかわいそうなことになってます。
![]()
ソフトウェア工学入門 (Computer Science Library)
- 作者: 鰺坂恒夫
- 出版社/メーカー: サイエンス社
- 発売日: 2008/03
- メディア: 単行本
- クリック: 3回
- この商品を含むブログ (1件) を見る
要求定義、設計、テスト、プロジェクト管理といった、プログラムを作る作業について。実際の技法は好みや環境でかわるけど、プログラムを作る作業の中で何が問題とされているかは知っておく必要があります。
いい本がどれかはわかんなかったので、シリーズとしてお気に入りの「Computer Science Library」のやつをあげておきました。
実際のプログラムを作る作業についての分野だけに、「いいプログラムを作る」という文脈では設計やテストといったソフトウェア工学の分野ばかりが取り上げられがちだけど、「いいプログラマになる」という点では、重要ではあるけど一分野にすぎないことを踏まえておいたほうがいいと思います。
まずプログラムを書く能力があって、そのプログラミング能力をいかに有効に使うかというのがソフトウェア工学だと思ってます。
![]()
- 作者: 結城浩
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2007/06/27
- メディア: 単行本
- 購入: 41人 クリック: 576回
- この商品を含むブログ (599件) を見る
数学が直接プログラムの作業に関係はしないとはいえ、無印数学ガールの範囲の数学は知っておきましょう。あと、これからは統計がどんどん重要になると思うのでRによるやさしい統計学なんかで勉強しておくといいと思います。
![]()
- 作者: 野矢茂樹
- 出版社/メーカー: 東京大学出版会
- 発売日: 1994/02
- メディア: 単行本
- 購入: 16人 クリック: 78回
- この商品を含むブログ (66件) を見る
プログラマがやるのは結局のところ論理コンピュータを動かすことになるわけですが、その論理とはなにか知っておくと論理自体の限界とかがわかって、コンピュータにできることとできないことの判別がつきやすくなります。つまり、プログラム組みえないことをプログラムしようと思わなくなるので楽になります。
同じ著者による文庫本の入門!論理学のほうが、簡単でいいかも。
論理学からコンピュータプログラムにどうつながるのか知りたければ論理と計算のしくみを読むとラムダ計算につながっていくのでいいです。
![]()
創るJava NetBeansでつくって学ぶJava GUI & Webアプリケーション[改訂第3版]
- 作者: きしだなおき
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2009/09/12
- メディア: 単行本(ソフトカバー)
- 購入: 1人 クリック: 48回
- この商品を含むブログ (8件) を見る
なにか問題でも?
まあ、なにかプログラム言語を知って実際にプログラムが書けることは大事ですよねー。ここまでにあげた10冊以外に、自分のメイン言語については、しっかり押さえときましょうってことです。
![]()
はじめてのGoogle App Engine for Java―巨大サーバを利用したWebアプリ開発の基本! (I/O BOOKS)
- 作者: きしだなおき
- 出版社/メーカー: 工学社
- 発売日: 2010/09
- メディア: 単行本
- クリック: 120回
- この商品を含むブログ (2件) を見る
なにか問題でも?
まあ、クラウドとかはやってるし、知っておいたほうがいいですよねー。実際に作ったプログラムを動かす環境とかも、おさえておいたほうがいいですね。
156さんがプログラマとして技術力をあげたいと思っていないのであれば、この記事はスルーしていただけば結構ですし。
Google App Engineを仕事で使ってる人はいますよね。並行処理も。使うとしたら今日からでも。あと、Google App Engineに関してはネタにマジレスされても返答に困ります。