歩いたら休め

If the implementation is easy to explain, it may be a good idea.

【本】1年前の自分におすすめしたい4冊の本

エンジニアリングの技術も乏しいまま、新卒で入社して1年ちょっとくらい経ち、後輩も入ってきたので、「この本を読んどいて仕事に役立ったな/もっと早く読んでおけばよかったな」という本をまとめておくコーナーです。

うちの会社では自主性を重んじられるのはいいのですが、 自力で勉強しなければいけないことが多い割に、ノウハウの共有が少なく感じていました。 きちんと仕事をするために何から勉強すればいいのかよくわからないまま過ごしている時間も長かったです。

人によって勉強の方法はいろいろとあると思うのですが、 私の場合、ひとまずいろいろな本を乱読していました。 そんな中から、「この本は読んどいてよかったな」と思うものを4つ挙げてみました。

Joel on Software

といいつつ、まずはエモーショナルな本です。これは優秀なRubyistから薦められた本です。

よくプログラマー向けの記事で薦められる本の一冊であるため詳しい話は省きますが、

【読んだ本】同期のRubyistに薦められた自己啓発本 - 歩いたら休め

『Joel on Software』はちょっとシニカルな論調で。「プログラマー主導だと楽な機能しか実装しない」という耳の痛い話や、「顧客は自分の欲しいものを理解していない」「下っ端でも何かを成し遂げる方法」とか、面白くて役に立ちそうな話が多いです。

など、エンジニアリングの仕事で陥りやすい罠を予習できる本です。 同じような目的では、『プログラマが知るべき97のこと』も読み返す度にいろいろと気付かされる素晴らしい本です。

Joel on Software

Joel on Software

また、同期のRubyistから薦められた本の中では、『UNIXという考え方―その設計思想と哲学』も素晴らしい本でした。

彼はよく「これって一つの部品が責務を持ちすぎてUNIXの哲学に反してるよね」みたいなことを口走るので、この本を読んでないとコミュニケーションが取れなかったと思います。

WEBを支える技術

私は元々大学の研究でシミュレーションのためにプログラミングはしていたのですが、 いわゆるWEB系の技能とか言葉などは知らなかったため、自分で勉強する必要がありました。

一応入社時に技術研修はやったものの、正直あまり役に立つものではありませんでした。 (さすがにfor文とかは書けるし、知らない部分はテキストが言葉足らずだったので自分で本読んだほうが早いし…)

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

バッチ処理書いたり、ちょっとしたAPIを作ったりくらいの仕事がほとんどなので不勉強な部分ですが、 とりあえずまっさらな状態から読むならこの本かなと思います。

Land of Lisp

コードをシンプルに分かりやすく書くために『リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)』を勧める人は多いのですが、 私の場合、何冊か関数型言語(LispHaskell)の本を読んでいたことが、読みやすいコードを書く能力を上げるのに役立ったかなと思います。

なぜLispHaskellかというと、私は大学時代からPythonを書いていたため、その影響元の言語でとっつきやすかったというだけの理由です。 肌に合う言語&本を勉強すればいいかなと思います。

Land of Lisp

Land of Lisp

関数型という言葉にはいろいろな意味があるようで難しいですが、 「データを変換する小さい関数をたくさん作って、その関数を組み合わせて全体の機能を作る」ようなプログラミングができるようになりました。

また、Lispはものすごく柔軟な言語であるため、 それを知っておくことで、Rのパイプ演算子のような、プログラミングの未知の概念を知った際のキャッチアップも早くなった気がします。

逆に、PHPに関する本はハズレが多かった印象です。 あの言語は後付けで機能を継ぎ足し継ぎ足ししているので、PHPを勉強してもPHPの関数に詳しくなるだけで、 プログラミングの本質的な能力はそれほど上がらない気がします。

解決!空き家問題

私の勤める会社では不動産向けのサービスを作っているため、 社長さんや企画の人が言っている話を理解したり、的外れなものを作ってしまわないようにしたりするために、不動産を勉強する必要がありました。

そんな中、一番勉強になったのが次の本です。

解決!空き家問題 (ちくま新書)

解決!空き家問題 (ちくま新書)

詳しい内容は下にまとめてあります。

kiito.hatenablog.com

読んでみると、普段社長さんが「こういうことやりたい」って言ってることの元ネタというか、著者の中川寛子さんが言っていることをビジネスの立場で解決しようとするなら、ああいうことやりたがるよなーって感じの印象を受けました。

また、不動産業者はもちろん、Airbnbなどの新しい民泊サービス、地域活性を目指す地域、親から相続を受ける人へのアドバイスなど、住まいに関わる色々なステークホルダーの話が出てきます。

そのため、住まいに関わりのある人は、誰が読んでも勉強になる本だと思います。(「住まいに関わりのある人」って日本在住全員になりそうですが、それもおおげさではないです)

同じような目的であれば『2時間で丸わかり不動産の基本を学ぶ』という本も素晴らしかったです。Amazonのレビューを引っ張ってきました。

不動産を取引するときには必ず登場する業者さんの論理を、とてもわかりやすく紹介しています。 業者さんを味方につけるにしても、敵として戦うにしても、相手の手の内を知ることは重要です。 わずか250頁の小さな本ですが情報の密度は驚くべきレベル。

素晴らしいのは、単なる制度解説ではなく、実務的な感覚まで盛り込まれている点です。 とくに価格設定の考え方と売買当事者の心理については興味深く読みました。 なるほど〜と目から鱗が落ちること頻りでありました。

また、小説なので毛色は違いますが、『狭小邸宅 (集英社文庫)』も面白い本でした。将来どうしようというダウナーな気持ちになりたいときにおすすめです。

まとめ

ここに挙げたような本を読んで、ひとまず可もなく不可もないレベルで仕事はできるようになったように思います。

ただし、私は

  1. 目の前で困っていること、分からないことを潰すために勉強していることが多かったので、勉強に時間がかかりそうな難しそうなこと(長期的に見ると必要になりそうなこと)を勉強できていない。
  2. バッチ処理や簡単なAPIの実装など、「そこそこきれいなコードを書く」以上の技術を求められることが少なかった。
  3. 部署異動も経験して、実装云々より、仕様のキャッチアップに苦労することのほうが多かった。 (今も一部苦労してる)

ような人なので、その点差し引いて考えてください。

もうちょっと、面白いものを作れるように、本当に必要そうなものだったら上司に主張したり、うまく立ち振る舞ったり、そういうことができるようになる必要も感じています…。とりあえず、部署で作ってるプロダクトで、最適化とかいろいろやって手を広げられないかと考えています。