過去に戻っても、この順番で学びたい！[Rails]


僕がプログラミングを学び始めたのは、ちょうど一年前。
今振り返ってみると、「この本を前に読んで置けばもっと学習効率あがったのに！」ていうことが沢山ありました。なので、振り返りつつまとめたいと思います。

(随時、更新中です。まだまだ書きたいことがあります。)

#Railsを学習する順番

## ① Rubyの文法を学ぶ

●[ドットインストール(Ruby)](https://dotinstall.com/lessons/basic_ruby_v3)

＊動画学習が厳しい人は、競技プログラミング(パズルをプログラミングで解く)がおすすめです。

●[paiza](https://paiza.jp/challenges/info) (ランクがあがると企業からオファーがきます。夢がある！)
<img width="749" alt="スクリーンショット 2018-04-25 15.32.12.png" src="https://qiita-image-store.s3.amazonaws.com/0/132150/769c4c9f-f6e0-7d63-0333-f2eee5916377.png">

●[clash of code](https://www.codingame.com/multiplayer/clashofcode)　 (コードゴルフというコードを短くするテクニックが学べることや人のコードが見れることが良いところです。ちなみに日本人はあまりしていないので、すぐに日本ランキング1桁になれます。)
<img width="1403" alt="スクリーンショット 2018-04-25 15.33.16.png" src="https://qiita-image-store.s3.amazonaws.com/0/132150/2db59082-3989-f384-8981-9e6b3c2af1b9.png">


## ② Sinatraを学ぶ

SinatraはRailsより小さいなフレームワークなのでさくっと作れます。
●[ドットインストール(Sinatra)](https://dotinstall.com/lessons/basic_sinatra_v2)


## ③ 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)を読む。(3層構造の理解、webの歴史が学べる。)

Railsを使っていると、Webサーバーの存在を忘れがちです。
本来はWebサーバーがありきで、動的コンテンツを配信するためにAPサーバーやRialsなどのアプリケーションがきます。(実はRailsなどは二の次なのです。)

↓僕が読んだ時にメモしたもの(字が汚くてごめんなさい...)
![IMGP0681.JPG](https://qiita-image-store.s3.amazonaws.com/0/132150/3110dd26-8da5-4a3b-1da2-db8647660811.jpeg)
**三層構造**(実はRailsアプリだけだと動かないのです。)

![IMGP0682.JPG](https://qiita-image-store.s3.amazonaws.com/0/132150/2e8489be-f354-e2cb-0a17-82507f5d5619.jpeg)
開発環境だと構成は最小なものに




## ④ Rails Tutorialをする

●[Rails Tutorial](https://railstutorial.jp/)
とっても長いですが、避けては通れない道です。
[Git](https://backlog.com/ja/git-tutorial/)管理などの練習もできるので絶対やったほうがいいと思います。

他にも[Rails Girls](http://railsgirls.jp/)のドキュメントも良いときくので、こちらも余裕があれば是非。

## ⑤ 自分でプロジェクトを作る

といはいえ自分で作りたいものがない人には厳しいと思います。
その人達は[Udemyのairbnbサイトを作る](https://www.udemy.com/ruby-on-rails-g/)などに
取り組みむのが実践的でなおかつコスパが良いと思います。


# 同時に勉強したらHappyになれること

### **エディター vim**


[ドットインストール](https://dotinstall.com/lessons/basic_vim)

定期的に確認すると自分のレベルを確認する。
[レベル確かめる](https://qiita.com/hachi8833/items/7beeee825c11f7437f54)


### **コンソール(黒い窓)**
[iterm2(コピペ、タブ操作簡単)] (http://vdeep.net/iterm2)


### **シェル設定**

[zsh](https://qiita.com/iwaseasahi/items/a2b00b65ebd06785b443)に変更する(zshはプラグインが多いので簡単にcoolなターミナルにできる)


[peco](https://qiita.com/shepabashi/items/f2bc2be37a31df49bca5)を導入する(history検索が簡単にできる←死ぬほど便利)



### **作業効率**
[デスクトップ割り当て](https://qiita.com/saboyutaka/items/d6cfd2a2b60f1a374d60)(1つのデスクトップにエディターやらターミナルを起動すると移動が遅くなる。)


### **メモ帳**
[Quiver](https://github.com/HappenApps/Quiver/wiki/Quiver%E3%82%92%E3%81%AF%E3%81%98%E3%82%81%E3%82%88%E3%81%86)(エンジニアがよく使ってる。)


### **google chrome プラグイン**
プラグインを導入すると、便利なコマンドが使える。

[おすすめ一覧] (https://saruwakakun.com/it/web/chrome-extensions)

僕の[おすすめ](https://chrome.google.com/webstore/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb)(j kで上下移動できるようになる。)　


### **ショートカットキーを覚える**

google chromだと

アドレスバーにフォーカス
Command＋L

タブを開く
Command＋T

タブを閉じる
Command＋W

タブ移動
Ctrl＋Tab

色々あるので調べると◯
（基本的にトラックパッドは使わないようにする。←遅いので）