新卒入社後、約3年半で読んできた書籍たち

## はじめに
前回投稿した記事がかなり反響があって、正直びっくりしています。
色々な応援コメントやフィードバックを頂き、ありがとうございます！！

今回は自分が知りたかったシリーズ第2弾です。
第1弾：[25歳初めてのフリーランスエンジニアの単価について](https://qiita.com/turmericN/items/a73d005e8bf4700bbb37#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB)
第2弾：新卒入社後、約3年半で読んできた書籍たち
第3弾：[フリーランスエンジニアの面談ってこんな感じ](https://qiita.com/turmericN/items/e248d8ac30ca5c21650e)
第4弾：[新規参画した現場で1週間で意識したこと、やったこと](https://qiita.com/turmericN/items/7a66033c1d7fb24ca458)

意外と自分が知りたかったことは、皆も気になっているのかなと思い、今回は今まで約3年半で使った書籍やコンテンツなどを紹介を記載していきます。

こちらの記事も参考にさせて頂きました。
[未経験から4年働きながら、読んでよかった読み物](https://qiita.com/Nao9syu/items/0bedec7a749ab2d8123a)

## 記載ルール
- ジャンル毎分けて記載します（ジャンル分け間違えていたらすみません）
- 買った本、読んだ本、挫折した本を記載しています
- URLは貼っていません
- コメントに関しては覚えている範囲で独断と偏見で記載しています
- 難易度（僕の所感が書いていいます）
 - ★★★・・・基礎がしっかりしていないと大変
 - ★★☆・・・ある程度、基礎知識があれば読みやすい
 - ★☆☆・・・初心者向けです。
 - ？？？・・・挫折したものです

## IT/Web基本

### 「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか（★☆☆）
SIer時代にスキルの幅を広げるために、読みました。
Webアプリケーション開発が体系的に書かれています。分かりやすいので初学者におすすめです。

### スラスラわかるネットワークTCP／IPの基本（★☆☆）
SIer時代にスキルの幅を広げるために、読みました。
第二版が出たんですね。ネットワーク初学者にはおすすめです。図が多くイメージも持ちやすいです。

### Webを支える技術 -HTTP、URI、HTML、そしてREST（★★☆）
SIer時代にスキルの幅を広げるために、読みました。
Webシステムの実装に必要な基本知識が網羅されてます。データフォーマットとかはあまり理解していないです。
ただ初心者は「Real World HTTP ―歴史とコードに学ぶインターネットとウェブ技術」からのほうで読みやすいかもしれません。

### Real World HTTP ―歴史とコードに学ぶインターネットとウェブ技術（★☆☆）
SIer時代にスキルの幅を広げるために、読みました。
httpの歴史から学んでいけるので、どのように進歩していったかが分かりました。
コードの例が確かGoだった気がします。

### Gitが、おもしろいほどわかる基本の使い方33（★☆☆）
会社でgit hubを使用するため、一番最初に読んだ記憶があります。
Sourcetreeを使ってGitを操作していきます。
僕はコマンドでやっているので、Sourcetreeの使い方は分かっていないです。

### GitHub実践入門 ~Pull Requestによる開発の変革（★★☆）
会社でgit hubを使用するため、読みました。
git の使い方からはじまり、github の実践的な使い方まで網羅されています。
ただ、イメージ図は少ないので、最初はもっと入門書を読んでからのほうが読みやすいかもです。
僕は読んだことないですが、「わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉」が分かりやすい評判が良いらしいです。

### システムはなぜダウンするのか（★☆☆）
システムダウンなどは経験値が重要だと思いますが、この本読んで勘所みたいなのはつかめる気がします。

### プログラムはなぜ動くのか　第２版　知っておきたいプログラムの基礎知識（★☆☆）
CPUやメモリ、ディスク、コンパイル、ビルドなどの知識が身につきます。
なぜ、メモリは多いほうがいいのかなど理解できます。

## SQL
### スッキリわかるSQL入門（★☆☆）
新卒でSQLとはなんぞや？のときに読みました。
知識ゼロからで読めます。図がわかりやすいのでイメージしやすいです。
SQLってなに？って言うひとにはおすすめです。

### 達人に学ぶSQL徹底指南書（★★☆）
業務でSQLを使用して基本的なSELECTやちょっと複雑なSQLもできるようになった頃読みました。
中級者向けです。業務でもSQLをガリガリ触って向けかなと思っています。
数学的な考え（集合）もあり、少し大変でしたがSQLの幅が広がります。SQLでこんなことができるのか！？

### 達人に学ぶDB設計の指南書（★★☆）
達人に学ぶSQL徹底指南書を読んで面白かったので、設計のほうも読んでみようと思いました。
中級者向けです。正規化、インデックス、バッドプラクティスとかが印象に残っています。
DB設計をする際に、再度読み返そうと思います。

### ビッグデータ分析活用のためのSQLレシピ（★★☆）
かなり分厚いく、全部目を通していないです。
色々なSQLが記載しているので、見ていて面白いです。
次読むときはSQLでデータ抽出するときかなと思います。

### プロとしてのOracle PL/SQL入門（★☆☆）
業務でPL/SQLを使用していたので、基本的なSQLは理解後に読んでいます。
PL/SQLを学ぶならこの本がオススメです。体系的に学べます。
僕はこの本を片手において、PL/SQLを書いていました。
（Oracle PL/SQLを使用する案件に関わることは今後あるのかな。。）

## フロントエンド

### ドットインストール（★☆☆）
Web系開発に転職した時に一気にやりました。ひたすら書いて動かしての繰り返しです。
動画を止めながら、進めた記憶が蘇ります。

- CSSレイアウト入門 (全15回)
- Bootstrap 4入門 (全22回)	
- 【旧版】実践！ウェブサイトを作ろう (全17回)
- 【旧版】CSS3入門 (全19回)
- 【旧版】レスポンシブウェブデザイン入門 (全14回)
- 【旧版】CSS基礎文法入門 (全23回)
- 【旧版】HTML基礎文法入門 (全24回)

### progate（★☆☆）
Web系開発に転職した時に一気にやりました。
初心者がつまずく環境構築もなく、進められるのでおすすめです。
HTML/CSSのコンテンツも良かったです。動画でないので自分のペースで進められるのがグットです。

- HTML/CSS
- JavaScript

### 改訂新版JavaScript本格入門 ～モダンスタイルによる基礎から現場での応用まで（★☆☆）
SIer時代に業務で使用していたので、傍らにおいていました。
JavaScriptはこの一冊あれば一通り網羅されているのではないのでしょうか？

### フロントエンドエンジニアのための現在とこれからの必須知識（★☆☆）
Web系に転職するにあたり、モダンな開発を知るために読みました。
2016年の本でフレームワークとか古いものもありますが、フロントエンド周り一通り網羅できています。

### 関数型プログラミングの基礎 JavaScriptを使って学ぶ（★★☆）
SIer時代に幅を広げたいと思い読みました。
コードもあって分かりやすいです。ただ、今でも関数型の考えや概念はまだ全然理解できていないです。
必要になったらもう一度読みたいです。

### Webフロントエンドハイパフォーマンスチューニング（★★★）
Web開発をするときにブラウザの仕組みについて知りたいと思い読みました。
一周しかしていないですが、ブラウザのレンダリングのについて学びました。
正直僕には難しくてまだ全然理解はしていないですが、新しい知識がいっぱいです。

### 基礎から学ぶvue.js（★☆☆）
次の案件はvueなので、そのための勉強です。
まだまだvue.jsの書籍は少ないですが、分かりやすく、猫が可愛かったです。

### vue.js firebasedで作るミニwebサービス（★★☆）
次の案件はvueなので、そのための勉強です。
現在、読み進めています。詰まるところもありますが楽しいです。

### AngularJS　アプリケーションプログラミング（★★☆）
自社開発がAngularJSでしたので、転職後すぐに読みました。
一通り網羅されて書かれています。わかりやすかったです。

### Angularアプリケーションプログラミング（★★☆）
入社前、AngularとAngularJSがあることが分からず購入。。
少しやってみましたが、全然互換がないんですね。

## バックエンド
### スッキリわかるJava実践編（★★☆）
SIer時代の新卒研修のときにこれ使って勉強しました。
初心者はスッキリシリーズが自分的におすすめです。図がわかりやすいです。

### スッキリわかるサーブレット&jsp（★★☆）
SIer時代の新卒研修のときにこれ使って勉強しました。
今、サーブレット&jspを勉強する必要があるのかは分からないです。。

### 退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング（★☆☆）
SIer時代にスキルの幅を広げるために読みました。
スクレイピングとかExcel操作、ｃｓｖ操作、json操作とか実際に使えそうなものが書かれています。
pythonの文法も説明されているので、この一冊でことは足りそうです。

### 実践力を身につけるpythonの教科書（★☆☆）
SIer時代にスキルの幅を広げるために読みました。
python系ではこの本が一番最初だった気がします。基礎から応用まで書いてあります。

### Pythonクローリング＆スクレイピング ―データ収集・解析のための実践開発ガイド（★☆☆）
SIer時代にスキルの幅を広げるために読みました。
これ見ながら自社サイトのクローリングツールを作成できました。

### Laravel入門（★☆☆）
Web開発でLaravelを使用していたので、体系的に学ぶため読みました。
かなり丁寧網羅されている気がします。自分は写経して進めました。

### Excel VBA 本格入門 ~日常業務の自動化からアプリケーション開発まで（★☆☆）
業務で使用していたため、読みました。
VBAってこんなことができるのかと、為になりました。

## 基本設計

### 現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法（★★☆）
設計をするようになった頃、体系的に学びたいと思い読みました。
こちら目から鱗でした。これは何度も読みたい本です。
オブジェクト指向と業務ってこう紐付けるのかと分かりました。

### システム設計の謎を解く　強いSEになるための機能設計と入出力設計の極意（★★☆）
設計をするようになった頃、体系的に学びたいと思い読みました。
しっかり読めていないです。

## テスト
### 初めての自動テスト ―Webシステムのための自動テスト基礎（★☆☆）
SIer時代、単体テストもテスト仕様書を作りしんどかったので、自動化するにはどうすればと思い読みました。
自動テストが何かを知らない人にはオススメの一冊です。読みやすいです！

### テスト駆動開発（★★☆）
現場の他プロジェクトがTDDと言っていたので、気になり読みました。
TDDの実践方法がわかります。写経しながら進めればよりわかりやすそうです！！
だた、javaで書かれています。

### 知識ゼロから学びソフトウェアテスト（★☆☆）
SIer時代の最初のプロジェクトではテストをしていたので、体系的に学びたいと思い、読みました。
基本中の基本である、同値分割法と、境界値分析法について学べました記憶があります。
完璧なテストっていうのはないのだと気づきました。

## コーディング
### 詳説 正規表現 第3版（★★☆）
運用とかで文字列を操作することがあり、何とか効率の良い方法はないのかと思い、読みました。
正規表現だけでこの分厚さで、文章量！？って感じです。
全部は読めていないですが、この一冊で正規表現は網羅出来ると思います。

### リーダブルコード（★☆☆）
ネットでかなりおすすめされていたので、読みました。
言わずもがなですね。これは絶対読んで欲しいです。
読みやすいし、コード例もわかりやすいです。何だかんだ5回は読んでいる気がします。

### コーディングを支える技術 ~成り立ちから学ぶプログラミング作法（★☆☆）
リーダブルコードを読んで、もっと他の本はと思い探して、読みました。
プログラミングの歴史と特徴を比較しながら理解するような形です。かなりおすすめです。
「関数」「型」「ローカル変数」がなぜ作らてたのかなどの概念の説明があります。

### リファクタリング（★★☆）
リーダブルコードを読んで、もっと他の本はと思い探して、読みました。
読んでおいて間違いないです。こちらはより具体的に、リファクタリングの進め方が記載してあります。
確か、javaで書かれていた気がします。

## 開発スタイル
### アジャイルサムライ−達人開発者への道（★☆☆）
SIer時代に他プロジェクトがアジャイルと言っていたので、気になり読みました。
翻訳も非常にいいので、読みやすいです。
現場で起こりそうな例があげられて、イメージしやすかったです。

### エクストリームプログラミング（★☆☆）
SIer時代に他プロジェクトがXP言っていたので、気になり読みました。
こちらも非常に面白いです。

## クラウド
### Amazon Web Servicesではじめる新米プログラマのためのクラウド超入門（★☆☆）
AWSの最初に触った時に、読みました。
図も有り、わかりやすかったです。
ただ、二年前ぐらいの本なので今は微妙かもしれません。画面がそもそも変わっているかもしれないです。

### Amazon Web Services 定番業務システム12パターン 設計ガイド（★★☆）
AWSを触るようになり、このサービスどんなふうに組み合わせるんだろうと思い、読みました。
具体例があるので、イメージが持ちやすいです。

### サーバーレスシングルページアプリケーション ―S3、AWS Lambda、API Gateway、DynamoDB、
Cognitoで構築するスケーラブルなWebサービス（★★☆）
会社でサーバーレスにすると言っていたので、体系的に学びたいと思い、読みました。
AWSサーバレスアーキテクチャを用いて、SPAを作成するまでの流れを学習できますが、事前にここのサービスは理解して置く必要がありそうです

## 読み物

### なれるSE（★☆☆）
ライトノベルですがすごく面白いです。
PLとは？OJTとは？開発チーム、運用チームの垣根とは？などなど、かなりリアルなことが面白く描かれています。

### SOFT SKILLS　ソフトウェア開発者の人生マニュアル（★☆☆）
海外のエンジニア向けですが、全然日本でも参考になります。

### プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則（★☆☆）
書店でタイトルに惹かれて、読みました。
ある程度業務経験がないとイメージし辛い内容ですが、「確かに、そうだよな」っと思う箇所がいっぱいあります。

### プログラマが知るべき97のこと（★☆☆）
プリンシプル オブ プログラミングと似たような本ですが、こちらはより実体験が記載されています。
経験しないとイメージわかないですが読んでおいて損はないです。

### プログラミング言語図鑑（★☆☆）
書店でパラパラめくり、面白そうだと思い、読みました。
こんなにプログラミング言語ってあるのか！！と知りました。
最初のプログラミングの歴史と最後にある言語を選ぶ時のキーワードは勉強になります。

### Clean Code　アジャイルソフトウェア達人の技 (アスキードワンゴ)
つい最近、kindleで買いました。まだ読んでいないです、

### Clean Coder　プロフェッショナルプログラマへの道 (アスキードワンゴ)
つい最近、kindleで買いました。まだ読んでいないです、

## 機械学習

### ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装（★☆☆）
ぱらぱらめくると数式とかでてきて一見難しいそうです。凄くわかりやすいです。
コードも丁寧に説明がされていて分かりやすいです。
②も出たみたいなので時間ある時に①を復習して、読んでみたいです。

### やさしく学ぶ機械学習を理解するための数学の基本（★☆☆）
会話形式なので読みやすいです。
微分や偏微分、合成関数、行列計算も付録しっかり書かれているのでよかったです。

### Pythonではじめる機械学習――scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎（？？？）
挫折しました。。前提知識の単語が分からなかったです。

### ニューラルネットワーク自作入門（★☆☆）
カラーなのでなんとなく読みやすかったです。
解説もかなり丁寧に書かれています。
ゼロから作るDeep Learningとこの本でなんとなくDeep Learningについて分かった気がします。

### ディープ・ラーニングがわかる数学入門（★★☆）
数式が多いけど、最初から読めばわかりやすい
他の本読んでからのほうがイメージは持ちやすいかなと思いました。

### 機械学習入門 ボルツマン機械学習から深層学習まで（★☆☆）
機械学習ってなに？っていう人におすすめです。会話形式で読みやすい。
コードとかの記載はないので、機械学習ってこんな事するんだっていうのがわかります。

### 詳解 ディープラーニング ~TensorFlow・Kerasによる時系列データ処理~（？？？）
挫折中です。またいつか読みたいとは思っています。。

## 終わりに
これが全て頭にインストールされれば良いんですが、実際はそうにはならないです。
インプットして、実際に使って、アウトプットをするサイクルでやっと身につくのかなと思います。
インプットしないと、アウトプットできないですが、アウトプットしないと自分の言葉で語れないです。

少しでも参考になれば幸いです。

もしこの書籍がおすすめなどがありましたら、コメントなど頂ければです。