はじめに
個人的にオススメする書籍一覧を挙げていきます。
以下のカテゴリごとに、難易度の低いもの(読み進める順)から挙げていきます。
カテゴリ
- プログラミング全般
- オブジェクト指向
- ネットワーク
- データベース
- テスト
プログラミング全般
リーダブルコード
オライリージャパンから出版されている本で、読みやすいコードを書くためにはどうしたら良いのかが書かれてます。基本的にどんな言語でも通用する内容がかかれてます。薄く内容も用意なので、1日あれば1週読める内容と思います。
プログラミング全般の内容が書かれている本では、一番売れている本ではないでしょうか。
読めば次の日から使える内容が多いので即効性も高いです。
新人プログラマにまず初めに読んでもらいたい一冊です。
コードコンプリート上・下
上巻では、設計に関する内容やリーダブルコードと同様に読みやすいコードを書くためのテクニックなどが体系立てて書かれています。
下巻ではデバッグやテストなど品質管理を中心に書かれています。内容はそれほど難しくないため、リーダブルコードを読み、ある程度プログラミング言語を理解していれば読み進められるかと思います。ここまで設計~テストまで体系立てて学べる書籍はないと思いますので、ぜひ読んでもらいたいです。ただし、分厚い本なので、一気に熟読は難しいので何度か気になるところを中心に読むスタイルが良いかと思います。
オブジェクト指向
ゼロからわかる UML超入門
オブジェクト指向を学ぶために、UMLを読めるようになってないと、デザインパターン等の書籍を読み進めることができないため、まずは読み方だけでも簡単に学んでおく必要があります。正直読むだけであればUMLは難しくないので、UML入門の本を1冊軽くやっておけばよいかと思います。
増補改訂版Java言語で学ぶデザインパターン入門
数学ガールでおなじみの、結城 浩さんが書かれた書籍です。
入門書などを多く手掛ける著者ということもあって、わかりやすくデザインパターンについて書かれてます。
オブジェクト指向を学ぶには、基本的なインターフェースや継承などの概念を理解して、この本を読むとよいかと思います。デザインパターンを中心にオブジェクト指向の何がうれしいのかを学んでいくことで、自然とオブジェクト指向が身につくかと思います。デザインパターンが身についたところで、後述するSOLIDやGRASP等の抽象度の高いオブジェクト指向の原則を学んでいくと良いと思います。(いきなり抽象度の高い概念を理解できるとは思えないので)
新装版 リファクタリング―既存のコードを安全に改善する―
リファクタリングというタイトルですが、リファクタリングに限らず、どういう設計にしたら良いのか書かれてます。コードはC++で書かれてますが、C++読めなくても他の言語がわかってれば読み進めれるかと思います。
アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技
アジャイルと書いてますが、アジャイルの手法だけ書かれたものではなく、オブジェクト指向の原則SOLIDに関する解説やパッケージ設計の原則、デザインパターンに関する説明が書かれた書籍です。デザインパターンよりもより抽象化された内容を含みますので、デザインパターンを学んだあとに読むとより理解が深まると思います。
ネットワーク
3分間ネットワーク基礎講座
博士とネット君の対話で学んでいくスタイルの書籍です。
Webで公開されている内容が書籍化されたものになります。
まずはこの本で基礎を学んだあと、実際に学習していきたい言語でTCP/IPを使用したプログラムを組んでみることをオススメします。
データべース
SQL 第2版 ゼロからはじめるデータベース操作
リレーショナルデータべースを学ぶにあたり、SQLは必須です。
SQLを学ぶにあたって、一番わかりやすいと思ったのがこの本です。
この本をやっておけば、色々なデータベース(Oracle,SQLServer,MySQL等)で使えるSQLを学ぶことができます。(データベース関連の書籍は、ミックさんの書かれた本がどれもわかりやすいです。)
この本でSQLを学んだあと、実際に学習したい言語でデーターベースとやり取りするプログラムを組んでみることをオススメします。
達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ
上記に続いて、ミックさんの書籍です。
この本ではリレーショナルデータベースのテーブル設計等について記載されてます。
なんで正規化するのか、具体的にどうやって設計を進めていくのかわかりやすく書かれてます。
これを見ると、テーブル設計に自信が持てるようになります。
達人に学ぶ SQL徹底指南書
上記にまたまた続いて、ミックさんの書籍です。
この本はSQLのチューニング等について書かれている本で、SQLの基礎を学んだあとに読むとよいです。
第2版も出てるようなので、今から買われる方はそちらが良いかと思います。
テスト
知識ゼロから学ぶソフトウェアテスト
テスト入門に最適な1冊で、テストについて体系的に書かれてます。
まずはこの一冊で基礎を学んだあとに、TDDやユニットテストなどについて書かれた書籍を読んでみるのが良いと思います。