Webエンジニアを目指す人の必読書15選【初心者が基礎を学ぶ】

  • 2020.04.28

Webエンジニアに転職、または目指される方が多いかと思います。そこで今回は僕が新人Webエンジニアになるために読んだ書籍をご紹介します。

TABIPPOのWebメディア(TABIPPO.NET)はwordpressで構築されているため、html、css、phpといった基礎的な言語を習得すればいいかと思いきや、サーバー移転やデータベース構築(まだ途中)に遭遇し、技術の幅がどんどん広がりました。

技術を学ぶほど終わりがなく、一生勉強だなと月並みな感想を抱きましたが、諸先輩のみなさん「体系的に学ぶべきはこの順番で」「この本まだ読んでないの?やる気あんの?」など叱咤激励をお待ちしてます。

 

インターネット基礎

Webを支える技術

目次
第1章 Webとは何か
第2章 Webの歴史
第3章 Webのアーキテクチャスタイル
第4章 URIの仕様
第5章 URIの設計
第6章 HTTPの基本
第7章 HTTPメソッド
第8章 ステータスコード
第9章 HTTPヘッダ
第10章 HTML
第11章 microformats
第12章 Atom
第13章 Atom Publishing Protocol
第14章 JSON
第15章 読み取り専用のWebサービスの設計
第16章 書き込み可能なWebサービスの設計
第17章 リソースの設計

Webに関わる基礎技術を学ぶために読みました。実践のないまま読み進めていたため、なるほど!だからこうなっていたのか、というアハ体験はありませんが、Webの成り立ちと歴史について学びました。

先輩エンジニア曰くmicroformats、Atom、Atom Publishingの部分についてはやや横道なので軽く読む程度で良さそうとのこと。

 

マスタリングTCP/IP 入門編

目次
第1章 ネットワーク基礎知識
第2章 TCP/IP基礎知識
第3章 データリンク
第4章 IPプロトコル
第5章 IPに関する技術
第6章 TCPとUDP
第7章 ルーティングプロトコル
第8章 アプリケーションプロトコル
第9章 セキュリティ

さくらVPSからAWSへサーバーを移転する際に、IPアドレスって何?DNSって何のためにやるの?とつぶやいていたら勧められた本です。IPアドレスについて知りたいだけなら、第4章のIPプロトコルを読めばわかりますが、第1~2章のプロトコル全般に関する基礎知識が勉強になりました。

ネットワークエンジニアを目指すなら入門書にしかならないでしょうが、Webエンジニアも基礎的な部分は理解すべきだと思った領域でした。

 

リーダブルコード

目次
第一部 表面上の改善
第二部 ループトロジックの単純化
第三部 コードの再構成
第四部 選抜テーマ

先輩エンジニアにコードの書き方を直されることが増えて来たので、「綺麗なコードと汚いコードの違いってどうやったら分かりますか?」と聞いたら、リーダブルコードを読むように勧められました。

「コードは他の人と未来の自分が簡単に理解できるようになっているべき」という考えをキーとして、読みやすいコードを書くための方法が紹介されています。

正直、コードを簡単に書く方法は経験不足のために実感が伴わない部分もありましたが、自分の意図を伝えるために「コード欠陥やテスト結果」をコメントするという部分は参考になりました。

 

7つの言語 7つの世界

目次
第1章 はじめに
第2章 Ruby
第3章 Io
第4章 Prolog
第5章 Scala
第6章 Erlang
第7章 Clojure
第8章 Haskell
第9章 全体のまとめ

PHPを習っていく中で、どれどれ他の言語はどんな感じなんだろう、と興味を持って手に取った一冊です。型付けモデルやプログラミングモデルなどを理解せずに読んだので、正直半分もわかっていない。複数の言語を実際に書けるようになったら、再読しよう。

 

アジャイルサムライ – 達人開発者への道

目次
第Ⅰ部「アジャイル」入門
第Ⅱ部 アジャイルな方向づけ
第Ⅲ部 アジャイルな計画づくり
第Ⅳ部 アジャイルなプロジェクト運営
第Ⅴ部 アジャイルなプログラミング
第Ⅵ部 付録

ウォーターフォール開発と比較して、万能感を持って語られるアジャイル開発ですが、決してそんなことはありません。アジャイル開発の手段やテクニックではなく、考え方も紹介しているので、様々な現場に転用できるのが強みの書籍です。なお、本書はKindle版も出ていますが、書籍版を買ったほうが読みやすいです。

 

UI/UX

IAシンキング

目次
Chapter1 IAというスキル
Chapter2 情報分類とメニューの最適化
Chapter3 サイトストラクチャの分類
Chapter4 ナビゲーションパターンと用法
Chapter5 ユーザー行動と画面設計
Chapter6 ワイヤーフレームの設計
Chapter7 ケーススタディ

情報アーキテクチャ(Information Architecture)について書かれた本です。UI考えるときに仮説を立てきれなかったため、基礎的な知識を習得しようと思い一読しました。

情報を整理するプロセスを理解することで、確証を持ってUIの提案をすることができます。Webデザイナー、Webディレクターは必読。

 

デザイン

ノンデザイナーズ・デザインブック

目次
1.ジョシュアツリーの悟り
2.近接
3.整列
4.反復
5.コントラスト
6.復習
7.カラーを使う
8.おまけのチップス&トリック
9.活字(と人生)
10.活字のカテゴリー
11.活字のコントラスト
12.さて、わかりましたか?
13.クイズの答え
14.この本で使った書体

プロデザイナーでなくたって、かっこいいデザインをしたい!という帯の通り、バナーやアイキャッチ画像、チラシなどをちょっとでもかっこよくしたい!と思って購入しました。

良いデザインを作るためのルールと実例が紹介されているので、デザインの意図、デザイナーの意思を感じることが少しできるようになりました。

 

セキュリティ

体系的に学ぶ 安全なWebアプリケーションの作り方 第2版

目次
1. Webアプリケーションの脆弱性とは
2. 実習環境のセットアップ
3. Webセキュリティの基礎 ~HTTP、セッション管理、同一オリジンポリシー、CORS
4. Webアプリケーションの機能別に見るセキュリティバグ
5. 代表的なセキュリティ機能
6. 文字コードとセキュリティ
7. 脆弱性診断入門
8. Webサイトの安全性を高めるために
9. 安全なWebアプリケーションのための開発マネジメント

現在では、アプリケーションをスクラッチ(0から開発する手法)で作るエンジニアは少ないと言われています。フレームワークやライブラリを使う限りはセキュリティ対策が含まれています。ただ、本格的な開発を進めるにあたっては、カスタマイズ部分で独自にセキュリティ対策を織り込むことも。

本書は日本語で書かれたセキュリティ対策についての書籍としては最良なので、まずは一読を。

 

php

よくわかるPHPの教科書

目次
プログラム入門
PHPの準備
PHPの基本
データベースの基本
実用的なプログラムの制作

 

MySQL

実践ハイパフォーマンスMySQL

目次
1章 MySQLのアーキテクチャと歴史
2章 MySQLのベンチマーク
3章 サーバーのパフォーマンスのプロファイリング
4章 スキーマとデータ型の最適化
5章 インデックスによるパフォーマンスの向上
6章 クエリのパフォーマンスの最適化
7章 MySQLの高度な機能
8章 サーバー設定の最適化
9章 オペレーティングシステムとハードウェアの最適化
10章 レプリケーション
11章 MySQLのスケーリング
12章 高可用性
13章 クラウドでのMySQL
14章 アプリケーションレベルの最適化
15章 バックアップとリカバリ
16章 MySQLユーザーのためのツール

さくらVPS上で動いていたサイトの表示スピードが急激に悪化したため、調べながらMySQLの設定を変更していたのですが、なかなか解決せず。MySQLがそもそも何なのか勉強すれば糸口が見つかるかもと思い購入しました。はじめてのオライリーです。

 

Apache

Apache 実践

目次
第1章 Apacheの概要
第2章 Apacheの導入
第3章 Apacheの基本設定
第4章 拡張モジュール
第5章 ロギング/パフォーマンスチェック/パフォーマンスチューニング
第6章 Apacheのセキュリティ対策
第7章 Apacheの大規模運用
第8章 ApacheのWebDAV機能
第9章 Apacheのコンテンツフィルタリング
第10章 Apacheでトラフィックやコネクションを制御する
第11章 Apacheでユーザーホスト認証

上記の実践ハイパフォーマンスMySQLと同じくサーバーチューニングのために購入しました。主に第5章のパフォーマンスチューニングを参考にしながら、prefork MPMをチューニング。各種項目は理解したけれど、結局チューニングの運用方法は確立できませんでした。

 

Amazon Web Services

Amazon Web Services パターン別構築・運用ガイド

目次
Chapter1 AWSの基本
Chapter2 AWSを利用する
Chapter3 パターン別構築例
Chapter4 AWSのセキュリティ
Chapter5 管理と運用

TABIPPO.NETのサーバーをさくらVPSからAWSに変更するにあたって、先輩エンジニアが構築と移設をしてくれて、僕自身はRoute53にドメインを移行したぐらいです。

このままじゃ、いざという時に困る!と危機感を覚え、AWSのサービスを一通り把握するためにAmazon Web Services パターン別構築・運用ガイドを読みました。

 

Github

Githubの教科書

目次
第1章 こんにちはGit、はじめましてGitHub
第2章 これだけはマスターしたいGitHubの基本機能
第3章 実践! リポジトリの作成からcloneまで
第4章 実践! 複数デザインの提示から採用まで
第5章 実践! Pull Requestを使った分担作業からマージまで
第6章 快適に共同作業するためのドキュメント作成と進捗管理
第7章 現場で使える! 便利なGitHubテクニック

【2016年上半期】TABIPPO.NETで実装して良かった6つのことでも紹介したGithubについての書籍。コマンドの説明だけではなく、なぜそのコマンドを実行する必要があるのかを理解できます。

いまのところは、エンジニアの2名のみがGithubを利用していますが、ゆくゆくは開発に関わるメンバー全員にGitの使い方を理解してほしい。issueとか。

 

データベース

達人に学ぶDB設計

目次
第1章 データベースを制する者はシステムを制す
第2章 論理設計と物理設計
第3章 論理設計と正規化
第4章 ER図
第5章 論理設計とパフォーマンス
第6章 データベースとパフォーマンス
第7章 論理設計のバッドノウハウ
第8章 論理設計のグレーノウハウ
第9章 一歩進んだ論理設計

TABIPPO全社でのCRMを改善するために、旅大学の登録者データベース、PAS-POL ECサイトの購入者データベース、TABIPPO.NETの新規データベースを統合しようとしています。

ついては、データベースって何?というところから始まりました。まずは、正規化を理解しER図を書くために1冊読みました。

 

その他

A/Bテストの教科書

目次
Chapter 01 A/Bテストは本当に必要か?
Chapter 02 はじめてのA/Bテスト
Chapter 03 テストプロジェクトを立ち上げる
Chapter 04 テスト成功率をあげるユーザー調査
Chapter 05 テストプラン精度をあげるA/Bテストの5W1H
Chapter 06 失敗しないテスト組み込み・実行とは?
Chapter 07 次につなげるテスト結果レビュー
Chapter 08 A/Bテスト実践ガイド22~テスト様式マスター
Chapter 09 A/Bテスト実践ガイド11~ツール組み込み

サイトの機能開発やデザイン変更の改善スピードを向上するために購入しました。A/Bテストは必要だと思いつつも何となくテストしている方は、Chapter 03のテストプロジェクトを立ち上げるに記載されているA/Bテストのワークフローだけでも読んでください。自社なりのフローを見つけることができるようになります。

 

まとめ

今回の記事は以上です。現在は書籍だけではなく、たくさんのプログラミング学習サービスが公開されていて多くは無料で使えます。

関連記事

プログラミング初心者:プログラミングの勉強を始めたいけれど、周りに相談できる人もいないし、何からすべきかも全くわからない。まずはプログラミング初心者を脱出して、調べれば何となく理解できるところまで進みたいので、他の人がどうやって勉強したのか[…]

 

独学に自信がない方はプログラミングスクールに入学して短期間でプログラミングを学ぶこともできます。スクールごとの特徴をまとめたので、時間がない方はスクール利用を検討してください。

関連記事

プログラミングスクールの決め手がなくて悩んでる人:プログラミングの勉強をしたいんだけど、本業もあるし独学で学習するのは自信がない。できれば分からない部分の相談に乗ってもらいながら勉強するタイプのプログラミングスクールに通いたいけれど、どの学[…]

【無料体験あり】エンジニアの僕がおすすめするプログラミングスクール3社