SmartNewsのエンジニアがおすすめする、とっておきの技術書4選

f:id:smartnews_jp:20190626130529j:plain

ソースコードと向き合うとき、技術書は信頼できる地図となりえます。スマートニュースで活躍するエンジニアが宝物のように大事にしている技術書は、どんな一冊なのでしょう。4名のエンジニアに聞きました。

実は娘の名づけにも影響を与えていた一冊

f:id:smartnews_jp:20190626110327j:plain

永瀬 泰一郎(Nagase Taiichiro)

2015年12月に広告のサーバーサイドエンジニアとしてジョインしました。広告ユニットの改善に取り組んでいるうちにアプリのUX改善に目覚め、いまは記事を快適に表示するSmartモードのUX改善に取り組んでいます。

──そんな永瀬さんが選ぶ一冊がこちら。

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

  • 作者: Dustin Boswell,Trevor Foucher,須藤功平,角征典
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2012/06/23
  • メディア: 単行本(ソフトカバー)
  • 購入: 68人 クリック: 1,802回
  • この商品を含むブログ (140件) を見る

あえておすすめするのがはばかられるくらい定番中の定番ですが、手元に置いておきたいと思える本は? と問われたら間違いなく選ぶ一冊です。

エンジニアはコードを書くときだけではなく、チームや他の部署との意思疎通のためにも、言葉を過不足なく選ぶことが非常に重要です。

ここで重要なのが不足なく書くことはもちろんのこと、過剰に書くことの弊害に関しても語られていることです。 複雑な仕様や難解なロジックなどは、伝わらない可能性を考慮して冗長に説明してしまいがちですが、これはいわゆるコーディングにおける不吉な匂いに相当します。

簡潔に説明できないものは、理解されない。

この本は齟齬無く意思疎通するための言葉のリファクタリングにも言及している点で、仕事をスムーズに進める大切なエッセンスが詰まっています。

私にはまもなく3歳になる娘がいるのですが、名前はこの本の考えに沿って、

  • 誰でも読める
  • 誰でも発音できる
  • 誰でも聞き間違えない

を念頭に名づけました。名づけた当時は意識していたわけではないのですが、後になってこの本の影響もあったなと感じるくらい、自分の考えの基礎になっている一冊です。

書いてある内容は難しい話はひとつもなく、平易な言葉とユーモアあふれる挿絵がよい息抜きになり、リズムよく読み進められます。2時間もあれば読破できるので、いまさら読まなくてもなんとなく解ってるぜー、という方も是非手にとってください。必ず新たな気付きが得られると思います。

smartnews.workable.com

新卒プログラマー時代に大きな学びを得た一冊

f:id:smartnews_jp:20190626111059j:plain

大橋 英雄(Ohashi Hideo)

最近Androidチームのエンジニアリングマネージャーに就任しました。急速な勢いで拡大していくチームが結束してグローバルなプロダクト開発ができるよう、開発基盤や環境を整えメンバーをサポートしています。

──ちなみにどうしてスーツなんですか?

大橋 服を選ぶ手間を省くためですね。

──なるほど。そんな大橋さんの選ぶ一冊がこちら。

Cプログラミング診断室―うつくしく健康なプログラムのために

Cプログラミング診断室―うつくしく健康なプログラムのために

新卒でソフトウェア会社に入社したてのとき、先輩たちに早く追いつこうといろいろな本を読み漁っているときにこの本に出会いました。

この本は多くのソースコードを例にあげて、何がまずいか、どう改善するのがよいかをくだけた感じの文章で説明しています。コンピューターやC言語への理解を深め、読みやすいプログラムの書き方を学ぶことができます。

この本を読んだとき、同じ目的を果たすソースコードでも書く人の技術力次第で品質が大きく変わることに驚いた覚えがあります。改めて読み返すとやはり古さを感じてしまいますが、今読んでも面白い内容になっていると思います。

もともと学生時代からプログラミングが大好きで、他の人がソースコードを読んでもわかりやすいキレイなプログラムを書くことを心がけていましたが、この本によっていろいろな気づきを与えられ、プログラマーとして成長できました。

モバイルアプリ開発に携わるようになり使う言語も変わりましたが、この本で学んだことは今でも役に立っています。

smartnews.workable.com

普遍的な哲学を学べる約20年前のUNIX解説書

f:id:smartnews_jp:20190626111225j:plain

尾形 暢俊(Ogata Nobutoshi)

2015 年よりスマートニュースへ参画しました。現在、SRE の Engineering Manager に就任。各種運用の自動化・効率化、Incident Management から Postmortem までのフロー構築、インフラコストマネージメントなど、サーバーサイド全般の裏方業務を担当しています。(Tech Nightの登壇記事はこちら

──そんな尾形さんが選ぶ一冊がこちら。

UNIXという考え方―その設計思想と哲学

UNIXという考え方―その設計思想と哲学

50年近く使われ続けているUNIXというOSについて、その設計思想と哲学を分かりやすく解説している技術書です。技術書といいつつも、比較的汎用的なテーマで書かれており、技術者以外でも読める内容だと思います。この書では9つの定理と10の小定理を掲げて、UNIXが何を重視し、あるいは何を犠牲にしてきたのかを解説しています。

この本をおすすめしたい理由は、まずページ数がそれほど多くないことです。分厚い本はハードルが高いものですが、これはさっと読むことができます。しかも内容は濃い。約20年前の本なので、取り上げているハードウェアの記述などは古さを感じますが、その背景にある哲学は普遍的なものであり、今でも色あせない内容だと思います。そんな古い本でありながらも、Microservice Architectureの根底にあるような考え方について書かれていたりして、時代を超えて驚かされること請け合いです。ソフトウェアを作ること以外にも、例えばハードウェアの設計やドキュメントの作成にも、この本で語られている哲学は役に立つのではないでしょうか。

おそらくこの本を最初に読んだのは、仕事でLinuxを本格的に使い始めた2005年ごろだったと記憶しています。それまでは見よう見まねで、なんとなくこんな感じだろうというプログラムを書いていましたが、この本を読むことでプログラミングに対する意識が大きく変わりました。特に「スモール・イズ・ビューティフル」「一つのプログラムには一つのことをうまくやらせる」「効率より移植性」の3つの定理は、今でも必ず心がけていることです。また、普段使っているLinux・UNIXが何故そのように作られたのか、という背景にある思想・哲学を知ることで、より手に馴染むようになったと思います。恐らくこれは、他の製品についても同じようなことが言えるのではないかと思っています。

ソフトウェアエンジニア、特にLinuxなどのUNIX系OSを使っている人にはぜひとも読んでほしい一冊です。とはいえ、あくまで設計の方法論について書かれた本であり、UNIXという世界に閉じた内容ではありません。何かしらものづくりに関わる人なら、読んで損をすることはないと思います。

smartnews.workable.com

人生を変えた「小説」と、青春時代に夢中になった「雑誌」

f:id:smartnews_jp:20190626111323j:plain

紀平 拓男(Kihira Takuo)

JavaScriptまわりの開発をかれこれ20年近く続けております。現在はその知見を活かし、スマートニュースでフロントエンドエンジニアとしてJavaScriptによるアプリ機能の開発などを行なっております。(執筆を担当したスマQの記事はこちら

──そんな紀平さんが選ぶ一冊がこちら。

闘うプログラマー[新装版]

闘うプログラマー[新装版]

今回の企画、最初は「自分の人生を変えた技術書」というタイトルで本を紹介して欲しい、と聞いておりました。それで真っ先に頭の中に思いついたのは『闘うプログラマー』という本です。中学生のときにこの本を読み、そこに記述されている圧倒的な規模の開発の描写に一気に巻き込まれ、将来この業界で働きたいと強く思ったことを今でもはっきり思い出せます(写真で手にしている本は、その原著の『Showstopper!』です)。

しかしこの本は技術書ではなく小説です。技術書の範疇で自分のルーツになった書籍は何だろうか、と考えたところ、それは『マイコンBASICマガジン』、通称ベーマガであったことを思い出しました。すでに休刊になってしまったのですが、私が中学生の頃に毎月楽しみに読んでいた雑誌です。

ベーマガは、読者投稿のゲームプログラムが掲載されているのが一番の特徴でした。当時はほぼ全てのコンピュータに最初から「BASIC」というプログラミング言語が搭載されており、ベーマガのプログラムコードをそのまま打ち込むと自分のパソコンで多種多様のゲームが遊べました。

最初はゲームを楽しむために、意味も理解せずにコードを打ち込んでおりました。そうしているうちに「こうすればもっと面白くなるかも」とか「無敵にしてみよう」のように、ゲームの改造に手を出すようになりました。ゲームを遊びたいという動機が、知らず知らずのうちにプログラミングの学習に繋がっていたのです。

自分がJavaScriptの魅力に取り憑かれたのは2000年頃でしたが、そこでもベーマガの影響を強く受けています。BASIC言語はパソコンに標準搭載されなくなりましたが、一方でほぼ全てのパソコンにブラウザが搭載されるようになり、そのブラウザで動く唯一の言語がJavaScriptでした。JavaScriptでプログラムを書くと、インストールなしで世界中の人に使ってもらえるプログラムが書ける、というのが私がJavaScriptエンジニアを志した最初の動機です。

私の世代では、マイコンBASICマガジンの影響を受けてこの業界に入った人が多数おります。弊社マーケティング担当の西口は、以前ベーマガに自分の投稿したゲームが掲載されたらしく、個人的に大変羨ましく思っております(笑)。ベーマガが果たしていた、他人のコードを読み、自分で改造し、そして広く使ってもらう楽しみを伝える役目は、今はGitHub上などで展開されるオープンソース・ソフトウェアが引き継いでおります。今ベーマガ自体を入手する価値はありませんが、私がベーマガで経験した他人のコードを理解し改造する楽しみは、今でも自信を持っておすすめできます。

smartnews.workable.com

とっておきの一冊を知ると、その人の素顔が見えてくる

f:id:smartnews_jp:20190628115119p:plain

仕事の範疇を超えて、考え方や行動にまで影響を与える力のある本を紹介してもらいました。一冊一冊に、思い出や物語がつまっているんですね。とっておきの一冊を知ると、その人の素顔が見えてきます。スマートニュースではたらくメンバーに「とっておきの一冊」をおすすめしてもらうこの企画、第二弾も予定しているのでお楽しみに!

スマートニュース 採用情報