プログラミング未経験者がエンジニアとして配属されるまでに使った書籍と学習コンテンツ

# はじめに
プログラミングなんてやったことがない、でも勉強したい、あるいは勉強せざるを得なくなってしまった。こういう方が最近増えているのではないかなと思います。

私もその一人です。ひょんなことからプログラミングに触る機会をもらって、触ってみたら面白くて、３ヶ月半の勉強の末、エンジニアとして現場に配属されるまでになりました。

Macすら触ったことの無かった私が、エンジニアになるまでにどんな本やコンテンツを使って勉強をしたのかを自分の備忘録として、そしてこれからプログラミングを勉強しようという方に参考にしてもらうために綴ろうと思います。

特に「みんなが使っている定番リファレンス」が何なのかプログラミング初心者には分からないことが多く、それらを知らないがために無駄な努力をしてしまうという経験が私にもあったため、これから勉強する方がそのような無駄な努力をしないために書こうと思います。

以下、Rails でアプリを作れるようになることを目標にした際のリファレンスリストになります。

# 実際に使った書籍・学習コンテンツ
## Ruby
- [ドットインストール Ruby 入門](https://dotinstall.com/lessons/basic_ruby_v3)

一番最初は、ドットインストールから始めました。一講座当たり約３分にまとめられていて、隙間時間でも進められるのがとても良かったです。最初はこれを見るか、[Progate](https://prog-8.com)がオススメです。

- [Paiza 転職 スキルチェック](https://paiza.jp/challenges)

プログラミングの演習問題を解くことができます。このお陰で Ruby でどんなことができるのか感覚を掴むことができました。 問題ゴリゴリ解きながらインプットしたい人にはオススメです。

- [3ステップでしっかり学ぶ Ruby 入門](https://www.amazon.co.jp/3%E3%82%B9%E3%83%86%E3%83%83%E3%83%97%E3%81%A7%E3%81%97%E3%81%A3%E3%81%8B%E3%82%8A%E5%AD%A6%E3%81%B6-Ruby%E5%85%A5%E9%96%80-WINGS%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88-%E7%AB%B9%E9%A6%AC-%E5%8A%9B/dp/4774195022)

初心者向けの本。Progate や ドットインストールで代用できます。通勤電車の中で本が読みたかったので、最初のうちは電車でこれを読んでいました。

- [独習 Ruby](https://www.amazon.co.jp/%E7%8B%AC%E7%BF%92Ruby-%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE%E3%83%86%E3%82%AF%E3%83%8E%E3%83%AD%E3%82%B8%E3%83%83%E3%82%AF%E3%82%A2%E3%83%BC%E3%83%88/dp/4798117854/ref=sr_1_1?s=books&ie=UTF8&qid=1534075733&sr=1-1&keywords=%E7%8B%AC%E7%BF%92Ruby)

初めての本格的な技術書としてオススメです。記述がとても分かりやすく演習問題も付いていて、その場でアウトプットもできます。

- [プロを目指す人のためのRuby入門](https://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%92%E7%9B%AE%E6%8C%87%E3%81%99%E4%BA%BA%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AERuby%E5%85%A5%E9%96%80-%E8%A8%80%E8%AA%9E%E4%BB%95%E6%A7%98%E3%81%8B%E3%82%89%E3%83%86%E3%82%B9%E3%83%88%E9%A7%86%E5%8B%95%E9%96%8B%E7%99%BA%E3%83%BB%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E6%8A%80%E6%B3%95%E3%81%BE%E3%81%A7-Software-Design-plus%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA/dp/4774193976/ref=sr_1_1?s=books&ie=UTF8&qid=1534075854&sr=1-1&keywords=%E3%83%97%E3%83%AD%E3%82%92%E7%9B%AE%E6%8C%87%E3%81%99%E4%BA%BA%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AERuby%E5%85%A5%E9%96%80)

超良書。**Ruby を勉強する人は全員買うべき**。初めての一冊にしては難しいですが、独習 Ruby を読んだ後であれば理解できます。そして読み返す度に気付きがあるので、何度も読みたい本です。

- [オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル](https://docs.ruby-lang.org/ja/latest/doc/index.html)

Ruby の公式リファレンス。ちょっとメソッドを調べたいというときは、ブログなどをググるのではなくこのページから探した方がしっかり理解できて将来のためになります。

## Rails
- [ドットインストール Ruby on Rails 5 入門](https://dotinstall.com/lessons/basic_rails_v3)

Ruby でも使ったドットインストールを観ました。観ているだけだと頭にあまり入って来ず、後述する Progate をやれば導入は十分かなと思いました。

- [Progate Ruby on Rails 5](https://prog-8.com/languages/rails5)

本当に分かりやすい。Rails が初めて学ぶ web フレームワークであるなら、まずこれからやるべきだと思います。自分の手を動かしながらのインプットなので定着しやすいです。

- [たった1日で基本が身に付く! Ruby on Rails 超入門](https://www.amazon.co.jp/%E3%81%9F%E3%81%A3%E3%81%9F1%E6%97%A5%E3%81%A7%E5%9F%BA%E6%9C%AC%E3%81%8C%E8%BA%AB%E3%81%AB%E4%BB%98%E3%81%8F-Ruby-Rails-%E8%B6%85%E5%85%A5%E9%96%80-WINGS%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88/dp/4774196185/ref=sr_1_1?s=books&ie=UTF8&qid=1534076437&sr=1-1&keywords=%E3%81%9F%E3%81%A3%E3%81%9F1%E6%97%A5%E3%81%A7%E5%9F%BA%E6%9C%AC%E3%81%8C%E8%BA%AB%E3%81%AB%E4%BB%98%E3%81%8F%21+Ruby+on+Rails+%E8%B6%85%E5%85%A5%E9%96%80)

初心者向けの本。これも Progate や ドットインストールで代用できます。案の定、電車で読むために買いました。基礎をざっと掴むという目的なら良い本だと思います。

- [Rails チュートリアル](https://railstutorial.jp/)

Rails を学んだ人の９割はこれで勉強しているのではないかというくらい有名なチュートリアル。Progate ２周してこのチュートリアルに取り組むというのが Rails を学ぶ最短ルートな気がします。たかがチュートリアルと思って甘く見ていると、難しすぎて爆死します。

- [Ruby on Rails ガイド](https://railsguides.jp/)

Rails チュートリアルの副読本。**チュートリアルでもっと深く知りたいことがあった時**に読むと良いと思います。

- [Ruby on Rails ドキュメント](http://railsdoc.com/)

こちらはチュートリアルを読んでいて**分からないところがあった時**に読むと良いと思います。

- [Ruby on Rails 5 アプリケーションプログラミング](https://www.amazon.co.jp/Ruby-Rails-5%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/4774188832/ref=pd_sim_14_3?_encoding=UTF8&pd_rd_i=4774188832&pd_rd_r=206decbe-9e2a-11e8-9be7-7f96e6dbe8c6&pd_rd_w=d5EQ1&pd_rd_wg=IPSTW&pf_rd_i=desktop-dp-sims&pf_rd_m=AN1VRQENFRJN5&pf_rd_p=053a78c4-e34f-47d4-9426-4d23f47a211d&pf_rd_r=ESM9RYWDD0TMP8RR56TC&pf_rd_s=desktop-dp-sims&pf_rd_t=40701&psc=1&refRID=ESM9RYWDD0TMP8RR56TC)

Rails チュートリアルを進める際にはこの本を脇に置いておくことをオススメします。辞書のように使うと使いやすく、チュートリアルでは説明が不親切な箇所が丁寧に解説されています。

- [パーフェクトRuby on Rails](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_2?s=books&ie=UTF8&qid=1534077746&sr=1-2&keywords=%E3%83%91%E3%83%BC%E3%83%95%E3%82%A7%E3%82%AF%E3%83%88Ruby+on+Rails)

こちらは Rails チュートリアルより難易度が少しだけ高いです。ただ、説明はしっかり書かれているので、チュートリアルを読んで分からず、アプリケーションプログラミングにも書かれていないときには、この本で調べていました。

## その他
###オブジェクト指向
- [アジャイル時代のオブジェクト脳のつくり方](https://www.amazon.co.jp/%E3%82%A2%E3%82%B8%E3%83%A3%E3%82%A4%E3%83%AB%E6%99%82%E4%BB%A3%E3%81%AE%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E8%84%B3%E3%81%AE%E3%81%A4%E3%81%8F%E3%82%8A%E6%96%B9-Ruby%E3%81%A7%E5%AD%A6%E3%81%B6%E7%A9%B6%E6%A5%B5%E3%81%AE%E5%9F%BA%E7%A4%8E%E8%AC%9B%E5%BA%A7-%E9%95%B7%E7%80%AC-%E5%98%89%E7%A7%80/dp/4798134651/ref=sr_1_1?s=books&ie=UTF8&qid=1534076059&sr=1-1&keywords=%E3%82%A2%E3%82%B8%E3%83%A3%E3%82%A4%E3%83%AB%E6%99%82%E4%BB%A3%E3%81%AE%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E8%84%B3%E3%81%AE%E3%81%A4%E3%81%8F%E3%82%8A%E6%96%B9)

プログラミング初心者にとって「オブジェクト指向」とか言われても「知らんわ」という感じなんですよね。。そこでこの本から勉強を始めました。絵が多く電車とかでも読めます。

- [オブジェクト指向でなぜつくるのか](https://www.amazon.co.jp/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%81%A7%E3%81%AA%E3%81%9C%E3%81%A4%E3%81%8F%E3%82%8B%E3%81%AE%E3%81%8B-%E7%AC%AC2%E7%89%88-%E5%B9%B3%E6%BE%A4-%E7%AB%A0/dp/4822284654/ref=sr_1_1?s=books&ie=UTF8&qid=1534078039&sr=1-1&keywords=%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%81%A7%E3%81%AA%E3%81%9C%E3%81%A4%E3%81%8F%E3%82%8B%E3%81%AE%E3%81%8B)

オブジェクト指向の定番書。この本を熟読してオブジェクト指向とは何かを（多分）理解することができました。

### Web の基礎知識
- [プロになるための Web 技術入門](https://www.amazon.co.jp/%E3%80%8C%E3%83%97%E3%83%AD%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AEWeb%E6%8A%80%E8%A1%93%E5%85%A5%E9%96%80%E3%80%8D-%E2%80%95%E2%80%95%E3%81%AA%E3%81%9C%E3%80%81%E3%81%82%E3%81%AA%E3%81%9F%E3%81%AFWeb%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%82%92%E9%96%8B%E7%99%BA%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%81%AE%E3%81%8B-%E5%B0%8F%E6%A3%AE-%E8%A3%95%E4%BB%8B/dp/4774142352/ref=sr_1_1?s=books&ie=UTF8&qid=1534078160&sr=1-1&keywords=%E3%83%97%E3%83%AD%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AEWeb%E6%8A%80%E8%A1%93%E5%85%A5%E9%96%80)

Rails チュートリアルが初心者にとって難しいのは、Web に関する基礎知識がないからだと思い、チュートリアルを進めながらこの本も読んでいました。図が多くすぐ読めます。

- [webを支える技術](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=1534078258&sr=1-1&keywords=web%E3%82%92%E6%94%AF%E3%81%88%E3%82%8B%E6%8A%80%E8%A1%93)

これも Rails チュートリアルを進めながら読みました。これも定番書でよく読まれているだけあって、記述が初心者にもとても分かりやすいです。

### Git・Github
- [Progate Git](https://prog-8.com/languages/git)

アプリを作る上で Git の基本操作がマスターする必要があります。まずは、Progate で勉強を始めました。さっとこなせるのでオススメです。

- [GitHub実践入門 ~ Pull Requestによる開発の変革](https://www.amazon.co.jp/GitHub%E5%AE%9F%E8%B7%B5%E5%85%A5%E9%96%80-Pull-Request%E3%81%AB%E3%82%88%E3%82%8B%E9%96%8B%E7%99%BA%E3%81%AE%E5%A4%89%E9%9D%A9-PRESS-plus/dp/477416366X/ref=sr_1_1?s=books&ie=UTF8&qid=1534078434&sr=1-1&keywords=GitHub%E5%AE%9F%E8%B7%B5%E5%85%A5%E9%96%80+%7EPull+Request%E3%81%AB%E3%82%88%E3%82%8B%E9%96%8B%E7%99%BA%E3%81%AE%E5%A4%89%E9%9D%A9)

この本に書いてあることが実践できれば、基本的な Git と Github の操作に関してはマスターできたことになるのかなと思います。記述も分かりやすく、とてもよくまとまっています。

### HTML・CSS
- [Progate HTML & CSS](https://prog-8.com/languages/html)

また Progate です。でも本当に分かりやすいです。一冊本買うくらいなら一ヶ月 Progate の有料会員（月1000円）になってみっちりやる方が圧倒的にコスパ良いです。

- [HTML 5 & CSS 3 標準デザイン講座](https://www.amazon.co.jp/HTML5-CSS3%E6%A8%99%E6%BA%96%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E8%AC%9B%E5%BA%A7-%E8%8D%89%E9%87%8E-%E3%81%82%E3%81%91%E3%81%BF/dp/4798142204/ref=sr_1_1?s=books&ie=UTF8&qid=1534078928&sr=1-1&keywords=html+css+%E6%A8%99%E6%BA%96%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3)

辞書代わりに使っていました。説明が分かりやすいのと、適度にカラフルなレイアウトでとても読みやすいです。

### データベース・SQL
- [Progate SQL](https://prog-8.com/languages/sql)

ここまで来ると Progate の回し者みたいですが違います。。まずはやはり Progate から始めるのが良いと思います。

- [達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ](https://www.amazon.co.jp/%E9%81%94%E4%BA%BA%E3%81%AB%E5%AD%A6%E3%81%B6DB%E8%A8%AD%E8%A8%88-%E5%BE%B9%E5%BA%95%E6%8C%87%E5%8D%97%E6%9B%B8-%E5%88%9D%E7%B4%9A%E8%80%85%E3%81%A7%E7%B5%82%E3%82%8F%E3%82%8A%E3%81%9F%E3%81%8F%E3%81%AA%E3%81%84%E3%81%82%E3%81%AA%E3%81%9F%E3%81%B8-%E3%83%9F%E3%83%83%E3%82%AF/dp/4798124702/ref=sr_1_1?s=books&ie=UTF8&qid=1534079431&sr=1-1&keywords=%E9%81%94%E4%BA%BA%E3%81%AB%E5%AD%A6%E3%81%B6DB%E8%A8%AD%E8%A8%88+%E5%BE%B9%E5%BA%95%E6%8C%87%E5%8D%97%E6%9B%B8+%E5%88%9D%E7%B4%9A%E8%80%85%E3%81%A7%E7%B5%82%E3%82%8F%E3%82%8A%E3%81%9F%E3%81%8F%E3%81%AA%E3%81%84%E3%81%82%E3%81%AA%E3%81%9F%E3%81%B8)

データベースに関する定番書。この本を読めば、データベース設計に関する基本的なところは抑えられるかなと思います。具体例が豊富で分かりやすいです。

- [ドットインストール MySQL 入門](https://dotinstall.com/lessons/basic_mysql_v3)

MySQL を使う場合は是非これを見ておくと良いと思います。Rails のドットインストールとは違って、こちらはオススメです。説明がとても分かりやすく、MySQL の全体像を学ぶためにはとても良いコンテンツだと思います。

### テスト
- [知識ゼロから学ぶソフトウェアテスト](https://www.amazon.co.jp/%E7%9F%A5%E8%AD%98%E3%82%BC%E3%83%AD%E3%81%8B%E3%82%89%E5%AD%A6%E3%81%B6%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%83%86%E3%82%B9%E3%83%88-%E3%80%90%E6%94%B9%E8%A8%82%E7%89%88%E3%80%91-%E9%AB%98%E6%A9%8B-%E5%AF%BF%E4%B8%80/dp/4798130605/ref=sr_1_1?s=books&ie=UTF8&qid=1534079561&sr=1-1&keywords=%E7%9F%A5%E8%AD%98%E3%82%BC%E3%83%AD%E3%81%8B%E3%82%89%E5%AD%A6%E3%81%B6%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%83%86%E3%82%B9%E3%83%88)

テストに関する基礎知識がこれ一冊で学べます。これも定番書。あまり難しくなく平易な文章で書かれているので、さっと読めます。

# 終わりに
ここまでつらつらと、さも独学で全て勉強したかのように書いてきましたが、実は違います。先輩エンジニアの方に週２回各３０分ずつ、ちゃんと正しく理解できているのかレビューをしてもらったり、適宜分からないところを質問したりして進めていました。

一から完全に独学でこれらの内容を３ヶ月半で身に付けるのは、今考えると自分には無理だろうなと思います。ここまで書いておいて何ですが、一番大切なのは、自分の理解度をチェックしたり質問できたりする環境かもしれないですね。

ただ、そのような環境を自分で作ることが難しい方もいるかと思うので、この記事がそのような方々の今後の勉強の参考に少しでもなってくれると嬉しいです。