自己紹介と目的
- バックエンドの方が得意な自称テックリード
- オープンロジという物流ベンチャーで技術的負債の解消のミッションに向き合っています
- 前職はSansanで大規模データを取り扱うAPIサービスの開発をリードしていました
- それ以前は、日立でPjMやインフラ構築からキャリアをスタートさせ、イノーバでソフトウェアエンジニアに転向しました
同僚に「人生を変えた本って何?」と聞かれて、整理する流れになりました。ただおすすめ本を紹介するのではなく、ランク付けすることで、自分の興味や価値観が整理されることを目的としています!
ランキングのルール
かなり主観的です。
- 技術、ソフトスキル、キャリアの観点でそれぞれへの影響度を相対的に星0〜3個で付けて、星の総数でランク付け。星0個は泣く泣くなので、いい本ではあります。
- 星が同数なら読んだ年が古い方を優先
1点目を具体化すると以下のとおり。
観点 | 意味 |
---|---|
技術 | 技術力がどのくらいレベルアップしたか。実践回数や応用場面数、自信が付けばつくほど高得点。 |
ソフトスキル | リーダシップやマネジメント、汎化できる思考方法や問題解決スキルがどれくらいレベルアップしたか。応用範囲の広さや、それらの考え方や行動がリプレイされるほど高得点。 |
キャリア | キャリア選択や仕事に向き合うマインドセットにどのくらいインパクトを与えたか。モチベーションを上げてくれたり、仕事でうまくいくようになった体験が多いほど高得点。 |
第10位 「Efficient MySQL Performance」
観点 | 影響度 |
---|---|
技術スキル | ★☆☆ |
ソフトスキル | ☆☆☆ |
キャリア | ★☆☆ |
読んだきっかけ
「High Performance MySQL」が敷居が高いので、初級からの橋渡しとなることを目指して書かれた本です。この訴求が自分に刺さったので、先にこちらを読んでみることにしました。
学んだこと/その後への影響
これは実際にデータベースロックに関するインシデント調査に役に立ちました。
インデックスロックやセカンダリインデックスの仕組みがイラスト付きで詳細に解説されていて、かなり理解が進みました。MySQL公式リファレンスマニュアルは文字だけで分かりづらいですしね。
MySQL v8を前提としつつも、部分的にv5との違いにも触れられているので、幅広い環境で役立ちます。他にも、メトリクスを取得するためのクエリ例が豊富で、スニペットとしても役立ちました。
基礎知識の共有にもなるので、チームで読書会とかお勧めします。
第9位 「達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ」
観点 | 影響度 |
---|---|
技術スキル | ★☆☆ |
ソフトスキル | ☆☆☆ |
キャリア | ★☆☆ |
読んだきっかけ
大学のデータベース論の単位を取ったし、IPA情報処理技術者試験のデータベーススペシャリストを持っていますが、新卒でSEになってからSQLをほとんど書かずに7年間過ごしました。
freeeさんの採用面接を受けたときに、JOIN句を書くテストが出て、おっかなびっくりするまでレベルが落ちました。
Sansanで本格的に業務でSQLを使うようになってから、脱初心者するためにAmazonで探して手に取りました。
学んだこと/その後への影響
結果、この本で確実にSQL中級者になれます。
もともとレベルが低かったので、第1章のCASE式を習得しただけで完全に満足しました。聞いたことしか無かったウィンドウ関数にも慣れ、NULLの3値論理などの入門書には無い話題にもワクワクして楽しかったです。
これによって、SQLのレビューも自身をもって取り組めるようになった点で、非常によいステップになりました。
著者のミックさんのpostとおりの体験をしました。
第8位 「BIG THINGS どデカいことを成し遂げたヤツらはなにをしたのか?」
観点 | 影響度 |
---|---|
技術スキル | ☆☆☆ |
ソフトスキル | ★★☆ |
キャリア | ★☆☆ |
読んだきっかけ
キャリアの中でプロジェクトマネジメントをする機会が多かったですが、日立から転職して以降、考え方をアップデートできていませんでした。そこで、話題だったこの本を手に取りました。
学んだこと/その後への影響
「ゆっくり考え、すばやく動く」という原則が、プロジェクトマネジメントの真髄だと説く本です。世界中の大規模なプロジェクトのデータに基づいて構築された原則なので、特徴的で説得力があります。
アジャイル開発やPoC、MVPというキーワードが流行したことで、「まずは行動」することが美学だと感じることがありました。そこに一石を投じています。他にも色々と心当たりのあるアンチパターンを指摘してくれ、名言がたくさんあります。
この本から、早く決めたい衝動を抑えて、考え抜くことを大切にしようと改めました。頭でっかちにならないようにバランスを取ることも重要ですが、適当にやっつけた計画にならないように気をつけています。
第7位 「検索システム ― 実務者のための開発改善ガイドブック」
観点 | 影響度 |
---|---|
技術スキル | ★★☆ |
ソフトスキル | ★☆☆ |
キャリア | ☆☆☆ |
読んだきっかけ
Sansanで情報検索技術を多用したサービスを開発していたのですが、理論的なバックグラウンドを持ち合わせていなかったために、体系的に学ぶ必要がありました。
最初はElasticsearchのドキュメントを読むところから始めたのですが、特定の製品知識に加えて一般的な情報も知りたくなり、この本を手に取りました。
ちなみに、この本を知ったのは著者の一人であり、Luceneのコミッターでもある打田さんから採用スカウトを受けたことがきっかけでした。
学んだこと/その後への影響
この本で、転置インデックス、ポスティングリストの基本的な仕組み、TF-IDFなどの指標に基づくランキングの仕組み、検索結果の評価の方法、クエリ拡張・緩和などの精度を上げるテクニックなど、実務で完全に応用できる豊富な知見を得ることができました。
IR(情報検索)の日本語書籍は学術的なものが多く、2020年以降の出版でこの本ほどソフトウェアエンジニア向けに実践的な立場で書かれている本は無さそうです。
この本のお陰で、名著の「情報検索 :検索エンジンの実装と評価」に移行することができました。
検索技術はWebアプリケーションにとって普遍的なテーマであり、機械学習、生成AIのようなホットなトピックでもコアとなる技術です。これほどまでに応用の効く基礎技術は無いんじゃないかと思うので、多くのバックエンドエンジニアにおすすめの書籍です。
第6位 「データ指向アプリケーションデザイン―信頼性、拡張性、保守性の高い分散システム設計の原理」
観点 | 影響度 |
---|---|
技術スキル | ★★★ |
ソフトスキル | ☆☆☆ |
キャリア | ★☆☆ |
読んだきっかけ
これは国内外どこでもお勧めされている本ですね。私もSansanに入ってからお勧めされて読みました。バックエンドエンジニアと名乗るなら、これは読んだほうがいいやつです。
学んだこと/その後への影響
個人的には7章のトランザクションを擦り切れるまで読みました。MVCCというやつもこれで理解した気がします。更新ロストや書き込みスキューの問題も、これで学んでアプリケーション設計に応用したりと、かなり実践的に役立ちました。
あとは、Elasticsearchが自動でシャードをリバランシングしてくれない理由も納得できました。
皆さんはこの本について、具体的にどこらへんが好きなところですかね?教えて下さい!
第5位 「ユーザーストーリーマッピング」
観点 | 影響度 |
---|---|
技術スキル | ★☆☆ |
ソフトスキル | ★★☆ |
キャリア | ★☆☆ |
読んだきっかけ
師匠である伊与田さんと、「良い設計」について話していた際にお勧めしてもらって読みました。
学んだこと/その後への影響
結論、これはプロダクト開発をする人は全員読んだ方がいいと思う本です。第0章だけOKです。ここだけで、言いたいことが全部詰まってます。
特に私のように伝統的なウォーターフォール開発上がりから今どきのプロダクト開発に携わったような人間は必読です。開発マインドとその手法の大きな違いに衝撃を受けます。
何となくアジャイル開発やってます、MVPって一番小さいスコープでしょ?くらいの感覚な人も読んだ方がいいです。
エンジニアに閉じずにどうやって良い設計をし改善をしていくのか、ユーザーの課題を解決する方法の本質は何なのか、これらのトピックに向き合った良書は他になく、これが手元にあると安心で、プロダクト開発に立ち向かえる良きパートナーとなる本です。
あと、チケット管理する上で、ストーリーって結局どの単位で切ればいいのかわからない、というよくある疑問に対しても、改めて整理するのに役立ちます。
ところで、ここに書かれているユーザーストーリーマッピングを実践できている組織ってどのくらいあるんですかね?どちらかというと、PdMの方が知っておいて欲しいノウハウなので、どこまで浸透して、実験され、評価されているのかすごく気になります。
第4位「戦略を実行できる組織、実行できない組織」
観点 | 影響度 |
---|---|
技術スキル | ☆☆☆ |
ソフトスキル | ★★★ |
キャリア | ★★☆ |
読んだきっかけ
日立でのSEとして要件定義や基本設計、Sansanでデータ分析やアルゴリズムPoCなどの経験を通して、企画、提案、探索的調査、課題発見やプロジェクトマネジメントを多く経験させてもらい、アウトプットの質に対しては一定の評価を得てきました。
ただ、自分には致命的な欠点がありました。それは実行力です。自分の弱みは短期間で成果を出すことでした。
Sansanでの最初の2年ほどは、マネージャーからは成果のスピード、突破力に関するフィードバックが続いてました。
自分でも典型的な完璧主義で、”Done is better than perfect.”という考えも頭では理解しつつも、なかなか成果には出ませんでした。
多方面の書籍、記事で、まずは戦略を立てて、手段ではなく目的と課題を深堀りして、やることを極限まで減らしてROIが高い施策を実行する、だとか、MVPを特定してそれを市場で検証するだとか、そういったことはよく語られています。
でもちょっと待って。
実際にそれを最速でやり切るにはどうすればいいんですか?通常業務がある中で、どうやって改善をやりきるんですか?
やり切るための実行力についてはいい教えがなかったように思ってました。
そんな中、Amazonでウィンドウショッピングしているときに、この本のタイトルに惹かれて読み始めました。
学んだこと/その後への影響
通常業務がある中では、以下の4つの規律を実行することで改善が進むと説いてます。
- 第1の規律:最重要目標にフォーカスする
- 第2の規律:先行指標に基づいて行動する
- 第3の規律:行動を促すスコアボードをつける
- 第4の規律:報告責任のリズムを生み出す
例えば、第3の規律に関して「勝っているのか負けているのかが分かれば、自然と気持ちは入る。」という話が紹介されています。
スコアボードとして、OKR達成率、プロジェクト進捗率、システムダッシュボードなど、ちゃんと見える化しようという実践です。
「知ってるよそんなこと」という人もちゃんと実践してますか?自分だけじゃなくて、チーム内で見える化して、みんなそれを見てますか?という痛いところもちゃんと突いてくれる本です。
第1, 2の規律についても、ここまで先行指標を第一級概念の地位に上げてフレームワーク内に埋め込んだ点で良いなと思いました。OKRもこれに近い考え方ですが、KPIではなく、先行指標というキーワードなのがイケてます。
Four Keysとかは賛否両論ありますが、あれは生産性の先行指標だと私は解釈しています。つまり、最終的に達成したい目標ではないのは同意ですが、その先の目標達成を予測するための指標にはなり得るよね、という点で良い指標だと思います。
デプロイ頻度が重要じゃないサービスなんだよね、という場合も変更障害率や修復時間などの一部の指標は、最重要目標を予測するかも知れないケースもあります。もっと言うと、Four Keys自体に対しても別の先行指標があるはずです。このように、何が先行指標なのか見極めることを第2の規律は重視します。
Four Keysを持ち出すと論争が起きそうなので、改めて定義を確認してみました。やはり成果の予測と書いてましたね。よかった。
私はこの規律をできる限り実践しています。BIG THINGSで学んだように「ゆっくり考え」て、「すばやく動く」ためにこの規律を応用してリズムを作って、スコアを確認していくようにしています。
🥉第3位『モチベーションの心理学 「やる気」と「意欲」のメカニズム』
観点 | 影響度 |
---|---|
技術スキル | ☆☆☆ |
ソフトスキル | ★★★ |
キャリア | ★★★ |
読んだきっかけ
ひと昔前のキャリアの考え方に、VSOPというものがあります。
20代はVitalityで、30代はSpecialityで、40代はOriginalityで、50代はProfessionalで仕事をしろという考えです。
今ではそれぞれが若年化したり、オーバーラップしている気がしていますが、この考え方は好きです。
というのも、Vitalityで乗り切れるのって確かに20代の専売特許だなという実体験と一致しているからです。
30代になってからは、どこをSpecialityとしてスキルアップするのか。
次のフェーズでは何が自分のOriginalityを形成するのか。
こうキャリア設計を考えたときに、そもそもモチベーションをどう維持するのか、という問題に直面しました。
モチベーションって波がありますが、モチベーションってコントロールできるのだろうか?
そんな素朴な疑問からモチベーションをより深く知りたいと考え、Amazonで探してきました。
学んだこと/その後への影響
この本から学んだことだけで、一つの記事になるくらい得るものが大きかったです。
これを読んで、得体のしれないモチベーションについて冷静に見れるようになった、という意味ではコントロールできているのかも知れません。
一方で、下記のような考え方もまた真だとも思います。
以下のようにモチベーションというキーワードだけでも説明できないことがいっぱいあります。
奥が深いですね。
🥈第2位「プログラマのための文字コード技術入門」
観点 | 影響度 |
---|---|
技術スキル | ★★★ |
ソフトスキル | ☆☆☆ |
キャリア | ★★★ |
読んだきっかけ
SE時代に銀行システムの開発をしていました。新しい要件として、エンドユーザーの氏名に使われる外字1をいくつか利用したいとのことでした。
はしご高を始めとした文字を扱うのに何人ものエンジニアが会議をし、ソフトウェアを選択して、運用を設計していくその様子を見て、業務システムの難しさと奥ゆかしさを感じました。
SJISって何なの? というレベルだった自分が、その議論を完全に理解できないストレスを解消するためにこの本を手に取りました。
学んだこと/その後への影響
この本によって、以下のような疑問が解決しました。
- フォントと文字コードは別物であること
- Windows端末と勘定系ホストとの間の文字コードの違いによる文字化けがなぜ起きうるのか
- 全角と半角の違い
- ASCII文字とは何か
- UTF-8とUTF-16の違い
当たり前に使っていた文字という概念をコンピューターで実現するためのカプセル化された技術を見て非常に感動しました。文字コードの変遷の複雑さにも驚きました。
技術について、これほど感動した記憶が後にも先にもないです。
この本によって、難しい印象の文字コードが怖くなくなり、エンジニアレベルがぐんっと上がりました。
当時のメモ。文字コードの歴史、変遷が複雑怪奇すぎる。
🥇第1位「察しない男 説明しない女 - 男に通じる話し方 女に伝わる話し方」
観点 | 影響度 |
---|---|
技術スキル | ☆☆☆ |
ソフトスキル | ★★★ |
キャリア | ★★★ |
読んだきっかけ
これは恋愛の本じゃないです。れっきとしたビジネスに活かせるソフトスキル本、というかコミュニケーション術、処世術もしくはマインドセットを教えてくれる本です。
実際、第3章「結婚/家庭編」では、「家庭では女が社長、男は部下」と言い切ってます。
完全にビジネス書です。サラリーマン向けの本です。
家庭も会社も抽象化すればコミュニティです。コミュニティ内で起こる認識のズレ、目標設定、課題解決にどう挑むのかというマインドセット集です。
自分は自分で頭は良い方で仕事も卒なくこなしてきたつもりでしたが、家のことや妻のこととなると、てんでだめでした。
夫婦喧嘩もうまく収められません(収めるという考え自体がもうダメです)。仕事では、議論が行き詰まったらいい感じにファシリに回れるスキルがあっても、まったく通用しない、というかその術を使うと確実に死にます。
という状況を少しでも改善したいと思っていたところ、書店で偶然出会いました。
学んだこと/その後への影響
この本を読んで、解けない課題はない!自分が解決しないといけない!という幻想に取り憑かれていたことを自覚しました。
世の中には、解かなくてもいい問題があるんです。
寄り添って、共感してはじめて到達できる世界があるという考えを教えてくれた本でした。
仕事でも解決しなくてもいい問題があると思っています。具体的にいうと、以下のようなパターンが存在します。
自分が解決しなくてもいい
- ただただ話すことで、その人自身で自己解決する場合がある
- 他に適任を探す
今解決しなくてもいい
- 時間が解決してくれることがあります
- 「また明日話そう」と言って、根気強く向き合うことで別の形で解決することや、問題自体が消えることがあります
直接的に解決しなくてもいい
- 真っ向勝負じゃなくて、周辺から変えていくことで、問題も変わることがあります
- 例えば、その問題も重要だけど、まずはできるこっちから解決してみよう、とアプローチを変えたり、いいソリューションを問題発生箇所に最初に適用するのではなく、別のうまくいっている組織やシステムで実験して様子を見たりなど。
そこで解決しなくてもいい
- 場所を変えましょう。
- 非同期コミュニケーションと同期コミュニケーションを行き来したり、クローズドな場(1on1)とオープンな場(チーム振り返り)を行き来したり、オフィスからカフェに移動したりなど。
そもそも解決できる問題なのか考えた方がいい
- 解決できないものに時間を使うのはもったいないです。解決できない(目標を達成できない)と分かったらすぐに方針転換してみましょう。
- 当事者間で「これは解決できないね」と認識が揃うだけでも十分です
課題感を感じても、このような思考で一旦冷静になってみることで、いい感じに物事が動くことを実感しています。これはソフトスキルというかメタスキルですね。
まとめ
今回は直近のキャリアを支えてきた技術書を紹介しました。
改めて確認すると、10冊中7冊は2021年以降に読んだ本でした。今のペースで本を読み始めたのも2020年以降だったので、比較的新しい書籍のラインナップになってしまいました。
今の考えやスキルがここ数年の体験で構成されていると考えると、また数年後には変わってそうですね。
その時の振り返りとして、この記事を自分で読み返したいと思います。
みなさんの体験も聞いてみたいと思いました。読んでいただきありがとうございます!
本の読み方に困ったら
積ん読を解消したエピソードを紹介していますので、よければご覧ください!
-
外字とは使用する文字コードに載っていない文字を、文字コードの空き領域に独自に割り当てたもの。 ↩