Photo by Andy Lamb
こんにちは。谷口です。
読書の秋ですが(既に冬並みに寒いですが……)、皆さんは最近何か本を読まれましたか?
ITエンジニアの皆さんは技術書を読まれることが多いかと思いますが、今回は弊社で私が特に凄腕だと思っているエンジニア達に読んで値段以上に価値があると感じた本を聞いてきましたので、ご紹介いたします。
■弊社エンジニアが選ぶ役に立った本26選
佐藤です。paizaの開発や分析などを担当しています。
今回はエンジニアとして、考え方の面で影響を受けた本をピックアップしてみました。
◆1.新C++言語入門 シニア編〈上〉基本機能 (C++言語実用マスターシリーズ)
新C++言語入門 シニア編〈上〉基本機能 (C++言語実用マスターシリーズ)
- 作者: 林晴比古
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2001/05
- メディア: 単行本
- 購入: 1人 クリック: 10回
- この商品を含むブログ (8件) を見る
◆2.新C++言語入門 シニア編〈下〉クラス機能 (C++言語実用マスターシリーズ)
新C++言語入門 シニア編〈下〉クラス機能 (C++言語実用マスターシリーズ)
- 作者: 林晴比古
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2001/05
- メディア: 単行本
- 購入: 1人 クリック: 10回
- この商品を含むブログ (5件) を見る
「大学生だった頃(10年ほど前)に、教科書以外で初めて自分で買った技術書です。
当時、林晴比古さんの書籍は書店に行くと必ずプログラミング関連の棚にあったので、読んだ人も多いかと思います。
上巻はほぼC言語の内容で、事前知識があったので数週間で読めたのですが、下巻は全部読むのに3・4ヶ月かかったと記憶しています。かなり時間をかけて隅から隅まで読んだのですが、その分基礎がしっかり身につきました。
社会人になってからだとなかなかこういう読み方は出来ないので、時間に余裕のある学生時代には、何か1冊でも熟読する機会があると良いと思います。今回、これまでに読んだ本を色々思い返してみたのですが、やはり一番沢山本を読めたのは学生時代でした。」
◆3.C++ FAQ 第2版 - C++プログラミングをきわめるためのQ&A集
C++ FAQ 第2版 - C++プログラミングをきわめるためのQ&A集
- 作者: マーシャルクライン,マイクギルウ,グレッグロモウ,金沢典子
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2000/05/15
- メディア: 単行本
- 購入: 5人 クリック: 73回
- この商品を含むブログ (22件) を見る
「大学生の頃に読んだ技術書です。C++の知らない機能やクラス設計のアプローチなど、参考になる事が沢山ありました。
C++の複雑さを思い知って、『C++の開発を大人数でやったら絶対に破綻するから、仕事では絶対にC++を使わないようにしよう』と強く心に決めた記憶があります。笑(個人で開発するC++は好きです)
C++の聖書といえば『Effective C++』の方が有名でこちらも読みましたが、自分にとっては本書の方が印象深く記憶に残っています(フレンド関数の扱い方には目からウロコでした)。現在はC++を使っていませんが、言語は変わっても設計のアプローチは流用できる事が多いので、自分の開発の原点になった書籍です。」
◆4.Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
- 作者: 山本陽平
- 出版社/メーカー: 技術評論社
- 発売日: 2010/04/08
- メディア: 単行本(ソフトカバー)
- 購入: 143人 クリック: 4,320回
- この商品を含むブログ (183件) を見る
「プログラミングの知識は学生時代にかなり習得したので、社会人になってから特に苦労することは無かったのですが、SQLやWebの知識は無かったので、その辺りの基礎知識は技術書を何冊か読んで勉強しました。
本書はWebの基礎となる知識が詳しく書かれているので、長く役立つ技術書になりました。やはり物事の基礎となる知識を得るには、Webより本の方が良いと思います。」
◆5.リファクタリング・ウェットウェア ―達人プログラマーの思考法と学習法
リファクタリング・ウェットウェア ―達人プログラマーの思考法と学習法
- 作者: Andy Hunt,武舎広幸,武舎るみ
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/04/27
- メディア: 単行本(ソフトカバー)
- 購入: 25人 クリック: 475回
- この商品を含むブログ (151件) を見る
「『ウェットウェア』とは人間の思考方法の事で、コンピュータシステムと対比する場合に用いられる言葉です。本書は人間の思考方法をリファクタリングし、達人プログラマーになる為の学習法が解説されています。
非常にざっくりですが、人間の思考には意識的に物事を考える「Lモード」と無意識に直感で考える「Rモード」が存在しており、達人は「Rモード」の直感で瞬時に答えを導き出しているとの事です。普段、日常的に評価されるのは「Lモード」による思考ですが、この「Lモード」による思考はコンピュータの思考と非常に似通ったものであり、一足飛びに物事を判断するという事はありません。対して「Rモード」は、物事のパターンや構造から類推し、直感に基いて飛躍した洞察を導くようになります。
自分の経験則ですが、この「Rモード」は、最初は周囲から「当てずっぽう」「おおざっぱ」と見られるような全く役に立たないアイデアしか生まないのですが、頭の中にデータを蓄積する事で、徐々に精度の高いアイデアを生むようになるようになるのだと感じています。
また、人間には『認知バイアス』という先入観や性向があるため、時として正しい直感を働かせる事ができなくなるのですが、それらについても述べられているので、直感的に物事を考えるときの注意点についても学ぶことが出来ます。
人それぞれに得意な思考方法があるため、急に「Lモード」と「Rモード」を切り替えるというのは難しいと思いますが、今、自分がどちらのモードに基いて思考しているのかをメタ的に意識する事で、徐々に使い分けができるようになっていくのではないでしょうか。」
◆6.On Lisp
- 作者: ポールグレアム,野田開,Paul Graham
- 出版社/メーカー: オーム社
- 発売日: 2007/03/01
- メディア: 単行本
- 購入: 10人 クリック: 146回
- この商品を含むブログ (128件) を見る
「大学の研究で、自分はC言語とPHPとJavaしかやっておらず、研究はC言語で進めていたのですが、同じ研究室の人がLispで研究をしていてバグに悩まされていたのを見て、自分の研究のプログラムは特に問題なく進んでいて暇だったので、勉強がてらLispもやってみようと思い、教授におすすめの本を聞いたら教えられた1冊です。
Lisp入門書にしては少しハードルが高かった印象でしたが、Lispのマクロの強力さなどを知ることが出来ました。同じ研究室の人のバグは自己解決されちゃいましたが、関数型言語に触れられたのはラッキーな出来事だったと思っています。」
◆7.マスタリングTCP/IP 入門編
- 作者: 竹下隆史,村山公保,荒井透,苅田幸雄
- 出版社/メーカー: オーム社
- 発売日: 2012/02/25
- メディア: 単行本(ソフトカバー)
- 購入: 4人 クリック: 34回
- この商品を含むブログ (37件) を見る
◆8.マスタリングTCP/IP 応用編
- 作者: Philip Miller,苅田幸雄
- 出版社/メーカー: オーム社
- 発売日: 1998/05/01
- メディア: 単行本
- 購入: 7人 クリック: 70回
- この商品を含むブログ (39件) を見る
「大学1年ぐらいのころに、ネットワーク関係の講義で『読むと理解が深まる』と聞いて読み、TCP/IPについて詳しく知ることができました。実際にどのようにネットワークが通信しているかというようなことが具体的に想像出来るようになりました。長期的に見てTCP/IPの仕様というのは、小さい変更はあるにしても大幅に変わることはないものなので、概念として知っておくと役に立ちます。」
◆9.Hacking 美しき策謀
- 作者: Jon Erickson,村上雅章
- 出版社/メーカー: オライリージャパン
- 発売日: 2005/06/20
- メディア: 単行本(ソフトカバー)
- 購入: 7人 クリック: 202回
- この商品を含むブログ (69件) を見る
「大学生~社会人1年目辺りで読んだと思います。セキュリティ周りを勉強したくて読んだ本の中の1冊です。実際の攻撃手法を交えて、脆弱性がどういった場合に表れて攻撃されるのか、またどのように攻撃を防げたのかが書かれていて面白かったです。
実際に脆弱性等が話題になった時に、あの辺はこうなっているんだろうな……というふうに、手持ちのカードが増えたことで色々な想定ができるようになりました。」
◆10.はじめて読む8086―16ビット・コンピュータをやさしく語る
はじめて読む8086―16ビット・コンピュータをやさしく語る (アスキーブックス)
- 作者: 蒲地輝尚
- 出版社/メーカー: アスキー
- 発売日: 1987/03
- メディア: 単行本
- 購入: 15人 クリック: 77回
- この商品を含むブログ (39件) を見る
「大学の図書館で見つけて、アセンブリ言語に関しては勉強したことなかったので、面白そうだと思って読み、マシン語等のローレベルな部分に触れることができました。
今、直接触れるようなことはあまりありませんが、頭の片隅にあると、CPUが今何をしているのか?といった想像する手助けになります。」
◆11.暗号技術入門 秘密の国のアリス
- 作者: 結城浩
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2008/11/22
- メディア: 単行本
- 購入: 46人 クリック: 720回
- この商品を含むブログ (82件) を見る
「大学時代に暗号や数学系の講義があり、面白そうだからもっと知りたいなと思って調べる中で、評判の良い本だったので読みました。
暗号技術について分かりやすく解説されています。図が多くて概念を理解しやすかったです。公開鍵暗号の流れや一方向性関数の仕組みについてを理解できました。」
paizaの開発を担当している伊藤です。
割とWebで情報収集してしまう事が多いのですが、記憶に残っていたものを挙げてみました。
◆12.Railsレシピブック 183の技
- 作者: 高橋征義,諸橋恭介
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2008/05/31
- メディア: 単行本
- 購入: 37人 クリック: 567回
- この商品を含むブログ (92件) を見る
「初めて転職した時、Railsで開発を使用しているチームに配属されました。当時は、PHPでmojaviを元にしたフレームワークなどの知識はあったものの、Rubyは未経験という状態だっだったのですが、最初にこの本を渡されて『明日までに読破しておいて』と言われたので、隅々まで読みました。
本当によく使う例が多く示されてたので実用的でした。
すごく分かりやすい単純な例が列挙されていて、見本のソース等も多かったので分かりやすかったです。『コピペすれば webページができる』といった感じが役立ちました。巻末の索引も充実しています。」
◆13.すべてがFになる
- 作者: 森博嗣
- 出版社/メーカー: 講談社
- 発売日: 1998/12/11
- メディア: 文庫
- 購入: 16人 クリック: 241回
- この商品を含むブログ (589件) を見る
「ロジカルな考え方をする技術者たちの格好良さに惹かれました。
トリックにもプログラミングの知識が使われていて、これ読んでエンジニア凄いと思いました。
長い年月を経て現在ドラマ化もされてますし、
知名度はある本だとは思います。」
paizaのバックエンド、ジャッジ開発をしている吉岡です。
自分の役に立った本を中心に選んだので少し古い本もいくつか有ります。
◆14.UNIX Cプログラミング
UNIX Cプログラミング (NUTSSHELL HANDBOOKS)
- 作者: デビッド・A.クリ,アスキー書籍編集部
- 出版社/メーカー: アスキー
- 発売日: 1991/07
- メディア: 単行本
- 購入: 2人 クリック: 16回
- この商品を含むブログ (12件) を見る
「LinuxなどUNIX上でのシステムプログラミングについて詳しく書かれています。初めてUNIX系OSでネットワークプログラムを書いたときに読みました。UNIX系だと、結局はシステムコールを理解しないと書きにくいことが多いので役に立ちました。チャットなど、ネットワーク系のプログラムで遊んだりできます。」
◆15.プログラミングPerl
- 作者: ラリーウォール,ジョンオーワント,トムクリスチャンセン,Larry Wall,Jon Orwant,Tom Christiansen,近藤嘉雪
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2002/09/01
- メディア: 単行本
- 購入: 8人 クリック: 245回
- この商品を含むブログ (125件) を見る
「『らくだ本』。初めて使ったLL系言語、Perlについて詳しく書かれています。ちょっとしたプログラムはLL系が書きやすいです。当時はPerlが主流で、最近になってRubyを使い始めるまで、ちょっとしたプログラムはPerlで書いていたので役に立ちました。」
◆16.The Art of Computer Programming Volume1 Fundamental Algorithms Third Edition
- 作者: ドナルド・E・クヌース,有澤誠,和田英一,青木孝,筧一彦,鈴木健一,長尾高弘
- 出版社/メーカー: アスキー
- 発売日: 2004/02/18
- メディア: 単行本
- 購入: 2人 クリック: 150回
- この商品を含むブログ (65件) を見る
「アルゴリズムについての本。Knuth先生が書いた有名な本で、競技プログラムに触れた後に読んでみました。
ぶ厚い本ですが、基本となるアルゴリズムについて、考え方も含めて丁寧に説明されていて参考になります。」
◆17.RailsによるアジャイルWebアプリケーション開発
RailsによるアジャイルWebアプリケーション開発 第4版
- 作者: Sam Ruby,Dave Thomas,David Heinemeier Hansson,前田修吾
- 出版社/メーカー: オーム社
- 発売日: 2011/12/01
- メディア: 単行本(ソフトカバー)
- 購入: 12人 クリック: 206回
- この商品を含むブログ (40件) を見る
「Railsを初めて学んだ時に読んだ本。Railsが流行っているので使ってみたいと思い読みました。Railsについて一通り書かれていて、流していくとRailsについては一通りわかるので参考になりました。」
◆18.プログラミングコンテストチャレンジブック
プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?
- 作者: 秋葉拓哉,岩田陽一,北川宜稔
- 出版社/メーカー: マイナビ
- 発売日: 2012/01/28
- メディア: 単行本(ソフトカバー)
- 購入: 25人 クリック: 473回
- この商品を含むブログ (36件) を見る
「競技プログラミングやアルゴリズム問題に興味を持ち始めた頃に読んだ本です。
当時は“DPって何?"という状態でしたが、これを読めば競技プログラムに必要な武器は一通り揃います。」
◆19.プログラミング言語C 第2版 ANSI規格準拠
- 作者: B.W.カーニハン,D.M.リッチー,石田晴久
- 出版社/メーカー: 共立出版
- 発売日: 1989/06/15
- メディア: 単行本
- 購入: 28人 クリック: 721回
- この商品を含むブログ (199件) を見る
「C言語について、開発者が書いた本。C言語初級者の頃、ポインタがよくわかっていなかった時に読みました。古い本ですが、基本が丁寧に説明されており、ポインタの使い方が理解できたのは役に立ちました。」
◆20.Cocoa Programming for Mac OS X (4th Edition)
Cocoa Programming for Mac OS X (English Edition)
- 作者: Aaron Hillegass,Adam Preble
- 出版社/メーカー: Addison-Wesley Professional
- 発売日: 2011/11/09
- メディア: Kindle版
- この商品を含むブログを見る
「Mac OS X上でのObjective-Cを用いた開発方法について一通り網羅した本。Macで開発がしたいと思った時に読んだ本です。
一通り試しながら読むことで、Mac/iOS上でのObjective-Cによる開発のベースとなる知識がつきました。」
◆21.TCP/IP Illustrated, Volume 1: The Protocols (2nd Edition) (Addison-Wesley Professional Computing Series)
- 作者: Kevin R. Fall,W. Richard Stevens
- 出版社/メーカー: Addison-Wesley Professional
- 発売日: 2011/11/08
- メディア: Kindle版
- この商品を含むブログを見る
「TCP/IPについてを詳しく説明した書籍。TCP/IPについて勉強したときに読んだ本です。TCP/IPプロトロルの詳細や実際の動作について詳しく書かれており、ネットワーク動作の解析をするためにtcpdump/Etherealの結果を読むときには特に役に立っています。」
paizaの開発リーダーをやっている植村です。
最近のテクニカルな分野の情報(Rails等)はやはりネットでの収集がメインとなるので、ちょっと古い本に偏ってしまいましたが、役に立った本を中心にセレクトしてみました。
◆22.J2EEパターン―明暗を分ける設計の戦略
- 作者: ディーパック・アラー,ジョン・クルーピ,ダン・マークス,ウルシステムズ株式会社,中野明彦,佐野祐一郎,宮田泰宏,土屋総一郎
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2002/07
- メディア: 単行本
- クリック: 21回
- この商品を含むブログ (16件) を見る
「Javaの自社開発フレームワークが流行っていた頃、僕もとあるシステムのJavaフレームワーク開発に携わっていました。その時に手に取った本です。
この時この本を参考にし、J2EEパターンを意識して設計したことが、プロジェクトの成功に貢献できました(ような気がする……)。
また、様々なデザインパターンを理解するためUMLを学ぶきっかけにもなり、UMLを用いることにより、その他のパターンの理解が早くなりました。」
◆23.JBoss入門
- 作者: 皆本房幸
- 出版社/メーカー: 技術評論社
- 発売日: 2003/06/13
- メディア: 単行本
- クリック: 23回
- この商品を含むブログ (20件) を見る
「オープンソースのEJBコンテナの情報を探していた頃、この本を手に取り、Jbossの概要を知ることができました。また、EJB環境を自宅に作成して実際に動かすことができたため、EJBの知識を深めるきっかけとなりました。
実際の現場では開発環境と本番環境が別アプリケーションサーバーの開発環境下で、開発環境用にJbossでEJBのモックAPIを作成することで、テストの効率を上げることができました。」
◆24.STRUTS・イン・アクション
- 作者: テッド・ハスティッド
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2003/12/10
- メディア: 単行本
- 購入: 1人 クリック: 24回
- この商品を含むブログ (28件) を見る
「Strutsでの開発中、机に置いていて役に立ちました。」
◆25.Apacheクックブック―Webサーバ管理者のためのレシピ集
Apacheクックブック―Webサーバ管理者のためのレシピ集
- 作者: ケンコール,リッチボーエン,Ken Coar,Rich Bowen,林秀幸
- 出版社/メーカー: オライリージャパン
- 発売日: 2004/04
- メディア: 単行本
- クリック: 12回
- この商品を含むブログ (11件) を見る
「Apacheでの設定のセオリーを教えくれました。」
◆26.Rグラフィックスクックブック ―ggplot2によるグラフ作成のレシピ集
Rグラフィックスクックブック ―ggplot2によるグラフ作成のレシピ集
- 作者: Winston Chang,石井弓美子,河内崇,瀬戸山雅人,古畠敦
- 出版社/メーカー: オライリージャパン
- 発売日: 2013/11/30
- メディア: 大型本
- この商品を含むブログ (3件) を見る
「PVやDAUなど各数値を可視化するためには様々なツールが存在しますが、その中でもRを用いたグラフ生成はとっても便利です。ただ、グラフ生成時は普段使わないようなコードを書かなければならないことが多く、この本は図とコードのサンプルが多く、直感的に理解することができました。」
■まとめ
弊社の(私が思う)凄腕エンジニアが選んだ26冊、いかがだったでしょうか。
初心者でも使えそうな本から、かなり渋い本まで多種多様なチョイスとなりました。
役に立った本を聞きに行った時に、「一番役に立ったのはWebで読んだリファレンスだ」「技術は進歩していくからWeb上で最新技術の勉強をした方が良い」と言う人も多くいました。
捗る勉強方法は人それぞれですが、1冊の本を読み込んでじっくり知識を得るというのも良いのではないでしょうか。
ちなみに「本とか読みたくない、それよりコード書きたい」「そして書いたものをすぐ動かしたい」「勉強っぽい勉強は続けられない」などという方は、先日このブログで書きました記事を参考にしてみてください。ゲーム感覚で楽しくコーディングが学べる15サイトをご紹介しております。
初心者も楽しく勉強できる!ゲーム感覚でプログラミングが学べる15サイト - paiza開発日誌
またpaizaでも、オンラインでのラーニング問題を解いてコーディングの学習ができるコンテンツを用意しております。
プログラミングの学習にぜひご活用ください。
paizaは、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。
自分のスキルを磨いていきたいと考えている方におすすめなのが「paizaラーニング」。オンラインでプログラミングしながらスキルアップできる入門学習コンテンツです。初心者でも楽しくプログラミングの基本を学ぶことができます。
そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。