プログラミング初心者がプログラミング歴0年目にオススメしたい技術書

## はじめに
こんばんは。今年も花粉が辛い@posterkeisukeです。

あと、2週間で3月も終わり、入社シーズンですね。
晴れ晴れ大学を卒業して4月からエンジニアとして働くという方も多いのではないでしょうか。
しかし、大学でプログラミングは齧る程度しか触っておらず、入社してからが不安だと言う方もまた、多いのではないでしょうか。

かくいう私もそんな中の一人でした。
入社して、同期、先輩はたまた勉強会で知り合った方々などと接するたびに力の差を感じているような日々でした。

今は一年経って、大分ましになった（と思っている）のですが、エンジニアは日々勉強です。
特に私の業務でもある、WEB業界は、多くの分野にまたがっているため、効率のよい知識の吸収をしていかないと、時間がかかりすぎます。ここはこの一年でかなり実感しました。

なにが言いたいかというと、自分で一から書籍を選ぶよりもすでにエンジニアである人がオススメする書籍を読むことです。
僕もそのことを心がけています（最近ですが）

前置きが長くなりましたが、この記事の主旨は、今年からエンジニアとして（主にWeb業界で）働く、プログラミング歴0年の方々に向けて、私がこの一年で読んだ（読む予定）本と、日々どのように情報収集をしているのかということを（こちらは後日）紹介したい。というものです。
私も未熟なので、おこがましい限りではありますが:bow:、少しでも自分のような不安を抱えないように、ここに記そうと思います。


### 補足
本は全てのページを読む必要はありません。

桂さんが結構前に書いていたこの記事がとても参考になりました。
技術書は特に分厚いものが多いので、途中で挫折するよりも、色々な本を少しづつ摘んで学んでいければいいと思います。

[学習を加速させるインデックス読書術 - Qiita](https://qiita.com/dkatsura/items/3364b293ed1451a66a8a)


## 心構え系

- [リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice) | Dustin Boswell, Trevor Foucher, 須藤 功平, 角 征典 |本 | 通販 | Amazon](https://www.amazon.co.jp/%E3%83%AA%E3%83%BC%E3%83%80%E3%83%96%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89-%E2%80%95%E3%82%88%E3%82%8A%E8%89%AF%E3%81%84%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E6%9B%B8%E3%81%8F%E3%81%9F%E3%82%81%E3%81%AE%E3%82%B7%E3%83%B3%E3%83%97%E3%83%AB%E3%81%A7%E5%AE%9F%E8%B7%B5%E7%9A%84%E3%81%AA%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF-Theory-practice-Boswell/dp/4873115655/ref=sr_1_1?ie=UTF8&qid=1521390399&sr=8-1&keywords=%E3%83%AA%E3%83%BC%E3%83%80%E3%83%96%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89)

言わずと知れた名著です。誰もが勧めてきます。
細かいテクニックは一切かかれておらず、プログラムを書く上でのお作法的なものが書かれた、いわばマナー書になります。

以下はその上級的な内容が書かれた本です。（まだ読めていない…）

- [新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES) | Martin Fowler, 児玉 公信, 友野 晶夫, 平澤 章, 梅澤 真史 |本 | 通販 | Amazon](https://www.amazon.co.jp/%E3%83%AA%E3%83%95%E3%82%A1%E3%82%AF%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0%E2%80%95%E6%97%A2%E5%AD%98%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E5%AE%89%E5%85%A8%E3%81%AB%E6%94%B9%E5%96%84%E3%81%99%E3%82%8B%E2%80%95-OBJECT-TECHNOLOGY-Martin-Fowler/dp/427405019X/ref=sr_1_8?ie=UTF8&qid=1521390399&sr=8-8&keywords=%E3%83%AA%E3%83%BC%E3%83%80%E3%83%96%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89)


## 基盤系

そもそもWebサービスがどう動いているかということを理解しないと、サービスを開発していても、よくわからないと思うので、まずは基本をインプットするのにオススメの2冊です。

- [Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus) | 山本 陽平 |本 | 通販 | Amazon](https://www.amazon.co.jp/Web%E3%82%92%E6%94%AF%E3%81%88%E3%82%8B%E6%8A%80%E8%A1%93-HTTP%E3%80%81URI%E3%80%81HTML%E3%80%81%E3%81%9D%E3%81%97%E3%81%A6REST-WEB-PRESS-plus/dp/4774142042/ref=sr_1_1?s=books&ie=UTF8&qid=1521391146&sr=1-1&keywords=web%E3%82%92%E6%94%AF%E3%81%88%E3%82%8B)
- [プログラムはなぜ動くのか　第２版　知っておきたいプログラムの基礎知識 | 矢沢久雄 |本 | 通販 | Amazon](https://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AF%E3%81%AA%E3%81%9C%E5%8B%95%E3%81%8F%E3%81%AE%E3%81%8B-%E7%AC%AC%EF%BC%92%E7%89%88-%E7%9F%A5%E3%81%A3%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%9F%E3%81%84%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE%E5%9F%BA%E7%A4%8E%E7%9F%A5%E8%AD%98-%E7%9F%A2%E6%B2%A2%E4%B9%85%E9%9B%84/dp/4822283151?SubscriptionId=AKIAI4TWNNEFXKKTPYDQ&tag=samurai4809-22&linkCode=xm2&camp=2025&creative=165953&creativeASIN=4822283151)


## 専門書系
Webエンジニアと言っても、会社によって使っている言語は違うと思います。それぞれが必要なものを選んでください。
一通り、学び終わった後に違う言語を学びなおすと、新たな発見もあるので、結構おすすめです。

パーフェクトシリーズはどの言語を学ぶにしても、必要な情報が載っています。（すでに使われていない古い情報もたまに載っていたりするので気をつけてください。）

パーフェクトシリーズは、プログラミング初心者が初めて読むというには、少しむずかしい内容になっていますが、初めは辞書代わりに使って、なんとなく内容がわかり始めたら、写経をオススメしたいです。（やるかやらないかは賛否両論あると思いますが。）

- [パーフェクトPHP (PERFECT SERIES 3) | 小川 雄大, 柄沢 聡太郎, 橋口 誠 |本 | 通販 | Amazon](https://www.amazon.co.jp/%E3%83%91%E3%83%BC%E3%83%95%E3%82%A7%E3%82%AF%E3%83%88PHP-PERFECT-3-%E5%B0%8F%E5%B7%9D-%E9%9B%84%E5%A4%A7/dp/4774144371/ref=sr_1_1?ie=UTF8&qid=1521389848&sr=8-1&keywords=%E3%83%91%E3%83%BC%E3%83%95%E3%82%A7%E3%82%AF%E3%83%88PHP)

- [改訂2版 パーフェクトRuby | Rubyサポーターズ |本 | 通販 | Amazon](https://www.amazon.co.jp/%E6%94%B9%E8%A8%822%E7%89%88-%E3%83%91%E3%83%BC%E3%83%95%E3%82%A7%E3%82%AF%E3%83%88Ruby-Ruby%E3%82%B5%E3%83%9D%E3%83%BC%E3%82%BF%E3%83%BC%E3%82%BA/dp/4774189774/ref=sr_1_1?ie=UTF8&qid=1521390048&sr=8-1&keywords=%E3%83%91%E3%83%BC%E3%83%95%E3%82%A7%E3%82%AF%E3%83%88Ruby)

Rubyだと、ほんとに初めてプログラムを書く方にオススメの本です。この本自体がたのしいかどうかは置いておいて、Ruby自体の言語は書いていてとても楽しい言語です。


- [たのしいRuby 第5版 | 高橋 征義, 後藤 裕蔵, まつもと ゆきひろ |本 | 通販 | Amazon](https://www.amazon.co.jp/%E3%81%9F%E3%81%AE%E3%81%97%E3%81%84Ruby-%E7%AC%AC5%E7%89%88-%E9%AB%98%E6%A9%8B-%E5%BE%81%E7%BE%A9/dp/4797386290/ref=sr_1_2?ie=UTF8&qid=1521390240&sr=8-2&keywords=%E5%88%9D%E3%82%81%E3%81%A6%E3%81%AERuby)


javascriptだと入門にオススメです。

- [改訂新版JavaScript本格入門 ～モダンスタイルによる基礎から現場での応用まで | 山田 祥寛 | 工学 | Kindleストア | Amazon](https://www.amazon.co.jp/%E6%94%B9%E8%A8%82%E6%96%B0%E7%89%88JavaScript%E6%9C%AC%E6%A0%BC%E5%85%A5%E9%96%80-%EF%BD%9E%E3%83%A2%E3%83%80%E3%83%B3%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB%E3%81%AB%E3%82%88%E3%82%8B%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E7%8F%BE%E5%A0%B4%E3%81%A7%E3%81%AE%E5%BF%9C%E7%94%A8%E3%81%BE%E3%81%A7-%E5%B1%B1%E7%94%B0-%E7%A5%A5%E5%AF%9B-ebook/dp/B01LYO6C1N/ref=sr_1_2?s=digital-text&ie=UTF8&qid=1521390975&sr=1-2&keywords=javascript+%E5%85%A5%E9%96%80)

PHPやRubyをそのまま素描きすることがほとんど無いので、それらを利用したフレームワークの勉強も必要です。

- [Laravel リファレンスVer.5.1 LTS 対応 Web職人好みの新世代PHPフレームワーク | 新原 雅司, 竹澤 有貴, 川瀬 裕久, 大村 創太郎, 松尾 大, 丸山 弘詩 |本 | 通販 | Amazon](https://www.amazon.co.jp/Laravel-%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9-Ver-5-1-LTS-Web%E8%81%B7%E4%BA%BA%E5%A5%BD%E3%81%BF%E3%81%AE%E6%96%B0%E4%B8%96%E4%BB%A3PHP%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF/dp/4844339451/ref=sr_1_8?ie=UTF8&qid=1521390180&sr=8-8&keywords=laravel)

- [Ruby on Rails 4 アプリケーションプログラミング | 山田 祥寛 |本 | 通販 | Amazon](https://www.amazon.co.jp/Ruby-Rails-%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-%E5%B1%B1%E7%94%B0-%E7%A5%A5%E5%AF%9B/dp/4774164100/ref=sr_1_10?ie=UTF8&qid=1521390092&sr=8-10&keywords=rails)


## SQL
DBの操作をするにあたって、必要なSQLの超入門です。これが分かっていると、結構理解が進むと思います。

- [これならわかるSQL 入門の入門 | 五十嵐 貴之 |本 | 通販 | Amazon](https://www.amazon.co.jp/%E3%81%93%E3%82%8C%E3%81%AA%E3%82%89%E3%82%8F%E3%81%8B%E3%82%8BSQL-%E5%85%A5%E9%96%80%E3%81%AE%E5%85%A5%E9%96%80-%E4%BA%94%E5%8D%81%E5%B5%90-%E8%B2%B4%E4%B9%8B/dp/4798114774/ref=sr_1_6?ie=UTF8&qid=1521391235&sr=8-6&keywords=sql+%E5%85%A5%E9%96%80)


基本が理解できたら、今度はアンチパターンを理解しましょう。

- [SQLアンチパターン | Bill Karwin, 和田 卓人, 和田 省二, 児島 修 |本 | 通販 | Amazon](https://www.amazon.co.jp/SQL%E3%82%A2%E3%83%B3%E3%83%81%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3-Bill-Karwin/dp/4873115892/ref=sr_1_7?ie=UTF8&qid=1521390399&sr=8-7&keywords=%E3%83%AA%E3%83%BC%E3%83%80%E3%83%96%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89)


## セキュリティ系

セキュリティを学ぼうとすると、多分一回は遭遇するであろう、徳丸さんの書籍です。

- [体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践 | 徳丸 浩 |本 | 通販 | Amazon](https://www.amazon.co.jp/dp/4797361190/?coliid=IUG3BPXONL6BR&colid=KIPSI3MRG1G8&psc=0&ref_=lv_ov_lig_dp_it)

- [徳丸浩のWebセキュリティ教室（日経BP Next ICT選書） | 徳丸 浩 | 工学 | Kindleストア | Amazon](https://www.amazon.co.jp/dp/B017SH8GZ8/?coliid=I161R9J8AGFXOB&colid=KIPSI3MRG1G8&psc=0&ref_=lv_ov_lig_dp_it)

一通り、プログラムが書けるようになったら、セキュリティ周りも気にした実装ができると最高ですね。

## おわりに
まだまだ紹介しきれない本がいっぱいあるのですが、自分がちゃんと読めてないので、ひとまずここまで。
私も、まだまだペーペーでもっともっと学習するために、本は読んでいくつもりです。

ここに載せきれない分と、書ききれなかったアドバイスをどんどん更新していこうと思っています。

とにかく成果がでなくてもひたむきにインプットすれば、いつかわかるときが来るはずです。私もそうでした（偉そうなことを言ってますが。）