[2024年]出会えて良かった書籍まとめ@25冊
はじめに
2024年が終わろうとしているので、この一年で読んだ書籍を振り返る。特に良かった技術書籍・ビジネス書籍の25冊を紹介する。
手を動かす形式の技術書、読み物形式の技術書、ビジネス書籍、番外編の順で紹介する。
「出会えて良かった本の紹介」ということで、ハンズオンで1周完読した本、ハンズオンはまだだが一通り目を通した本、序盤中盤の段階で「これは神」となった本が混ざっている。積読は除外した。
筆者は新卒からWebアプリの脆弱性診断を3年行っており、今夏から開発業務を行うようになった。今年は開発未経験からの駆け出しという挑戦の年だった。そのため開発初心者向けの本が多い。
また各項目の内容は、筆者の主観を多分に含むことをご留意いただきたい。
技術書(ハンズオン)
1. 武器になるHTML
全424頁。今年の1月に読んだ本。開発に足を踏み入れた人の、最初の一歩として大変おすすめ。
CSSやJSを使わず、HTMLのタグの使い方に特化した説明になっている。例題と演習問題があるので、理解が定着しやすかった。
2. 1冊ですべて身につくHTML&CSSとWebデザイン入門講座
第2版が最新版。全320頁。あまりにも有名な本。HTMLとCSSだけでお洒落なカフェサイトを作れる。
サンプルコードが丁寧だが、HTMLに自信がない方は、1の本などでHTMLタグを一通り書く練習をしてから読むことをおすすめする。
CSSの基本的なプロパティがまとまって載っているのが便利。ColorHuntのような、色彩の組合せの例も表形式で載っている。
初版を読みブログに投稿した数か月後に、第2版が発売されたので、第2版も一通り動かした。
第2版については著者様のブログにて、変更点や書籍の内容が紹介されている。
3. 独習JavaScript 新版
全576頁。4月に読み、何かと参照したバイブル書籍。「初級者から経験者まで」をモットーに、網羅的に丁寧な解説がされている。練習問題や章末問題が豊富にあるため、理解が定着しやすい。ES6以降のモダンな記法もすべて解説されている。
初心者には難しい概念については、「初級者はスキップ可能」ラベルがついているので、一周目は遠慮なく飛ばさせてもらった(実際の開発で重要な概念が目白押しだったが)。
Chapterが1-17まであるので、気になる章をピックアップして読むもよし、気合で通読するもよし。
個人的には、JavaScriptの文法学習は、正直これ一冊で割とどうにかなると思う。もう一度時間を取って、ゆっくり2周目を走りたい。
「実際にWeb開発でJavaScriptをどう使うか?」については、2と同じMana様著の「1冊ですべて身につくJavaScript入門講座」が詳しい(筆者も持っているが未完読)。
もしくは、React/Vue/AngularなどJSのフレームワークを使うのであれば、そちらの学習を直接進めていけばいいと思う。
4. フロントエンド開発のためのセキュリティ入門
正式名称は「フロントエンド開発のためのセキュリティ入門 知らなかったでは済まされない脆弱性対策の必須知識」。全264頁。
CORSやXSSなどフロントエンドのセキュリティ概念や攻撃の仕組みが詳細に解説されている。
Node.jsを使ったハンズオン形式で検証できるので、SOPやCORSの制約の仕組みが理解しやすかった。
フロントエンドエンジニアの方や、Webセキュリティに足を踏み入れた人は必携の一冊だと思う。
(勉強会で輪読しやすい分厚さである。またWebセキュリティといえばでおなじみ、通称「徳丸本(全688頁)」と併せて読むのもおすすめしたい。)
5. 実践Next.js ——App Routerで進化するWebアプリ開発
全368頁。Next.js14に対応している。AppRouterを始め、Next.js固有の仕組みを基礎から丁寧に解説されている。「Next.jsのディレクトリ構成がわからん」「パスについている[]
は何なんだろう」「Server ComponentとServer Actionsって何?」となっている方に、おすすめしたい。
前半は基礎解説で、後半では旧NextAuth(現在はAuth.js)のOAuth認証や、PrismaのDBを使ってSNSサイト風アプリを作る。
Chapterが細かく分かれているので、1日1-2章ずつと決めて、こつこつ読み進めやすい。
この1冊と公式ドキュメントを組み合わせたら、Next.jsの開発は一旦進められる。
6. 実務で使えるメール技術の教科書
正式名称は「実務で使える メール技術の教科書 基本のしくみからプロトコル・サーバー構築・送信ドメイン認証・添付ファイル・暗号化・セキュリティ対策まで」。全304頁。
読み物として読めるが、メールサーバの構築方法も解説されているため、自分でメールサーバを構築することもできる(筆者はラズパイでメールサーバを立てたいと思いつつ、なんだかんだで今年が終わろうとしている)。
SPF、DKIM、DMARCなどの仕組みも詳細に解説されている。メールのプロトコルや認証の仕組みを知りたい人におすすめしたい。
7. 7日間でハッキングをはじめる本
正式名称は「7日間でハッキングをはじめる本 TryHackMeを使って身体で覚える攻撃手法と脆弱性」。全312頁。
TryHackMeというセキュリティ(特にハッキング)の学習プラットフォームを使って、初心者でも楽しくハッキングの学習が行える。
タイトルの「7日間」の通り、1日目~7日目の演習を想定した7章構成になっている。個人的には3章のBLUE(Eternal blue攻撃が体験できるルーム)が好き。易しく丁寧な説明と、可愛いイラストで楽しく通読できる。初心者へのセキュリティ学習の門戸を広げた良書。
今年の9月に一周走って感想ブログを書いた。思いの外、多くの方に記事を見ていただけて、嬉しかった。
8. フロントエンド開発のためのテスト入門
正式名称は「フロントエンド開発のためのテスト入門 今からでも知っておきたい自動テスト戦略の必須知識」。全320頁。
途中まで読んだ段階だが、12月中に読み切りたいのでここで紹介する。UT、E2Eなど各種テストの基礎やコードの実装方法について解説されている。Next.jsのアプリが対象なのがありがたい。ビジュアルリグレッションテストについて言及されているのもありがたい。
Jest,Storybookを使ったテストや、フロント開発でのテストコードについて学びたい方におすすめしたい。
9. 図解 コンピュータアーキテクチャ入門
第3版が最新。全176頁。
大学生・高専生といった、学生さん達の講義用に書かれた教科書。コンピュータアーキテクチャの本については何冊か講義本を見てみたが、この本が一番解説が易しかった。全14章構成。
ハンズオンというよりは、説明の後ろに練習問題がついているので、ノートやPCのメモ帳に回答していく方式。この本を終えたら「新・標準プログラマーズライブラリ RISC-Vで学ぶコンピュータアーキテクチャ 完全入門」等の本で、より理解を深めるのもいいかもしれない。
10. 仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん
全320頁。図解が非常に丁寧。Dockerの仕組みを直感的に理解できるし、コマンドの書き方の説明が分かりやすい。全8章構成のうち、1-5章が基礎で、6-8章が応用的な内容になっている。8章ではk8sを扱っている。1周通読し、基礎編まで手を動かしたっきりなので、今冬の間にもう一度応用編も込みで読み直したい。
11. 新しいLinuxの教科書 第2版
全448頁。Linuxのコマンド大全。ls,cat,cp
辺りのよく使うコマンドから、awk,sed
のテキスト処理、シェルスクリプトまで幅広く説明されている。
「Linuxの黒い画面が怖いです!」という方には、とりあえずこの1冊を渡しておけばある程度コマンドを使えるようになると思う。SSHのリモートログインが、メインの章に載っていないことには注意。
数年前に買った初版は1周通読したが、ハンズオンはChapter12以降に到達しなかった。(毎日少しずつ読み進めて、ちょうど3日坊主ならぬ数日坊主で途切れるのがこの辺なのである。)
何度も読み直そうとしている間に第2版が発売されたので、最初から読み直している。
12. ハッキングAPI
正式名称は「ハッキングAPI―Web APIを攻撃から守るためのテスト技法」。全432頁。
序盤は座学形式で、中盤からAPIのラボ環境を構築して偵察や攻撃で遊べる。
序盤のAPIの仕組み、脅威モデリングや脆弱性の説明だけでも、読む価値が十二分にあると思う。(ここで満足して数日坊主になり、未だに完読できていない。)
API設計や実装をすることが増えたので、また読みたいと思っている。
情報が分厚く、目を通すだけだとイメージがつきにくいので、ハンズオンでじっくり学びたいところである。
技術書(読み物)
13. リーダブルコード
正式名称は「リーダブルコード―より良いコードを書くためのシンプルで実践的なテクニック」。全260頁。なぜかKindleに日本語版がない。
エンジニア必読と言われて久しい本。「変数名ってどうつければいいだろう」「読みやすいコードって何かな」とリファクタリングで迷いだしたときに読むと、内容がとても刺さる。
「getの命名は軽い処理の関数だけにして」「下位の処理は外に出して」「変数名は対象が分かるように書いて」など、設計あれこれ以前に気を付けることで、コードの見通しがぐっと良くなるアドバイスが詰まっている。
14. アーキテクトの教科書
正式名称は「アーキテクトの教科書 価値を生むソフトウェアのアーキテクチャ構築」。全272頁。
13番のリーダブルコードと併せて、駆け出しエンジニアをはじめとする全エンジニアの方々におすすめしたい。SOLID原則やデザインパターン、クリーンアーキテクチャなど、設計の原理原則やアーキテクチャについて広範かつ丁寧に解説されている。この1冊を読むことで、技術力の高いエンジニアが何を考えて作っているかが少し分かるようになる。エンジニアとして知っているべき共通認識や制約について知れるのはとても大きいと思う。新人ほど読んでほしいと、新人ながらに思う一冊。
15. Web技術の基本第2版
正式名称は「イラスト図解式 この一冊で全部わかるWeb技術の基本 第2版」。全200頁。
見開き構成で、左が説明、右がイラストの形式で統一されている。そのため実質100頁くらいの勢いで読める本。イラストはフルカラーでわかりやすいし、説明も丁寧である。
1番のHTML本がWeb開発ハンズオン形式本の第一歩だとしたら、こちらはWeb開発の読み物部門の第一歩だと思う。初版は入社当時に何度も繰り返し読んでいた。第2版になり読みやすさはそのままに、情報がより充実した内容になっている。
HTTP通信、データ形式、Webシステムの運用などWebシステムの全体像をつかみたい方に非常におすすめ。
16. IT技術者を目指す人の情報セキュリティ入門
全190頁。コンパクトにまとまっており、短時間で読み進めやすい。
この内容をより掘り下げていくと、マスタリングTCP/IP 情報セキュリティ編や、情報処理安全確保支援士の資格テキストにの内容になる。
「情報セキュリティ」で一般に括られる概念をざっと知りたい人におすすめ。
17. ソフトウェア開発現場の「失敗」集めてみた
正式名称は「ソフトウェア開発現場の「失敗」集めてみた。 42の失敗事例で学ぶチーム開発のうまい進めかた」。全288頁。
ロボットアームを作る架空の開発案件で開発段階、レビュー段階など各フェーズごとの失敗事例を学べる。
ソフトウェア開発のアンチパターンを知りたく手に取ったが、自分がまだまだ知らない(直面したことがない)事例も先に知ることができたので良かった。開発経験が浅い人が読むと学びになり、開発経験が豊富な方が読むと、頭痛と胃痛が引き起こされそうな本だと思う。
18. SQLの絵本 第2版
正式名称は「SQLの絵本 第2版 データベースが好きになる新しい9つの扉」。全208頁。
絵本シリーズを何冊か買って読んでいたので、代表してSQL本を記載している。C,Java,JS,Python,Linux,コンピュータの仕組みなどテーマごとに本が出されている。イラストと平易な説明を合わせた見開き構成の本で、特に深く考えずに楽しく読むことができる。文法解説本の前や言語学習の最初に、概要理解の用途で読むのを勧めたい。
19. ハードニングファン★リファクタ
野溝のみぞう氏による頒布本。全68頁。Hardening競技会の非公式ファンブック。筆者は2023年の競技会に参加した。初参加で何をすべきかが分からなかったときに、2023年版のファンブックに大変助けられたので、今年も読ませていただいた。(今年は競技会へ参加していないが、イベント参加有無に拘わらず、ファンブックが出たらGetするのがファンというものである。)
物理本の初版は、きらきらと輝く装丁になっている。
Hardening競技会への選考を突破し、参加が決定した方には、ぜひ一読いただきたい本。
20. OAuth2.0を使うためのチュートリアルガイド
全94頁。NextAuth(Auth.js)の使い始めに、OAuth認証が分からなすぎて途方に暮れていた時に、貸してもらった本。94頁だが内容の分厚さは遥かに分厚いと思っている。OAuth認証自体が専門用語がよく出る技術なので、少しずつ理解しながら読む必要がある。
[追記]
この本は2019年刊であり、続編にあたる書籍がAuth屋さんのブースにて、頒布されている。
↓今からOAuthを学びたい方には
「雰囲気でOAuth2.0を使っているエンジニアがOAuth2.0を整理して、手を動かしながら学べる本[2023年改訂版]」がおすすめ。
21. Webブラウザセキュリティ
正式名称は「Webブラウザセキュリティ ― Webアプリケーションの安全性を支える仕組みを整理する」。全224頁。「ブラウザのセキュリティをどう担保するか?→プロセスの分離と論理的な隔離が必要。→隔離の境界はどう定義すればいいのか?」といったように、順を追ってSOPやCORS、XSSの仕組みが解説されている。。一ページの情報量が分厚い本だが、2章まで読むと、CORSの仕組みや、なぜ設定を慎重にする必要があるか?の理由が分かる。
セキュリティエンジニアは勿論、フロントエンドエンジニアの方々にもお勧めしたい一冊。
22. Webを支える技術
正式名称は「Webを支える技術―― HTTP,URI,HTML,そしてREST」。全400頁。2010年発売。
Web技術の仕組みや設計指針について書かれている。HTTPのヘッダやメソッド自体の特性や、利点・欠点・安全性などを詳細に解説されている。初心者にはやや難しい内容だが、診断でHTTPリクエストと3年向き合った身としては、「そう、こういう情報を知りたかった…!」というエッセンスが詰まっているように見える。じっくり読み進めたうえでまたレビューを書きたい。
23. [改訂新版]プロになるためのWeb技術入門
全528頁。14年ぶりの大改訂で話題になった本。今年の11月下旬に発売された。初版より大幅に分厚くなった。
まだ序盤しか読めていないが、コード例やコラムが豊富で図解がわかりやすい。Web技術の始まりや発展の歴史を丁寧に紐解いて説明されている本という印象がある。どうしても自身の開発開始時点の時代の技術が起点になりがちで、歴史には疎くなりがちなので、この手の解説本が大変ありがたい。
こちらもじっくり読み進めたうえで、レビューを追記したい。
ビジネス書籍
今年に新規で読んだビジネス書籍はさほど多くなかった。自分の好きな本を繰り返し読むことが多かった。ビジネス書籍はKindleで読むことが多い。
24. 他者と働く
正式名称は「他者と働く「わかりあえなさ」から始める組織論」。全200頁。
「自分たちと対立する相手には、それぞれ価値観に基づく解釈(ナラティブ)があって、そのナラティブの溝に橋を架ける手段が対話である」という主題で、組織論が語られている。
入社当初はナラティブの概念を理解できず何度か途中で挫折したが、「セキュリティ診断と開発」という2つの立場を経験することで、ナラティブの存在を知覚でき、本を通読できた。
巻末まで読むとタイトルの重みを実感する。自分のキャリアイメージを考えるうえで重要な本となった。
エンジニア以外の社会人の方にもぜひおすすめしたい本。
25. 継続する技術
全224頁。博士と主人公の物語ベースで、習慣を継続するための取り組みが語られる。
物語がゆるくて楽しく読み進められる。目標のハードルを下げて設定すること、例外を甘く見ず対処すること、できなさそうな日には代わりに何か小さな取り組みをしておくことなど、「当たり前だけど、だいじなこと」が紹介されている。かつて自身が習慣化に失敗したときにはできていなかったことが多くあり、習慣を継続する仕組みを見つめなおすきっかけになった。
番外編(NOT紙本)
紙の書籍ではないが、大変お世話になったWebの本やUdemyの動画講座を紹介する。
サバイバルTypeScript
TypeScriptで困ったら何かと参照している。まだまだ使いこなせていない記法も多い。すべて読み通すというよりは辞書用途で見ている。
OWASP ASVS v5.0
セキュリティ面の判断の根拠に困ったら、何かと参照している。診断時より開発時の方が頻繁に参照している。セキュアな開発を推進していきたい。
React入門講座
講座名は「【最新ver対応済】モダンJavaScriptの基礎から始める挫折しないためのReact入門」。作成者はじゃけぇ氏。全7時間。
3のJS本を読破した後、React特有のJSX構文に頭を抱えていたので、動画講座が大変ありがたかった。簡単なアプリ作成を通して、JSX記法、propsによる受け渡し、ReactHookについて学ぶことができる。7時間と長すぎないボリュームなので、Reactを始めたい方に是非お勧めしたい。
GitHub講座
講座名は「Git: もう怖くないGit!チーム開発で必要なGitを完全マスター」。作成者は山浦 清透氏。全5.5時間。開発に行くうえでGitの操作を一通り習得しておこうと思い、受講した。解説資料の図が豊富で、Local, Staging, Remote環境の挙動の違いをイメージしやすかった。図解のスライドはPDFでもらえるので、たまに見返している。
AWS講座
講座名は「AWS:ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得」。作成者は山浦 清透氏。全11時間。
前述の講座と同様、開発に行くうえでAWSの操作を習得しておこうと思い受講した。VPC→EC2→Route53→RDS→EC2...といったように、順を追ってAWSサービスを試すことができる。
受講が完了すると、マネジメントコンソールの操作は怖くなくなっているので、AWS触ったことがない方には是非お勧めしたい。
最後に
こうして振り返ると、1年間での成長を感じられてよかった。完読した本も、途中まで読んだ本も、読んだ分は裏切らずに知肉になっていることを実感できた。
物理本の23冊を写真に収めると、自分の興味関心のある分野や特徴が見えてきて、面白いと思った。何年か継続して写真を比較すると、色々と発見がありそうだと思う。
振り返る量が多かったが、楽しかったので、来年以降にもまた投稿したい。
Discussion