【2024年度版】エンジニア1年目で読んでよかった技術書籍まとめ
はじめに
エンジニアになって1年目が終わるので、この1年間で読んだ本のうち良かった本を紹介します。
設計・アーキテクチャ・デザインパターン
Java言語で学ぶデザインパターン入門
GoFのデザインパターンの23個を本書では紹介しています。
23個のデザインパターンを1つずつ丁寧に解説しており、それぞれのデザインパターンを扱う上での例がとてもわかりやすかったです。
ただ、どこでどのデザインパターンを使うのかが実践してみないとわからない面もあるので、コードのリファクタリングと一緒にchatGPTにデザインパターンの壁打ちをしてもらうと知識が深まります。
エリック・エヴァンスのドメイン駆動設計: ソフトウェアの核心にある複雑さに立ち向かう
「ソフトウェアの核心にある複雑さに立ち向かう」をテーマとして、ソフトウェア開発を成功させるための手法「ドメイン駆動開発」の提唱者による書籍です。
一言で言うとわかりづらい..
何回か読み進めるうちに少しずつ分かるが増えてくるような本です。
第2部のモデル駆動設計の構成要素に関しては業務でも扱っていた内容ではあるので、入りやすかったですが、業務経験を培う中で、何度か読み返していくべき本だと思いました。
ドメイン駆動設計の本は以下の本の方が噛み砕いて解説されているのでわかりやすかったです。
ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本
Clean Architecture 達人に学ぶソフトウェアの構造と設計
ソフトウェアアーキテクチャの目的は、求められるシステムを構築・保守するために必要な人材を最小限に抑えることである。
保守性の高いコードを書くにはどうするべきか、SOLID原則やコンポーネントの扱いに関して解説されています。
オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方
オブジェクト指向設計の原則と実践方法を学ぶために、具体的なコード例や演習を通じて、柔軟で保守性の高いソフトウェアを設計する手法が解説されています。
オブジェクト指向の本は1冊は持っておいた方が言われたので、一番最初に学び始めた本がこの本です。
コーディング・リファクタリング
CODE COMPLETE 第2版 上 完全なプログラミングを目指して
業務でいつも指摘されることが網羅的に記されていて、かつ一番分かり易かったです。
設計の重要性やコーディングのテクニック、保守性の高いコードを書くにはどうするかなど、業務で必要なことが幅広く学べます。
上下合わせるとページ数は多いですが、定期的に見返して読みたい一冊です。
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック
これは最早必読書になっている気がしています。
以下の動画もコードを書く上で気をつけるべきこととして、具体的な例を用いて解説されており、どの事例の時にどこを気をつけるべきかのイメージがつきやすかったです。
プログラミング中級者になりたい人のためのクリーンコード入門
リファクタリング
リファクタリングとは何か?という視点から、どのような箇所をリファクタするべきかを不吉な臭いというワードに例えて、解説されています。
どのようなリファクタリングを行うべきかも具体例を交えて解説されており、辞書としての一冊として見返すために持っておきたい本です。
良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方
具体的なコード例を通じて、良いコードの書き方とソフトウェア設計の基本原則を学べます。保守性が高く、成長し続けるコードを書くためにはどうするべきかが勉強出来ます。
プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則
よいコードを書く上で指針となる前提・原則・思想が幅広く解説されています。
コードはシンプルに保つことの重要性、UNIX思想、YAGNIやDRYなどの原則などが幅広く知ることが出来ます。
UNIX思想に関しては、以下の書籍も良かったです。
UNIXという考え方: その設計思想と哲学
マインドセット・キャリア
達人プログラマー: 熟達に向けたあなたの旅
プログラマーがより良いコードを書き、効率的に作業し、プロジェクトを成功に導くためにどうするべきかが解説されています。自己改善、コードの品質向上、効率的な作業環境の構築、プロジェクト管理、チームワーク、柔軟なアプローチなど、幅広いテーマが解説されています。
世界一流エンジニアの思考法
一流エンジニアの思考プロセス、技術的スキルの磨き方、自己成長のための戦略など、とても勉強になりました。
自分の思考を磨くためにも必読書ですね。
CAREER SKILLS ソフトウェア開発者の完全キャリアガイド
技術スキルの向上からソフトスキルの重要性、キャリア戦略の構築まで、包括的に解説されています。
未来を見据えて今何をすべきか、視野を広げるためにも良い一冊です。
プロジェクト管理
プロジェクトのトラブル解決大全 小さな問題から大炎上まで使える「プロの火消し術86」
プロジェクトマネジメントにおけるトラブル解決のための具体的な手法と実践的なアドバイスを提供する一冊です。問題発見から解決、リスク管理、コミュニケーションの重要性など、幅広いトピックを網羅し、プロジェクトの成功に向けた総合的なガイドとなっています。
炎上中の案件にアサインされた時に読みました。知っておいた方がいい内容ですね。
Web技術基盤
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESSプラスシリーズ)
HTTP、URI、HTML、RESTといった基本的な要素について深く掘り下げて解説しており、Webの動作原理をしっかりと学ぶのに良い一冊です。実践的な知識と理論的な背景を兼ね備えており、Web技術の基礎から応用までを総合的に学ぶことができます。
言語
プロを目指す人のためのRuby入門
Rubyを触り始めるのにとてもわかりやすくて良い本です。
パーフェクト Ruby on Rails
Rails の基礎知識や、最新のプラクティスが詰まった良書でした。
Rails7系の最新には対応していないので別で勉強する必要がありますが、Railsらしいコードを書くための最初の一歩としてとてもわかりやすかったです。
PHPフレームワーク Laravel入門
業務でLaravelを扱う必要があったので、そのための参考書として読みました。
CSS設計完全ガイド ~詳細解説+実践的モジュール集
CSSを使ったウェブデザインの基礎から高度なテクニックまでを網羅的に解説した書籍です。CSSの設計と実装について深く理解し、効率的で保守しやすいスタイルシートを作成するためのCSSのベストプラクティスを学ぶことができます。
DB
SQL 第2版 ゼロからはじめるデータベース操作
SQLの基礎から応用までを体系的に学ぶための書籍です。
失敗から学ぶRDBの正しい歩き方
リレーショナルデータベースの設計と運用に関して、実際の失敗事例を通じて、効率的で保守性の高いデータベースを設計・運用するためにはどうするべきかが解説されています。
テスト
テスト駆動開発
テスト駆動開発は単なるテスト自動化ではなく、ユニットテストとリファクタリングを繰り返すことで、小さなサイクルを回しながら不確実性を制御し、継続的な設計の進化を実現する手法です。実例を通じて、このプロセスを学ぶことができます。
一回ではなかなか理解するのが難しい本でしたので、以下の本から噛み砕いて入っていくのが良かったです。
単体テストの考え方/使い方
デザイン
ノンデザイナーズ・デザインブック
デザインの基本原則を誰でも理解しやすい形で紹介されています。視覚的な例や実践的な演習を通じて、効果的なデザインの基礎が解説されています。
ダークパターン 人を欺くデザインの手口と対策
具体的なダークパターンの事例を示しながら、その手口がどのようにユーザーの行動を誘導し、利益を生み出すかが解説されています。
心理的要素をもとに、どのようにデザインを仕掛けていくのか。個人的に好きな本です。
オブジェクト指向UIデザイン──使いやすいソフトウェアの原理
タスク(やること、動詞)を起点としたUIと比較して、オブジェクト指向ユーザーインターフェース(OOUI)とは、オブジェクト(もの、名詞)を起点としてUIを設計する利点は何か、具体例を交えて解説されています。
知識として持っておくだけで、デザインが一新しそうな内容なので定期的に見返したい一冊です。
Docker
仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん
DockerとKubernetesの基本概念とその実践的な使い方について学べます。
セキュリティ
体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践
Webアプリケーションのセキュリティに関する包括的に勉強出来ます。脆弱性の原理とその対策を詳細に解説し、具体的な対策方法やセキュリティのベストプラクティスが解説されています。
マーケティング
起業の科学
アイデアの検証、ビジネスモデルの構築、プロダクト開発、マーケティングと顧客獲得、起業に必要な実践的な戦略やアドバイスが解説されています。
エンジニアである以上、自分の技術をどう資金に転換するのかを考えていくのが一生の課題とは思うので、その糧になる書籍だと思います。
ハイパワー・マーケティング あなたのビジネスを加速させる「力」の見つけ方
マーケティングの基本原則から高度なテクニックまでを網羅し、事例を交えてわかりやすく解説されています。
ビジネスを加速させるランディングページ最強の3パターン制作・運用の教科書
トップページのデザインを作成するときに参考にしました。
たった1ページのLPの中で、CVRを上げるための様々なテクニックが存在します。デザインの構成をどのように組み立てていくべきかとても勉強になった一冊でした。
まとめ
エンジニア1年目で読んだ本を紹介しました。
この記事で良い本に出会うきっかけが作れたら嬉しいです。
2年目も引き続きコツコツ頑張ろうと思います。
Discussion