見出し画像

レベルアップを目指す Webエンジニアにお勧めしたい このすばらしき技術書たち - 私的14選+α 2022年版

こんにちは。池内です。今回はタイトルのとおり僕がお勧めしたい技術書を厳選したリストを共有します!

元ネタ

このリストは、僕が CTO をしている当社の開発チームに向けて書いた蔵書リストが元ネタです。

社内 Notion データベースより

社内向けの内容なのでここでは割愛するのですが、難易度のレベル感や業務遂行上の必読フラグがついていて、必読本はチームでコラボレーションするために最低限必要だと思うから読んでね、という意図をもってリストを整理しています。

対象読者

対象読者について明確にしたいところですがじつはよく分かっていません。記事のタイトルはちょっとそれっぽく書いてみたものの僕自身がシニアぶるつもりもぜんぜんありませんし…。なので、初学者のかたがステップアップのために参考にしていただいても嬉しいですし、技術がじゅうぶん身についているかたが復習のために読み返してみたり、はたまた誰かを教育するために活用いただけるのであればそれはそれで嬉しく思います。

なお、Webエンジニア、といいつつ今回は RDBMS などのデータベース関係の技術を取り扱っている書籍については諸般の事情により紹介の対象外としています。こちらはまた別の機会に!

記事タイトルから誰もが予想するであろう「リーダブルコード」級の定番書はあまりにも面白みがないため Appendix に収録、としました。とはいえ良書を掲載しているので結局定番書が並ぶわけですが、独断と偏見によるリストアップということで異論反論あるかと思いますが、何卒ご容赦ください!

前置きが長くなりましたが紹介をはじめます。

オブジェクト指向と設計

現場で役立つシステム設計の原則

個人的にはイチオシな一冊です。OOP の領域に限らず、シンプルで見通しのよいコードを書くためのテクニックが散りばめられています。値オブジェクトやファーストクラス・コレクションといったすぐに使えるテクニックにはじまり、複雑なロジックに見通しをよくする方法、後半ではデータベースの設計にも解説は及びます。

オブジェクト指向でなぜつくるのか

OOP の理解を深めるうえでお世話になった本 No.1。2021年に第3版が刊行されています。この書籍の出発点として、巷にある典型的なオブジェクト指向の説明は抽象的すぎむしろ混乱を招いている(意訳)という著者の問題意識があります。動物がスーパークラスで、、といった比喩から始まる OOP の説明にピンとこないかたは是非本書を手に取って見て欲しいです。

かんたん UML入門

UML は伝統的なモデリングのプロトコルですが、GitHub に Mermaid の機能が取り込まれたりと、2022年においても世界中で活用されている様子。そんな UML の基礎を学べる一冊です。

ソフトウェアアーキテクチャの基礎

「ソフトウェアアーキテクト」という職種は、世界中で最高の職業のリストの上位に入っている

ソフトウェアアーキテクトの基礎 1章 イントロダクションより

という言葉で始まる本書は、ソフトウェアのアーキテクチャについてどのように選定し、どのように運用、引いてはチームをどのように進化させていくか、というトピックを扱う一冊です。レイヤードアーキテクチャ、マイクロサービスアーキテクチャ、のような ○○アーキテクチャについても解説を挟みつつ、「アーキテクチャ特性の評価」として、デプロイ容易性やパフォーマンスといった13項目の内容を五段階評価している点が挑戦的です。

ソフトウェアテスト

テスト駆動開発

ユニットテストといえばの定番書籍。狭義の TDD にとり組まなかったとしても、テストの大切さを早い段階から身につけておくのはよいことだと思います。

はじめて学ぶソフトウェアのテスト技法

ユニットテストを書く習慣はついても、何をテストすればいいの? というのはまた別の問題。そんなときにはソフトウェアのテストについて体系的に学べるこの一冊がお勧めです。境界値テスト、デシジョンテーブルテストなど、ユニットテストを書くうえでも役に立つ知識が得られます。

セキュリティ・暗号技術

Webブラウザセキュリティ

Webセキュリティについて Webブラウザを軸に解説を進める本書。Same-Origin Policy や CORS などのクロスサイトに関する知識、Cookie とセキュリティなどを丁寧に説明しつつ、Webブラウザのプロセスに着目した解説も盛り込まれています。

暗号技術のすべて

装丁からはアンダーグランドな香りを感じるかも知れませんが、いたってまともに、セキュリティや暗号についてかなり網羅的に取り扱った書籍です。ハッシュ、公開鍵/秘密鍵、署名などなど、具体的なアルゴリズムの種類やその特徴の解説が掲載され、辞書としても使える構成になっています。巻末ではブロックチェーン技術についての言及もあります。

ドメイン駆動設計

エリック・エヴァンスのドメイン駆動設計

人によってはバイブル、人によっては難書な DDD を学ぶうえでの必読書、通称『エヴァンス本』。読むモノの技術力によってその重さを変えると噂されています(嘘)。ごく個人的には、DDD の前に OOP、特にポリモーフィズムに関する理解度と習熟度を高めておくと、書籍の内容がすんなり入ってくるようになると思っています。

ドメイン駆動設計入門

『エヴァンス本』に返り討ちにあった人々が最初につどう初心者の館的な一冊(?)。コマンドラインツール開発に適用するには、MVC フレームワークに適用するには、といった実用的なノウハウも学べます。

ドメイン駆動設計モデリング/実装ガイド

DDD の普及につとめておられる @little_hand_s 氏 2022年の新作です。DDD を実践するにあたって生まれるよくある悩みや疑問にも回答しており、少し慣れてきた頃に読み返してみても学びがあります。

セキュア・バイ・デザイン

「安全なソフトウェア設計」という副題から察するに、Webアプリケーションのセキュリティの話かと思いきや、思いのほか DDD な本書。変更しやすいコード、見通しのよいコードこそが(セキュリティ的な意味での)セキュアさを確保する、ということを学べる一冊です。

アルゴリズムとデータ構造

新・明解Pythonで学ぶアルゴリズムとデータ構造

かつては『アルゴリズムとデータ構造』というと C言語 や Java を例にした書籍が定番でした(?)が、ここ数年で Python を題材とした書籍が増えてきています。そのなかで、シンプルながら分かりやすく書かれているこの一冊をピックアップです。

アルゴリズム図鑑

アルゴリズムってなんぞや? というところから始める場合、図解が豊富な『アルゴリズム図鑑』がお勧めです。図鑑の名にふさわしく、ソートや探索などの定番アルゴリズムがビジュアルとともに解説されています。

Appendix

Appendix では、定番過ぎて敢えて言及する必要がないであろう書籍や、コメントを書ききれなかった書籍をリストアップします。

よりよいコードを書く

HTTP・Web

セキュリティ

続・DDD & ソフトウェアアーキテクチャ

コンピュータサイエンス、数学

プログラマの人生

Python 入門

JavaScript / TypeScript

終わりに

この本がリストにないなんて!と思われたかた。それは僕が読んでいないか、積ん読のままになっているか、うっかり言及を忘れているかのいずれかであって当然のことながらその書籍が優れていないといったわけではありません。この本もいいよ、という一品をご存じのかた、ぜひ @iktakahiro までメンションください!

リストは気が向いたタイミングでアップデートするかも知れません。

現場からは以上です。


お読みいただいてありがとうございます。