エンジニアとしてプロとして、今年読んだ本

自分はエンジニアであり、プロでありたいと思っているので、定期的に技術書を読むように心がけています。読むのと理解するのが遅いため冊数は少なめですが、それでも少しでも身につくものがあればと思って読んでいます。
そんな自分が、今年一年でどんな本を読んだか思い返してみたいと思います。

わかりやすいコードを書くための本

Clean Code アジャイルソフトウェア達人の技

Clean Code アジャイルソフトウェア達人の技

レガシーコード改善ガイド (Object Oriented SELECTION)

レガシーコード改善ガイド (Object Oriented SELECTION)

日頃、自分なりにわかりやすいコードを書くように気を付けています。「CleanCode」は、それが本当にわかりやすいベストな方法なのかを知りたくて買った本です。
読んでみて、自分がやってきたことが正しかったんだという安心感と、もっと良くするための方法を得ることができました。というか、まだまだ「わかりやすいコードの書き方」はいっぱいあるんだというのを改めて考えさせられた一冊です。
もう一冊の「レガシーコード改善ガイド」は、CleanCodeの中で単体テストの実践例が載っていて、それをより詳しく知りたくて買った本です。
この本で特に印象に残っているのが「きれいなコードよりも、テストができるコードのほうが大事。テストができないなら、きれいなコードであっても崩すべき」という点です。それまでは、いいコード=きれいなコード、というように考えて自分にとっては目からうろこな話でした。


今年最後の仕事では、テストコードとともにプログラムを書きました。残念ながら、リファクタリングのタイミングを見誤ってしまい*1、この知識を生かし切れませんでしたが、次に機会があった時にリベンジしようと思っています。

仕事で使うための本

Java並行処理プログラミング ―その「基盤」と「最新API」を究める―

Java並行処理プログラミング ―その「基盤」と「最新API」を究める―

Silverlightで開発するデータ駆動アプリケーション

Silverlightで開発するデータ駆動アプリケーション

Silverlight入門 C#とブラウザプラグインでらくらくRIA開発

Silverlight入門 C#とブラウザプラグインでらくらくRIA開発

Java並行処理プログラミング」は、マルチスレッドプログラミングの難しさを感じて買った本です。読んだ感想は「マルチスレッド版の EffectiveJava だ!」。Java6以降でマルチスレッドプログラミング書くなら必携の一冊だと思います。これを知っているか知らないかで、必要な時間と品質が大きく変わるぐらい大事な本です。

C#の二冊は、今年初めてC#を始めるにあたって読んだ本です。お客様のフレームワークを使っていたので、基礎がない状態でも作れるには作れるんですが、そんな状態のままだといつまでもグダグダになると思って買いました。ただ、これだけじゃ全然足りません。まだまだ勉強が必要そうです…。

趣味で使うための本

JavaScriptパターン ―優れたアプリケーションのための作法

JavaScriptパターン ―優れたアプリケーションのための作法

自作の Canvas Library (Effect & Animetion) を作っていて「JavaScriptがうまくかけないー」と涙目になったときにでたのがこの本です。即買いです。
サイ本も持っていますが、こちらの方が実践的でわかりやすかったです。JavaScriptは、ほかの言語に比べても人によって差異が大きく、「なんでこうやってるの?」という点が自分の中でわからないままになっていました。それがすっきり解消されました。


そういえば、まだライブラリの方にこの知識を反映できていません。読んだだけではだめですね、実践しないと…。

エンジニアとしての今後を考えるための本

エンジニアとしての生き方  IT技術者たちよ、世界へ出よう! (インプレス選書)

エンジニアとしての生き方  IT技術者たちよ、世界へ出よう! (インプレス選書)

「エンジニアとしての生き方」は中島聡さんが、雑誌やブログに書いた内容をまとめた本です。自分のエンジニアとしての生き方を考えさせられた一冊です。ちなみに、この本ではないですが、同氏の「プラットフォームは乗るものではなく担ぐもの - Software is Beautiful*2」に感銘を受けて、Java7を担ごうと、ブログでJava7の記事を書いていました。


人月の神話

人月の神話

プログラマが知るべき97のこと

プログラマが知るべき97のこと

「人月の神話」は、今年の夏から秋に変えて炎上したときの反省をするために、何が間違っていたかを探すために読みました。とても36年前に書かれた本とは思えないぐらい、自分の状況に当てはまってビックリしました。この本にあるように、銀の弾丸はないですが…、それでも炎上する事態を避けるために日々努力していこうと思います。
プログラマが知るべき97のこと」はそのヒントになりました。どういう風に仕事に向かっていけばいいのかを迷ってしまっていた時期に読んで、この中でやっていることを少しでもマネできれば、その分よくなっていくんじゃないかという希望を持てました。

まとめ

長くなりました。
こうやって振り返ってみると、一冊一冊から少しずつでも知識を得られていたんだなと改めて感じました。ただ、読んでそのままになってしまった本が多いです。読むだけでなく、内容を理解するために、本の内容に沿って手を動かすことが必要だったかなと今にして思います。これは、今年の反省点です。

              • -

今年は、「Excelの表(QA表, 不具合表... etc)を、すごく検索しやすくするツールを作りました。」や「Java7 で String クラスがリファクタリングされていました」など、たくさんの方にブログを読んでいただけた貴重な一年となりました。
これまで、はてなブックマークがつくことにすらびっくりしていたのに、それがここまで伸びるとは本当に思ってもいませんでした。
読んでくださった皆様、誠にありがとうございました。


まだまだたくさんのことをやっていくつもりです。
来年も、よろしくお願いします!

*1:リファクタリングはすぐにできるからと、あと回しにしてしまいました。それで、そのまま修正する時間を取れないまま手作業による結合テストに入ってしまい、修正不可になりました。すぐにできるなら、完成したといわずにその場でさっさとやっておくべきべきでした…。

*2:「常に時代の先端を走り続けたいのであれば、『勝ち馬を見つけ出してそこにお金を張る』のではなく、『自らが騎手になって自分がこれと思ったプラットフォームを勝たせる』意気込みが必要」という話。」Life is beautiful: プラットフォームは乗るものではなく、担ぐもの より