はじめに
新人エンジニアがWEBシステムの開発、設計を行う際に役立つ技術書を紹介します。
これらは私自身が現場で実際に役立ったと感じたものの中から、幅広く汎用的に活用できると思うものを厳選したのでこれから勉強を始める方は参考にしてください!
本の選定ポイント
技術トレンドやシステム構成などに関係なく、長期間にわたって汎用的に役立つ知識が得られる本を選定しました。『React』や『Spring Framework』などのフレームワーク関連のものは、流行があるのと、プロジェクトで使用していない場合は必要性が低いと判断し、ここでは紹介していません。
WEBシステムの基礎
Webを支える技術 -HTTP、URI、HTML、そしてREST
Webの歴史から始まり、HTTPプロトコル、URI、JSONなど、Webシステムに使われている基本的な技術が丁寧に解説されているので、初心者におすすめです。
後半部分はRESTの話になるので、初心者には少し難しいかもしれません。WebシステムがすべてRESTで開発されるわけではありませんが、RESTの思想はWebシステムを開発する上で重要なポイントを含んでいるので理解しておいて損はありません。
2010年発売でかなり古い本になるためAtomなど、今では知らなくても良いかな・・と思う内容も含まれますが、多くは今でも役立つ内容です。
コーディング
改訂3版JavaScript本格入門
WEBシステムでは、さまざまなWEBフレームワークや言語が利用されます。これらにはトレンドがあり、数年単位で廃れることも多いですが、その中で長く利用され続けている言語が「JavaScript」です。JavaScriptは今後も多くのWEBシステムで利用されると考えられる重要な言語です。
WEBフレームワークは次々と新しいものが登場しますが、それらの多くは「JavaScript」をベースとしています。そのため、新しいフレームワークを利用する際にも、「JavaScript」の基本を知っておくことは非常に役立ちます。
「JavaScript」の全ての内容を網羅し、詳細に説明すると膨大な量になりますが、この本では重要なポイントを適切な深さで説明してくれているのでおすすめです。内容は、JavaScriptの言語仕様、オブジェクト指向、非同期通信、DOM操作の基本などです。タイトルに「本格」という文字があるため少し躊躇するかもしれませんが、説明が分かりやすい本なので初心者にもおすすめです。
リーダブルコード
ソースコードの可読性と保守性の向上に焦点を当てた本です。個人の開発とは異なり、企業での開発ではチーム開発が基本であり、複数人で同じソースコードを修正する事も多く、開発者とメンテナンス担当者が異なる・・といったことも一般的です。そのため、他の人が見ても意図がわかりやすく、読みやすいコードを書くことが非常に重要です。
この本では、変数名の付け方、コメントの書き方、ロジックの組み立て方など、コードの実践的な改善方法や考え方が多く示されています。こういった内容は言語ごとの方言やさまざまな派閥があり、「これが正解」というものはありませんが、さまざまな考え方を知り、自分の引き出しを増やしておくことが重要です。初心者の方には、こうした考え方や視点があることをまず知っていただきたいので、ぜひ読んでみてください。
ただし、全くの初心者には難しい内容かもしれません。また、ある程度プログラミングを実践してからでないと理解しにくい部分もあるため、ある程度コーディング経験を積んだ段階で読むことをお勧めします。
開発ツール
いちばんやさしいGit&GitHubの教本 第2版
『Git』は、ソースコードなどの変更履歴を管理するための分散型バージョン管理システムです。バージョン管理システムには他にもSubversionなどがありますが、『Git』はデファクトスタンダードとして開発現場で最もよく利用されています。
『Git』の使い方は難しくありませんが、最初は概念がわかりにくいことがあります。そのため、実際に使ってみるのが一番の近道です。この本はハンズオン形式で解説されており、実際に手を動かしながら学ぶことができます。
実際の開発現場ではGUIツールを使わず、コマンドラインで操作することが多いですが、この本ではコマンドラインについても解説されています。深い内容には踏み込んでいませんが、『Git』の概念さえ理解できれば、コマンドの詳細やブランチ運用などはWebで豊富な情報が得られるので、Webで学ぶと良いと思います。
テスト
【この1冊でよくわかる】ソフトウェアテストの教科書 [増補改訂 第2版]
ソフトウェア開発には、WEBシステム開発、組み込み開発、パッケージ製品開発など多くの種類がありますが、テスト設計の基本的な考え方は共通しています。そのため、テスト設計の学習は費用対効果が高いです。また、実際の業務でも、新人など経験が少ない人はテスト工程を担当することが多いため、早めに学習することをおすすめします。
この本では、テスト工程の概要、同値クラステストや境界値テストなどの基本的なテスト技法、テストドキュメントの種類など、一般的なテストに必要な知識を体系的に学ぶことができます。内容は必要最低限ですが、この本に書かれている用語や内容を理解しておけば、単体テストなどの基本的なテストを行う上で困ることはないと思います。
開発知識全般
WEB+DB PRESS総集編[Vol.1~136]
今回紹介する中でも最もコストパフォーマンスが良いです。WEB+DBはWebアプリケーション開発のための技術情報誌ですが、こちらは2024年に発売された総集編で2000年の創刊から全ての内容が含まれたDVDです。
136冊の雑誌が含まれて3300円なのでコストパフォーマンスは最高です。データはPDFなのでスマホやタブレットに入れて通勤などに読むことも出来ます。
雑誌の良い点は細かい1つのポイントに絞って解説があることです。通常の書籍ではどうしてもページ数に限りがあるので細かい説明が難しいですが、雑誌では細かいテーマを詳細に扱うことも可能なのでわかりやすい内容も多いです。
買わなくて良いと思う本の特徴
あまりオススメしない本の特徴も挙げてみます。以下のようなタイトル、系統の本は避けた方が良いかなと思っています。
「逆引きXXX」や「ポケットリファレンス系」の書籍は、簡単なコマンド解説が中心で、その内容はWeb検索で簡単に見つかります。さらに、Webの情報は最新のものが多いため、これらの書籍を購入する必要はあまりないでしょう。
「図解XXX」はイメージが多く、一見すると非常にわかりやすいですが、情報量が少ないため、学習を進めると「なぜこうなるのか?」という疑問が残ることが多いです。また、ソフトウェアは日々アップデートされるため、本に書かれている通りにやっても動かない場合があります。
「サルでもわかるXXX」も情報量が少ないことが多く、「図解XXX」と同様に、学習を進めると知りたいことが書かれていないことが多いです。そのため、別の本を購入することになる場合が多く、あまりおすすめできません。
以上