give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

情報システム開発に役立つ10冊+10冊

最近、プログラマ向けの書籍を紹介するのが流行ってますね。


プログラマが読むべきプログラミング本10冊: とみー
見習いプログラマが読んだら、すぐにジョブレベルが上がる10冊 : ソースコードは飲み物です。
見習いプログラマが読んでも、ほとんど無意味な10冊 - カレーなる辛口Javaな転職日記
きれいなソースコードを書くために読んでおくべき本10冊 - ひがやすを blog
Pythonのプログラマを志したおいらが買ってよかった5冊の本 - くるえるはてなくしょん
プログラマを目指す人が本を読む前に読むべきネットの記事 - もとまか日記


おいらもスキルアップに読書は不可欠!と感じている人間なので、自分だったらどんな本を選ぶかな〜と考えてみました。
オススメ本はいっぱいあるのですが、次の基準で優先順位を決めてみました。

  • 情報システム開発に役立つ (専門分野がそこなので。Webやゲーム、科学計算、組み込み分野等は専門外です)
  • ヒューマンスキルや環境改善など、毎日の業務を楽しくスムーズに進められるためのノウハウ全般を対象とする (プログラミングだけが職業プログラマーのすべてではないですよね?)
  • 普段あまり技術書を読まないという人を対象 (おいら以上に本を読んでる人には改めておいらから紹介するまでもないでしょう)
  • 読みやすく、かつ読むだけでスキルがつく (中級者〜上級者向けの本は万人受けしないし、経験が伴わないと理解しづらい)


なお、おいらが今までに読んだ本はすべてブクログに載せています。


junichiitoの本棚(伊藤淳一) - ブクログ


今のところ250冊近くの本が並んでいますが、この中から「これはおいらのプログラマ人生を変えたといっても過言ではない」という10冊を選んでみました。


Code Complete第2版〈上〉―完全なプログラミングを目指して

Code Complete第2版〈上〉―完全なプログラミングを目指して


Code Complete第2版〈下〉―完全なプログラミングを目指して

Code Complete第2版〈下〉―完全なプログラミングを目指して


まず1冊目はCODE COMPLETE。これは絶対外せませんね。
経験やOJTだけではなかなか身につけることができないプログラミングのノウハウが満載です。
何が何でもMUSTな一冊!(二冊?)


詳説 正規表現 第3版

詳説 正規表現 第3版


2冊目はずばり「正規表現」。
これを読む前は文字列処理と言えばsubstring関数を使って一文字ずつシコシコ処理してたりしてました。
この本を読むと謎の呪文のように見えていた正規表現がミニ言語として見えてきます。
また、正規表現をサポートしているテキストエディタを使えば業務効率もぐ〜んとアップします。


文字コード超研究

文字コード超研究


3冊目はこれ。文字コードの本。
社内向けWebシステムなんかを作っていると、時々文字化けに遭遇します。
文字コードを理解していないとついつい「下手な鉄砲数打ちゃ当たる」方式で対応してしまい、無駄な時間を費やしてしまいますが、文字コードは何なのかを理解していれば原因と対策をすぐに見つけることができます。


増補改訂版Java言語で学ぶデザインパターン入門

増補改訂版Java言語で学ぶデザインパターン入門


4冊目にはデザインパターンを選んでみました。
本当なら「これを読めばオブジェクト指向が一撃で分かる!」というような本を紹介したかったのですが、残念ながらおいらはそのような本は知りません。
オブジェクト指向は実務を通じて理解しないとなかなか身に付かないと思います。
とはいえ、オブジェクト指向関連の本は外したくないのでこの本をオススメしておきます。
GoFのオリジナル本よりも圧倒的に分かりやすいはずです。
オブジェクト指向が分かってくると自然とデザインパターンの必然性も理解できてくると思います。
最初に予習の意味で読んでおいて、オブジェクト指向が分かってきたら復習の意味で読み直すと完璧です。


増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編

増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編


5冊目はこれ。マルチスレッドの本。
一見すると上のデザインパターン本と同じに見えますが、内容は基本的に別物です。
情報システムでマルチスレッドを頻繁に使うことはないかもしれませんが、フレームワークを使う上ではスレッドセーフを多少意識しなければならない場合もあります。
パフォーマンス向上のためにプログラムをマルチスレッド化したりすることもあるので、基礎知識としてマルチスレッドプログラミングを知っておくのは有益です。


エンジニアのためのWord再入門講座 美しくメンテナンス性の高い開発ドキュメントの作り方

エンジニアのためのWord再入門講座 美しくメンテナンス性の高い開発ドキュメントの作り方


6冊目。ここで突然Wordの登場です(笑)。
ちなみにこれ以降はプログラミングに直結しない本を紹介します。
プログラミングをする際は「コピペ厳禁!コード重複は諸悪の根源!」と叫んでいる人でも、ドキュメントを書くときはいわゆる「Excel方眼紙」にペタペタとコピペしまくっていたりしませんか?
「だってWordは癖が強くて使いづらいから」というのがよく聞く言い訳(苦笑)ですが、ちゃんと勉強すればそんなことはありません。
Wordはあなたのドキュメント作成を協力にサポートしてくれる協力な助っ人になってくれます。
この本を読んでWordの食わず嫌いを直しましょう。


達人プログラマー―システム開発の職人から名匠への道

達人プログラマー―システム開発の職人から名匠への道

  • 作者: アンドリューハント,デビッドトーマス,Andrew Hunt,David Thomas,村上雅章
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/11
  • メディア: 単行本
  • 購入: 37人 クリック: 924回
  • この商品を含むブログ (331件) を見る

7冊目には達人プログラマーを持ってきました。
プログラマとしての基本的な心得やプラクティスが色々と載っています。
もしまだ実践していないプラクティスがあれば是非取り込みましょう。


情熱プログラマー ソフトウェア開発者の幸せな生き方

情熱プログラマー ソフトウェア開発者の幸せな生き方


8冊目はこの本です。情熱プログラマー。
しかし、おいらが読んだのは前のバージョンの「MY JOB WENT TO INDIA」です。
個人的にはこっちのタイトルの方が刺激的で好きなんですが。
この業界でずっとメシを食っていきたいと思っている人は是非読みましょう。
あなたの市場価値を向上させるヒントがいっぱい詰まっています。
ぼ〜っとしてたら突然憂き目に遭いますよ?


ゆとりの法則 ? 誰も書かなかったプロジェクト管理の誤解

ゆとりの法則 ? 誰も書かなかったプロジェクト管理の誤解


ピープルウエア 第2版 ? ヤル気こそプロジェクト成功の鍵

ピープルウエア 第2版 ? ヤル気こそプロジェクト成功の鍵


9冊目はトム・デマルコのエッセイ2冊です。
少々強引ですが2冊で1冊とカウントさせてください。
世間ではピープルウェアの方が有名ですが、個人的にはゆとりの法則の方が印象深いです。
効率ではなく、なぜゆとりが必要なのか?ゆとりがないと何を失うのか?
思わず「うちの職場にももっとゆとりを!」と叫ばずにはいられなくなる一冊です。
もちろんピープルウェアも名著です。
やはり「うちもこんな職場だったらいいのに」と誰もが思うことでしょう。


人を動かす 新装版

人を動かす 新装版


最後はこれ。
全くITと無関係の一冊ですが、非常にすばらしい本だと思います。
プログラマはプログラミングができれば良い」なんて言っても、仕事でプログラミングをする以上、人と人とのコミュニケーションは避けて通れません。
この本を読むと、強引に我を押し通すのではなく、相手を思いやることが重要なんだと分かります。



さて、以上がおいらのおすすめの10冊ですが、ここから番外編として最初に挙げた基準にあてはまらない10冊を紹介します。
今から挙げる10冊は

  • 難しい。読んでも分かるとは限らない。でも中級者以上なら理解しておきたい本


もしくは

  • 個人的には役に立ってるけど、あなたの役に立つとは限らない本
  • おいらはいいと思ったけど、あなたはもっといい本を知っているかもしれない本


です。
基本的にオブジェクト指向好きなので、今から紹介する本は結構オブジェクト指向に偏っていたりします
まあ、オマケなんでお気楽にいきましょう(苦笑)。


リファクタリング―プログラムの体質改善テクニック (Object Technology Series)

リファクタリング―プログラムの体質改善テクニック (Object Technology Series)

  • 作者: マーチンファウラー,Martin Fowler,児玉公信,平澤章,友野晶夫,梅沢真史
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/05
  • メディア: 単行本
  • 購入: 77人 クリック: 2,654回
  • この商品を含むブログ (280件) を見る

1冊目はリファクタリング
ベストな10冊に入れても良かったのですが、やや「オブジェクト指向限定」な内容があるので万人受けする部分としない部分があるかなあと思います。
でもリファクタリングという考え方が超重要であることは間違いないです。



2冊目はデータベースの本です。厳密に言うとリレーショナル理論に関する本でしょうか。
情報システム向けの本ならデータベースやSQLは外せないのですが、おいらはSQLを現場で叩き上げてきた人なので、あまり本を読んで勉強した感じはありません(何冊かは読んでますけど)。
なのでベストな10冊にはSQLの本は入ってきませんでした。
さてこの本は非常に硬派にリレーショナル理論を説いてきます。そしてアンチSQLです(苦笑)。
データベースってテーブルとSQLでしょ?それがリレーショナルデータベースなんでしょ?という常識があっさり覆されます(笑)。


エンタープライズ アプリケーションアーキテクチャパターン (Object Oriented Selection)

エンタープライズ アプリケーションアーキテクチャパターン (Object Oriented Selection)


3冊目はいわゆるPOEAAをご紹介。
中規模〜大規模向けの情報システムを構築する際に参考となるアーキテクチャが載っています。
とはいえ、ただでさえ難しい内容なのに訳が読みにくいので絶対万人受けはしないと思います。


実践的プログラムテスト入門―ソフトウェアのブラックボックステスト

実践的プログラムテスト入門―ソフトウェアのブラックボックステスト


ソフトウェアテスト技法―自動化、品質保証、そしてバグの未然防止のために

ソフトウェアテスト技法―自動化、品質保証、そしてバグの未然防止のために


4冊目はテスト技法の本。これも2冊で1冊扱いでお願いします(笑)。
テスト関連の本はたくさんありますが、この2冊を読んでおけば完璧かも。
でもどちらも非常に難しい。
その意味では別の本を紹介しても良かったのですが、これまで読んだテスト関連の本では一番印象が強いので紹介せずにはいられませんでした(笑)。


実践UML 第3版 オブジェクト指向分析設計と反復型開発入門

実践UML 第3版 オブジェクト指向分析設計と反復型開発入門

  • 作者: クレーグ・ラーマン,依田智夫,今野睦,依田光江
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2007/11/12
  • メディア: 単行本(ソフトカバー)
  • 購入: 4人 クリック: 61回
  • この商品を含むブログ (24件) を見る

5冊目は実践UML
でもこれはUMLの本じゃなくてオブジェクト指向設計の本だと思います。
非常に有益なノウハウが詰まっているのですが、何回読んでもなぜか読みづらいです。


今夜わかるTCP/IP (Network)

今夜わかるTCP/IP (Network)


今夜わかるHTTP (Network)

今夜わかるHTTP (Network)


今夜わかるメールプロトコル (Network)

今夜わかるメールプロトコル (Network)


6冊目はネットワークプロトコル関係の本を。これは3冊で1冊扱いです!
ブラウザやメーラーが裏で何をやっているのかを理解するとトラブルシューティングやソリューションの検討時に結構役立ちますね。


Java魂―プログラミングを極める匠の技

Java魂―プログラミングを極める匠の技


7冊目はJava魂です。
これを挙げたのはJavaだからどうだと言う訳ではなく、初心者を脱したら中級者以上の本を読みましょうということが言いたかったからです。
基本的な文法を理解したら、効率的なロジックの書き方やさまざまなベストプラクティスを吸収することが重要だと思います。
メジャーな言語にはそれぞれベストプラクティス関連の本が用意されていたりするので、そうした本を積極的に読んでいきましょう。


JavaScript 第5版

JavaScript 第5版


8冊目はJavaScriptの本です。
これもJavaScriptである必要はなくて、要はコンパイラ言語とスクリプト言語の特性の違いを理解できれば何でもよいと思っています。
おいらはJavaオブジェクト指向を大体理解してからこの本を読んだことで、スクリプト言語は実行時評価をするので型がないように見えたり、JavaC#には存在するインターフェースが不要だったりする理由が分かりました。


UMLによるエンタープライズJava開発―ソフトウェアモデリングによる効率的なJavaシステムの構築 (Object Oriented SELECTION)

UMLによるエンタープライズJava開発―ソフトウェアモデリングによる効率的なJavaシステムの構築 (Object Oriented SELECTION)


9冊目はこちらの本を。
架空のサンプルプロジェクトを題材にして、UMLオブジェクト指向を使ってシステムを構築する際の具体的な手順が載っています。
いくら本を読んでもUMLオブジェクト指向を実務でどう使えば良いのか分からない、という人にはおススメです。
ただし、後半はもはや時代遅れな内容となってしまっているので、あまり参考にならないかもしれません。。。


エンジニアのための時間管理術

エンジニアのための時間管理術


そして最後はこちら。時間管理術の本です。
一日ほとんどプログラミング、という方にはあまり役に立たないかもしれませんが、割り込みや業務の掛け持ちが多くて毎日目が回りそう、という方には非常に実践的な時間管理のノウハウが載っています。
おいらも日々のタスクを結構うまく裁けるようになりました。



というわけで、おいらのオススメ本10冊+10冊でした。
あなたのお役に立てれば幸いです。