Findy Engineer Lab

エンジニアの"ちょい先"を考えるメディア

あなたのキャリアに影響を与えた本は何ですか? 著名エンジニアの方々に聞いてみた

書籍には、特定領域の専門家たちが習得してきた知識のエッセンスが詰まっています。だからこそ「本を読むこと」は、ITエンジニアがスキルを向上させるうえで効果的な取り組みといえます。では、著名エンジニアたちはこれまでどのような書籍を読み、そこから何を学んできたのでしょうか。今回は9人の著名なエンジニアのキャリアに影響を与えた“珠玉の書籍”を、ご本人にまつわるエピソードとともに紹介してもらいました。
*…人名の50音順に掲載。回答者は敬称略。

粕谷大輔(だいくしー)が紹介
『Scalaスケーラブルプログラミング』

私のキャリアを変えた一冊は、『Scalaスケーラブルプログラミング』です。現在は日本語版だと第4版が最新ですが、私が購入した当時の版は第2版でした。

この本は、Scalaの言語設計者であるMartin Odersky氏による著書です。2014年のScalaMatsuriで実際にOdersky氏と対面する機会があり、「自分が仕事で使っているプログラム言語の設計者と直接会うことができるなんて!」といたく感動しました。

この本を読んでいた頃の前後数年間は、私が積極的にエンジニアコミュニティに顔を出し始めていた時期でした。そこでは業界を牽引するような人たちと度々接点を持つ機会に恵まれました。この経験により、言語設計者や有名な書籍の著者たちは、決して雲の上の存在ではなく、自分が働いている現場の地続きにいるのだな、という感想を強く持ちました。それは同時に、自分も努力をすればこの人たちのいる場所に近づけるのかもしれないと考えるきっかけでもありました。

今、私がこのページに寄稿させてもらうような立場にいるのも、2014年のScalaMatsuriでこの本を手にし、緊張しながらOdersky氏に声をかけたあの日の延長線上にあるように思います。

【プロフィール】
2001年に大学卒業後、SI、ソーシャルゲーム開発を経て、SaaSサービスの開発エンジニアやディレクターを経験。2021年よりChatwork株式会社にてScrum@Scaleをベースにした開発組織づくりに携わっている。
GitHub:daiksy Twitter:@daiksy

加藤潤一(かとじゅん)が紹介
『エリック・エヴァンスのドメイン駆動設計』

『エリック・エヴァンスのドメイン駆動設計』は、翻訳レビューに参加した思い出深い書籍です。この本は、ドメイン駆動設計(DDD)という方法論を提唱したものです。私は、オブジェクト指向とモデリングに注力し始めた時期に、この本と出会いました。

以前の私は、技術を極めればソフトウェア設計がうまくいくと信じていましたが、実際はそうではありませんでした。技術は道具であり、道具には、どうやって使えばよいかと聞いても答えはありません。道具自体は、真の目的を教えてくれません。逆に言えば、ドメインに向き合い、良い問いを立てることで技術を生かすことにもつながる。この本を通して、そのようなことを学びました。

現代は、VUCA時代と呼ばれるほど、変化が激しい時代です。そのため、新しい知識もすぐに陳腐化し、対象の問題も変わりやすいです。そうなると、技術を使った解決方法も変わります。それは、ソフトウェアも例外ではなく、変化に対応しやすい設計が求められています。その意味では、DDDのようなドメイン知識に基づく設計手法も、有用な選択肢の一つです。興味があれば、ぜひこの本を読んでみてください。

【プロフィール】
Chatwork株式会社のテックリード。10歳で初めてプログラミングに触れる。SIとしてさまざまな現場での業務を経験した後、2011年より某D社、2013年より大手ソーシャルゲーム企業で、それぞれScalaやドメイン駆動設計を採用したシステム開発に従事。2014年7月よりChatwork社に参画。現在は「Chatwork」次期アーキテクチャのプランニングや設計、開発に携わる。
GitHub:j5ik2o Twitter:@j5ik2o

きしだなおきが紹介
『計算理論の基礎』

本当の意味でぼくの人生を変えた本としては『MSXマガジン1984年7月号』で、この号の記事でプログラムを書いて動かすことの面白さを実感したのですが、そういう古い本では単なる思い出話になってしまい、みなさんの役に立たないと考えました。そこで最近(といっても10年以上前ですが)の「キャリアを変えてくれた書籍」として『計算理論の基礎』を挙げたいと思います。

『計算理論の基礎』は文字どおり計算理論の基礎の本です。計算量や計算の複雑性、計算可能性といった、コードを書くうえで直接的に役に立つわけではないけれど、コードの性質について考えるためには知っておいたほうがいい基礎を扱っています。

この本を読む前のぼくといえば、情報系の学校に行っていたわけでもなく、コードは書けるものの理論的な面では他の人の話についていけないことがありました。そんななか、東京の仕事をしたときに入った書店で『計算理論の基礎』を見つけました。「このあたりが弱いんだよな」と買って読んでみると、断片的に知っていたことが整理されてつながっていく感じがありました。

そこをきっかけとして他の本も読み進め、数値計算や機械学習、コンピュータアーキテクチャなどを勉強してきて、それまでと比較すると楽に「プログラミングとはどういうことか」ということを考えられるようになって、『プロになるJava』のような本が書けるようになりました。

ちゃんと基礎を勉強しようとしたときの最初の本であったこと、難し過ぎると思って敬遠していた本が読んでみたら案外読めるようになっていたこと、さらにこの本で学んだことは今でも大切な基礎になっていることから、『計算理論の基礎』で少しキャリアが変わったなと思っています。

【プロフィール】
九州芸術工科大学芸術工学部音響設計学科を満期退学後、フリーランスとして小規模サイトの構築や各種ツールの開発などをやったあと、LINE Fukuoka株式会社に入社。メイン言語はJavaで『プロになるJava』を共著で出版しました。
Twitter:@kis

瀬尾直利が紹介
『独創はひらめかない―「素人発想、玄人実行」の法則』

私が大学院でコンピュータビジョンの勉強をしていたときに読んだもので、コンピュータビジョンの世界で著名なカーネギーメロン大学金出教授執筆の書籍。

独創技術の開発には、極端に言えば荒唐無稽というか、つまり思考が飛躍する必要がある。

研究開発に必要なのは「素人発想、玄人実行」。この時に難しいのは、専門家としての知識、つまり玄人としての成功体験を疑うこと。

物事を推し進めるには「考えるときは素人として素直に、実行するときには玄人として緻密に」の両方を併せ持ち、使い分けなければならない。

「玄人発想、素人実行」──これはまずい

と述べている。開発者からすると素人のような荒唐無稽なアイデアでも、玄人として実現してみせるだけの技術力を身に付けなければ、真にユーザーが求めているものは生み出せないとして、まずはそれだけの技術力を身に付けるべく邁進する動機を私に与えてくれた。そこで培った技術力が今のキャリアを支えている。

アイデアを出す際にも聞く際にも、玄人発想で実現可能性だけを考えて発想を狭めたり、フィードバックをしたりはしないように意識しており、学生時代に読んだにも関わらずいまだにフレーズが頭に残っている一冊。

【プロフィール】
会津大学を卒業後、米メリーランド大学大学院を修了。光学機器メーカーにて組み込みシステムの開発に携わった後、2012年株式会社ディー・エヌ・エーに入社。2019年SREスペシャリストとして株式会社ZOZOテクノロジーズ(現株式会社ZOZO)に入社。2022年4月よりVPoEに就任。現在は、技術本部 本部長 兼 VPoEとして全社の技術戦略策定やエンジニア組織開発を推進。社外活動として、Ruby、Fluentdのコミッターを務める。
GitHub:sonots Twitter:@sonots

福田鉄平が紹介
『Ultra Red』

2002年頃に『少年ジャンプ』で連載されていた格闘漫画です。自分は『Ultra Red』が『少年ジャンプ』における最高の格闘漫画であると今でも思っているのですが、たった4巻で打ち切られました。自分が素晴らしいと信じて疑わないものが世の中に受け入れられず、自分が描いた漫画でもないのに落ち込んだのをよく覚えています。

OSS開発においても自分が良いと信じるものを世に送り出す機会が多く、いざ公開してみたら全く受け入れられないこともあります。そんなときは、キャリアに影響を与えたというと大げさですが、あんなに面白かった『Ultra Red』もすぐ打ち切られたしそういうこともあるよな、と切り替えて次の開発を始めるようにしています。

余談ですが作者の鈴木央先生はその後複数の雑誌を渡り歩き、少年マガジンで『七つの大罪』という漫画を大ヒットさせます。これも世間の評価に一喜一憂せず自分が良いと信じるものを作り続けた結果なのかなと考えており、そういったところもOSS開発において参考にしています。

【プロフィール】
セキュリティツールであるOSS「Trivy」の開発者。2019年にAqua Security社に同ツールの買収を受け、現在はイスラエルにある同社でセキュリティ系OSS開発に従事。温水洗浄便座という最高の発明を世界に広めたいと思っている。
GitHub:knqyf263 Twitter:@knqyf263

古川陽介が紹介
『サーバサイドJavaScript Node.js入門』

この本はおすすめの本として紹介しているわけではありません。もう既にだいぶ古いので現時点だとより新しくて現状の仕様に沿ったNode.js本があると思います。

自分はこの本をNode 学園祭 2012で購入しました。その時に著者からサインをもらい、Node.jsをもっと勉強しようという気持ちになったことを覚えています。その後著者の一人である大津さんからこの本のリーディングとNode.jsのご指導をいただく勉強会に参加し、結果として今の自分につながるような研鑽ができたと思っています。

実際にはTCPやTLSなどのネットワークの内部に深く関わるような話にも参加させていただき、自分の知識の浅さに打ちひしがれたこともあります。今では私も本や記事を書く側になり、少なからず指導する側にもなってきております。そういう自分のキャリアにつながる思い出の一冊です。

【プロフィール】
Japan Node.js Association 代表理事、Chrome Advisory Board。
GitHub:yosuke-furukawa Twitter:@yosuke_furukawa

松田明が紹介
『APIデザインケーススタディ』

「Rubyをキメると気持ちいい」という格言がある。プログラミング言語Rubyに備わる得も言われぬ開発者体験の心地良さを、Rubyの創始者であるMatz自らが少し「エモい」テイストで言い表したフレーズである。そしてこの本には、そんなRubyの不思議な効能の秘密を紐解くことができるヒントが記されている。

本書は、RubyのI/O、プロセス、時刻といった言語コアの比較的低いレイヤーのAPI設計の背景を、長年コア開発に関わってきた「中の人」の視点からドライな筆致で克明に記録した、貴重な資料である。本書を読み進めていくうちに、Rubyの「気持ちよさ」は決して偶然の産物や気分の問題ではなく、一つひとつのロジカルで現実主義的な判断の蓄積によって隅々まで行き届いたクオリティがもたらすものに他ならないことを読者は思い知らされる。そして、それぞれのAPIが練り上げられるまでに積み重ねられた思索や議論に費やされたであろう莫大な時間や労力を思って頭が下がるのだ。

もちろん、本書の対象読者はプログラミング言語処理系開発者というニッチな層だけではない。プログラミングという手段を用いて世の中の問題と戦う全ての人類にとって、本書を貫く妥協のない問題解決の姿勢は大いに目を開かれるはずだ。言葉を用いてコンピューターと人間の仲立ちをするプログラミングという営みには、その界面上で、コンピューターに対しては厳密に、しかし人間に対しては優しく、といった二面性が要求される。それこそがAPIのデザインなのだ。果たして我々は日々のプログラミングの中でこんなにも対象に真摯に向き合っているだろうか?これだけ誠実にユーザーの体験を想像できているだろうか?

【プロフィール】
Rubyコミッター。Ruby on Railsコミッター。kaminari、active_decorator、action_argsなど、数多くのOSS作品を手がけるライブラリ作家。地域Rubyユーザーグループ「Asakusa.rb」の主催者。世界最大級にして最高峰のRubyの国際カンファレンス「RubyKaigi」のチーフオーガナイザー。最後のRuby Hero。
GitHub:amatsuda Twitter:@a_matsuda

無職やめ太郎(本名)が紹介
『闇金ウシジマくん』

この書籍を読んで、ダークサイドの職業の恐ろしさを知りました。 特に「闇金でお金を借りるのは絶対にやめよう」と考えるようになりました。

キャリアに関して言うと「表の世界で働いていこう」と強く決意しました。 あれから15年、表の世界のエンジニアとして頑張れています。 今後もダークサイド・エンジニアにならないよう精進していくつもりです。

多少怖い上司がいても「ウシジマくんに出てきた人たちに比べればかわいいもんだ」と思えるようになったのも、この書籍を読んだメリットです。

お金は自分自身の力で稼ぎ、安易に借金をしない。 ウシジマくんの世界から学んだことを胸に今日も生きています。

【プロフィール】
株式会社ゆめみ所属のフロントエンドエンジニア。関西型言語を駆使した技術記事を執筆するのが好きです。
Twitter:@Yametaro1983

yoku0825が紹介
『MySQL 5.1 リファレンスマニュアル』

MySQL 5.1 リファレンスマニュアル

これは書籍ではありませんが、私がMySQLに専念し始めた頃の唯一の日本語の公式ドキュメントでした。その時点での最新MySQLは5.5だったので、当時から既に「時代遅れの日本語版」ではありました(とはいえ、MySQL 5.6の日本語版ドキュメントがリリースされるまでは、よくGoogle検索でも引っかかっていたと思います。同年代のMySQLerではお世話になった人も多いのではないでしょうか)。

通勤に使っていた地下鉄の中で、PDFでダウンロードしておいたこのドキュメントをずっと読み続けていました(当時は、地下鉄の駅間では携帯電話は圏外でした)。A4換算で1,700ページを超える大作ですが、(MySQL関連の書籍を買う数千円にすら困っていた当時の私は)最初から最後までを累計で3回程度読み流した覚えがあります。

お陰で私は「MySQLのことなら(実用的かどうかはさておき)ニッチなところまで含めて大体知っている」ところまでレベルを引き上げることができました。既に「MySQLで食べていく」という決意を済ませた後に出会った文書なので「キャリアそのものの方向を変えてくれた」というよりは「MySQLユーザーという枠の中で、今の自分の基礎となる部分の方向を決めてくれた文書でした(今でも私は自称「広く浅くタイプ」です)。

【プロフィール】
とある企業のDBA。30歳の頃にMySQLに魅せられて10年間スキルポイントをガン振りした結果、気がついた時には日本MySQLユーザ会副代表でMySQL部門のOracle ACE Proになっていたらしい。キャッチコピーはオラクれない、ポスグれない、マイエスキューエる。
Twitter:@yoku0825