突然ですが、みなさん本はお好きですか。

ベーシックのwebエンジニア、@namitop です。
わたくしは、「本好きですか?」と聞かれたら、「まあまあ。」ぐらいのレベルの人間です。
最近、本好きの上司(@hasegawa)から勧められて、『本は10冊同時に読め!―本を読まない人はサルである!生き方に差がつく「超並列」読書術 』という本を読みました。
この本で、読書についてイメージが変わりました。
詳しい内容は今回話さないのですが、ざっくり言うと、
ただただ本を読まない人を罵倒する本です。(*この発言は個人の見解であり、所属する組織の公式見解ではありません)
めちゃくちゃ本を読んでるこの著者(元マイクロソフト社長)が、この本で、「多読して自分で色んな本から情報を取捨選択して自分のものにしたほうがいいよ」と言っていたので、
現在、自分史上最大に、本を読むモチベーションがあがっております。

ただ僕は本に対して審美眼がない。

本を読む上で難しいのは、本選び。
今は、よくあるまとめとかレビューとかを参考にしたり、
本好きな上司からおすすめを聞いて本を選んだりしているのですが、
これを社内の人に聞いてみたいと思い、社内エンジニアに向けてアンケートをとりました。

僕は卑しい気持ちでランキング形式にしました。

どこかで「日本人はランク付けが好きだ」というのを、僕は目にしました。
この記事が色んな人に届いて欲しい気持ちが僕にはあります。
なので、ビュー数のためだけに、日本人が大好きなランキングにしました。
アンケートの内容は「エンジニアとして好きな本ベスト3を選んでください」で、
1位にあげたものを3ポイント、2位を2ポイント、3位を1ポイント換算し、集計いたしました。

集計した上でのベスト3をこれから紹介いたしますが、おすすめの本が非常にばらけました。
第3位が同ポイントで3冊あるので、計5冊の紹介ですが、
ぜひお付き合いください。

【第3位】

第3位は3冊!

第3位1冊目は、『Rubyメタプログラミング』!

数回だけ業務でもちょっと触れて、熱が出そうになった、メタプログラミングの本がランクインでございます。
この本をベスト2位にあげた@mochizukikotaroさんに理由を聞いてみると、「(本のレベル感は?)正直難しいけど、Ruby初心者から中級者に上がりたい人には読んでほしい。(どのようなこと学べる?)Rubyならでは特徴に触れられる本で、言語としてのRubyの面白さを楽しめる!」と、おしゃっておりました。
メタプログラミングのイメージがsendで止まっていて、sendが色々しすぎて自分的には受けつけなかったので、
ちゃんと学ぶことはなかったですが、
まさかの3位になったので、読みたい気持ちが高まってまいりました。
たしかに一度調べた時、qiitaでメタプログラミングについての記事(ex: 『はじめてのメタプログラミング』)に触れたり、手元で試しに実行したりするのは楽しさを感じました。

第3位2冊目は、『Clean code』!

日本語訳の方のリンクはこちらです。
まったくもってこの本、ノーマークでございました。まったく読んだことも、内容も知りません。
どんな感じの本なのか調べてみたら、
海外の質問系サイトで「きれいなコードを書く上で最高の本は何ですか?」の質問に対して、よくこういうエンジニア向けのおすすめ本に出てくる『リーダブルコード』に並んで
、回答に挙げられていました。
ベスト1にあげていた@lenにおすすめの理由を聞いてみると、「(どんな内容?)『リーダブルコード』と似たような内容で、どうコードを書くか迷わないようにするための本。大学で初めて読んだ本だったけど、何回か改めて読んで何ができてないか時々復習してる。初心者のためのコードの書き方の型を覚えられる本」とのことでした。
かなり目次を見る限り、『リーダブルコード』と内容も似ていたので、
両方読んで、取捨選択して、自分なりの"良いコード"について考えるのもいいなあと思いました。

第3位3冊目は、『ソフトスキル』!

これまたあまり知らない本でした。

ソフトスキルはハードスキルと対になる言葉で、
10年後も食える「ソフトスキル」の鍛え方を参照すると、

「ソフトスキル」とは、コミュニケーション、語学力、リーダーシップ、ファシリテーションなどのスキルを指す。これまで日本では、ロジカルシンキング、マーケティングなどの「ハードスキル」が注目を浴びてきたが、今後10年は「ソフトスキル」の重要性が増してくる。

とのこと。
おそらく"エンジニア"にとってのソフトスキルについて書かれた本なのかなというぐらいの前知識で、
この本を、ベスト2位にあげた@FumiyaShibusawaさんに選んだ理由を聞いてみました。「(対象は?)駆け出しのエンジニア、新卒、独学で勉強し始めた人。(どのようなことが学べる?)具体的なコードの内容は書いてないけど、エンジニアとしてのキャリア作りや効率の良い勉強の仕方を学べる。特に『第3章: 学び方を学ぼう』の部分が面白かった!給与交渉とかの章とは、まああんまり自分にとっては・・・だったけど。」
この本の、目次を見てみると、エンジニアとしてのキャリアや学習だけでなく、お金や健康や恋愛についても触れていて、守備範囲が広すぎて、逆に気になっています。
伊藤淳一さんのブログ『【書評】SOFT SKILLSを読んでプログラマとしてのキャリア設計を見直そう』でも紹介されていたり、2年前くらいから話題になってる本なんですね。
 

【第2位】

第2位は、『オブジェクト指向設計実践ガイド 〜Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方〜』!

読んだことないですが、名著の『Practical Object-Oriented Design in Ruby』の翻訳版のようです。
社内LTでいかにこの本が良いかについてLTをするくらいお気に入りな@tkhrにベスト1位に選んだ理由を聞いてみると、「(本のレベル感は?)Rails・Rubyが普通に使えるようになってきた人におすすめ。(好きなところは?)読む前後でオブジェクトとメソッドの関係のイメージが180度変わった。よりオブジェクト指向を正しく認識できるようになるところが好き」とおっしゃっていました。

【第1位】

第1位は、『リーダブルコード』!

ど定番!
エンジニアおすすめ本ランキング系の記事で常連の『リーダブルコード』が弊社でも1位でございました。
知らない人のために説明をすると、
理解しやすいコードを書くためのお作法集のような本です。
変数やメソッドの名前付けからコメントの仕方のような、他の人のコードを読むときに地味に辛くなってくる部分から、
ロジックの単純化やわかりやすいテストの書き方などもカバーしています。
この本には、他人が読んでもわかりやすいコードになる tips が詰まっています。
しかも、実行しやすいサイズ感のtips も多いので、読んだ直後に具体的な実行に移しやすいのも良いところでございます。
例えば、コードレビューをするシーンなどで、
「名前付けやロジックがわかりづらいけど、まあ頑張ったら読めないことないから、指摘するか迷うな・・・、自分しかわかりづらいと思ってないかもしれないし・・・。」と思うようなシーンはありませんか??そんな時に、こうしようと言い切るための理由付けとかにも使えたりします。
今回のアンケートで『リーダブルコード』は、他と大差をつけて1位になりました。読んだ直後から活用できる、学んだことが実践しやすいおすすめの本でございます。

集計一覧

いかがでしたでしょうか。
いくつかはまったく知らない本のご紹介だったので、
拙い部分はあったかもしれませんが、
みなさまの読書のきっかけになったら幸いです。

最後にアンケートで集めたおすすめの本の一覧ご紹介いたします。

エンジニアとして好きな本ベスト3

技術書以外もokとしたところ、『スラムダンク』などもありました。
僕は『スラムダンク』より『バガボンド』派です。
本じゃない『Rubyリファレンス』もあげられていたり、
定番からそうでないものまで、選出した理由を聞きたくなるのもいくつかあるので、
続編はもっとそこにフォーカスしたい気持ちが湧いてきました。

番外編:もうエンジニアとか関係ないけどオススメの本

おまけの番外編として、エンジニア関係ないけどオススメの本たちも聞いてみました。
『天才たちの日課』とか気になる・・・

本を読もう

お付き合いいただきありがとうございました。楽しんでいただけたなら幸いです。
『ソフトスキル』はすぐ読もうかと思うくらい、気になっております。
今回、調査してみて、収穫だと思ったのは、
弊社は、ベトナムや中国からの採用もしているので、
日本のエンジニアがよく読んでいる本以外の情報( 『CleanCode』 とか )も得られることを気づいたのが収穫でした。
今回は、エンジニアという素晴らしく、広いくくりでアンケートをとりましたが、
「エンジニアが選ぶRailsについての本!」とか、もっと絞ってみても楽しいかもしれないなあと思ったので、
もし気が向いたら、また投稿するかもしれません。しないかもしれません。

酸素と海とガソリンと沢山の気遣いを浪費するぐらいなら、本を読もう。
@namitopでした。ありがとうございました。