日経SYSTEMS2012年10月号 トップアーキテクトが薦める20冊

先日インタービューを受けた日経SYSTEMSさんの見本誌をいただきました。「トップアーキテクトが薦める20冊」という企画で、オススメの本を3冊紹介させていただきました。

私など会社の片隅で細々と食いつないでいるただのしがないプログラマーであり、決してアーキテクトでもなんでもない者ですが、なぜか話が回ってきたものですから…。
いただいた見本誌を読んでみると、他の方はなにかむつかしそうな本を紹介されており、なんだか自分だけ場違い感をひしひしとします^^ インタビューは結構時間をかけて行っていただいたのですが、誌面ではかなりさくっと紹介されている感じです。せっかくの機会ですし、どれも思い入れのある本なので紹介させていただいた3冊の書籍についてここでじっくり振り返ってみたいと思います。

WEB+DB PRESS


まずはいきなり書籍ではなく雑誌なのですが、WEB+DB PRESSさんです。ちょうど社会人になり立ての頃に創刊され、今でも生き残っている数少ない技術情報誌です。Vol.1やVol.2を参考に必死にTomcatを動かしていたのが記憶に残っています。
当時はオンラインメディアも今ほど充実しておらず、最新技術や業務外の分野の情報を得るのに役立ちました。Java関係だとJAVA PRESSJava Worldなどの雑誌もありましたが、WEB+DB PRESSJavaに限らず様々な分野の最新情報が得られたこと、また著名なエンジニアの方が書かれた記事が多く現場のノウハウ的な情報が多かったことから、ちょっと近寄りがたい空気を醸し出していたJava Worldなどと比べると身近に感じられる雑誌でした。
紙媒体のメディアでありながら今でも生き残っているのにはやはりそれなりの理由があります。これだけ広範な技術分野を扱う雑誌となると普通は「広く浅く」になってしまいそうな気がしますが、尖ったネタが多いんですよね。いまだに書店でWEB+DB PRESSを見かけて「おっ、ちょっと読んでみたいかも」と思わせる記事が多いです。これは企画や著者さんの選定を含め、編集者さんがいい仕事しているということだと思います。
また、オンラインメディアは自分から能動的に情報を探しに行く必要があるため、必要な情報を探すにはよいのですが、自分の専門分野以外の情報というのは意識しないとなかなか入ってきません。特に若い人はこういう雑誌を通して目の前の仕事以外に興味を持てる分野を見つけてもらえるといいなと思います。自分も最初の会社にいたときはWEB+DB PRESSの記事を読んで「自分がやってる仕事と全然違う…」と愕然としたものでした。その反動でAmaterasとかを作り始めたわけですが…w

アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣


会社では長らく少人数のチームでアジャイル的なスタイルでの開発(実際には翻訳とか開発以外の作業もやったりしていますが)をやっているのですが、最初の頃は右も左もわからずこの本をお手本に試行錯誤していました。ただ、今でも強く記憶に残っているのは個々のプラクティスよりも「犯人探しをするな」という格言ですね。なにか失敗があったときに個人を非難しても和を乱すだけでなんの解決にもなりません。同じ失敗を繰り返さないよう、チームのみんなで改善策を考えていくことが大切です。
個人的にはチーム全員にこの本を読んでもらい意識をあわせておくことで、同じ方向を向いて仕事ができるんじゃないかなあと思います。小さくてページ数もそんなにないので気軽に読めますし、今でも読み返すと心を洗われるような気分になるので、お持ちの方はたまに読み返してみるとよいかもしれません。

Scalaスケーラブルプログラミング第2版


これは特に影響を受けたとかそういうことはないのですが、うちの会社では最近は仕事でもScalaをやっていますよーということのアピールも兼ねて「Scalaやるならバイブルとして読んでおくべき一冊」ということで。ただ、厚いですし内容もそんなに簡単というわけではありません。本当に入門レベルからScalaを始めるのであれば別の書籍から入ったほうがいいかもしれません。
本当は「Scala逆引きレシピ」を全力でオススメしたかったのですが、自著はダメよということで却下されてしまいましたw このインタビューを引き受けさせていただいたのも、半分は自分の本の宣伝が目的だったのですが、残念ながらその目的を果たすことはできませんでしたww
少し話は変わって、これは書籍というよりScalaの話になってしまうのですが、Scala関数型言語に挫折した人にこそ試してみて欲しい言語です。最初はJavaに近い書き方から入ることもできますし、そこからScalaの便利なコレクションAPIなどに触れていくことで少しずつ関数型言語のエッセンスを身に付けていくことができます。関数型言語と難しく構えずに、最初は知っている機能だけでいいので、とにかく動くコードを書けばいいんです。そういう幅の広さがScalaの魅力のひとつだと思っています。

おまけ

上記の3冊以外では少し古いですが、以下の本もなかなかオススメです。

様々なインターネットプロトコルJavaを使って実装してみる、という本なのですが、ネットワークプログラミングの基本とインターネットプロトコルの両方を同時に学ぶことができます。インターネットプロトコルはかなり身近な存在なので、実際に自分でコードを書いて動かしてみるのも面白いです。