情報処理の教育も研修も受けてないプログラマが読むべき10冊
「プログラマ」「10冊」というキーワードでたくさんのエントリが書かれていたので便乗。私が読んできた本から、みんなにお勧めできる10冊を選んでみた。
私は大学教育も新卒研修も経験していない。つまり、情報処理についての系統立てた教育を受けたことがないのだ。ゲーム制作会社のアシスタントからシナリオスクリプタをしているうちにプログラマへ、という野良っぽいキャリアにおいて、役に立ったり影響を受けたりした本を紹介しようと思う。
この本を題材に勉強会を開催するほど感銘を受けた本。職業プログラマとして年月を重ねていくために大切なことが詰まっている。そしてこの本に突き動かされた結果、翻訳者の方やレビュアーの方、さらには著者であるChad先輩という「あこがれのエンジニア」に会うことができた。訓練すること、楽しむこと、理想を持つことを教えてくれるので、いいから読め。
ソフトウェア開発全般において留意すべきことについて、さまざまな角度から記述している。「よい」開発者であるために知っておくべき事柄が詰まっている。すべてを実践できないとしても、よい手法があることを知り、実践しようという姿勢を持つことが重要。
●アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣
もちろんソフトウェア開発の本なのだが、チームで仕事をする人であれば開発者じゃなくても一読の価値あり。怠慢や不要なプライドから生まれる「悪魔のささやき」から自らを / チームを遠ざけよう。すべてのプラクティスをそっくりそのまま真似するのではなく、現状に即したやりかたを選び、考え、実践することが大事。
●アプレンティスシップ・パターン 徒弟制度に学ぶ熟練技術者の技と心得
ソフトウェア開発を「技芸」と定義し、中世ヨーロッパの徒弟制度を「ソフトウェア職人」としてのプログラマに適用してみよう、という内容。修行に取り組み始めた「アプレンティス」にも、徒弟の指導をすることになった「ジャーニーマン」にも役立つ心構えや姿勢、日々の振る舞いなどがパターンとして分類されている。
毎度おなじみJoel先生の愉快な読み物シリーズ。「会社が優秀なプログラマを採用するには」というテーマだが、採用される方も読んでおくと、採用されるためにはどんなことが必要なのか、能力を磨くにはどんなことに気をつけるべきなのか、などを伺い知ることができる。
この本からはプログラマが持つべき「誇り」が学べる。プログラマというのは知的で創造的で挑戦的な、難しいけれどやりがいが大きく楽しい仕事である。それを忘れなければ、きっと勉強や修行も楽しいものになるに違いない。
ソフトウェア開発とは直接関連しないが、ぜひ推薦したい本。「人材を育成すること」を冷徹なまでにロジカルに行った実例について書かれている。「育てる」立場の人のみならず「育てられる」立場の人にも、「育成」についての認識を改めるために読んでほしい。
●Debug Hacks デバッグを極めるテクニック&ツール
日本初のLinuxプログラミングにおけるDebugについて書かれた専門書。ここでは内容もそうだが、著者のみなさんの気持ちとか熱意をぜひ知ってほしい。出版イベントなどで「本を出すのが技術者としての目標の一つだった。それが叶って、しかもオライリーから出せたことが本当にうれしい」「執筆することは本当に勉強になった」「技術を公開することはデメリットよりメリットの方が大きい」などの声を、著者の皆さんから聞くことができた。
ちゃんと学校でやった人はパスでいいです。私は基礎教育を受けてないので、これで各要素の入り口をつかんで、必要があれば掘り下げる、というスタイルで知識を補完している。ソフトウェア開発の足腰みたいな分野なので、できるならやっといた方がいい。
これは別にこの本がすばらしいとか必読という意味じゃなくて、最初に出会った参考書を大事にしよう、モノにしよう、という心構えのお話。私が買ったのは第3版で、正直にいうと「これしか(存在し|知ら|買え)なかった」という事情が大きいのだけれども。この本とスパルタ師匠のおかげで、今でもなんとかご飯を食べることができている。
紹介しているうちに、読んだ当時のことを思い出して再び勇気づけられたような気がした。みなさんにもすばらしい本との出会いがありますように。