Railsプログラマスキルセットマスターガイド

# **はじめに**
タイトルからいろいろぶちあげていますが釣りです。
正確にはぼくが考える**「プログラミング初学者がRailsプログラマになるために最低限必要なスキルセットとその学習方法」**ということです。

注意事項として、ぼくもまだ全部やっていないのでどのくらいまでの効果があるのかもわからない、且つプログラマでもないので足らないこと、不要なことも色々あるかもというよりありまくるかもしれません。

もし**「こういうことやればいいんじゃない？」**とか**「それはやる必要ないだろ・・・。」**とか**「こういうスキルも必要だよ」**というようなアドバイス的なものをいただけるとうれしいです。

# **前提条件**
- Linuxの知識は最低限有している
- 環境構築については除外

# **Railsプログラマに必要なスキルセット**
- フロントエンド
  - HTML / CSS
  - Bootstrap
  - Javascript
  - jQuery
  - Haml / SASS / CoffeeScript 等のAlt系
- バックエンド
  - Ruby
  - Ruby on Rails
- データベース
  - MySQL
  - PostgreSQL
  - ActiveRecord
  - SQL
- テスト
  - RSpec
- その他
  - Git / GitHub
  - Heroku

# **フロントエンド**
## **HTML / CSS**
### ドットインストール
- [HTML入門](http://dotinstall.com/lessons/basic_html_v3)
- [CSS入門](http://dotinstall.com/lessons/basic_css3_v2)
- [CSSレイアウト入門](http://dotinstall.com/lessons/basic_css_layout)
- [CSSで吹き出しを作ろう](http://dotinstall.com/lessons/balloon_css)
- [CSSで吹き出しを作ろう](http://dotinstall.com/lessons/balloon_css)
- [実践！ウェブサイトを作ろう](http://dotinstall.com/lessons/website_html)
- [レスポンシブなウェブサイトを作ろう](http://dotinstall.com/lessons/responsive_html)
- [Emmet/Zen-coding入門](http://dotinstall.com/lessons/basic_emmet)

### Codecademy
- [Learn HTML & CSS](https://www.codecademy.com/learn/learn-html-css)
- [HTML & CSS](https://www.codecademy.com/learn/web)
- [Make a Website](https://www.codecademy.com/learn/make-a-website)

## **Bootstrap**
### ドットインストール
- [Bootstrap 3.0入門](http://dotinstall.com/lessons/basic_twitter_bootstrap_v4)

## **Javascript**
### ドットインストール
- [JavaScript入門 ](http://dotinstall.com/lessons/basic_javascript_v2)
- [JavaScriptでおみくじを作ろう](http://dotinstall.com/lessons/omikuji_js_v2)
- [JavaScriptでストップウォッチを作ろう](http://dotinstall.com/lessons/stop_watch_js_v3)
- [JavaScriptで5秒当てゲームを作ろう](http://dotinstall.com/lessons/just_five_js_v2)
- [JavaScriptで割り勘電卓を作ろう](http://dotinstall.com/lessons/go_dutch_js_v2) 
- [JavaScriptでパスワードジェネレータを作ろう](http://dotinstall.com/lessons/pwd_generator_js_v3)
- [JavaScriptで文字数チェッカーを作ろう](http://dotinstall.com/lessons/char_checker_js_v3)

### Codecademy
- [Learn JavaScript](https://www.codecademy.com/learn/learn-javascript)
- [JavaScript](https://www.codecademy.com/learn/javascript)

## **jQuery**
### ドットインストール
- [jQuery入門](http://dotinstall.com/lessons/basic_jquery_v2)
- [jQueryで作るキャラ診断](http://dotinstall.com/lessons/shindan_js_v2)
- [jQueryで作る先頭へのジャンプ機能](http://dotinstall.com/lessons/scroll_js)
- [jQueryで作る間違い探しゲーム](http://dotinstall.com/lessons/doubt_js)
- [jQueryで作るスライドショー](http://dotinstall.com/lessons/slideshow_jquery)

### Codecademy
- [jQuery](https://www.codecademy.com/learn/jquery)

## **Haml / SASS / CoffeeScript 等のAlt系**
### ドットインストール
- [Haml入門](http://dotinstall.com/lessons/basic_haml)
- [Sass/SCSS入門](http://dotinstall.com/lessons/basic_sass)
- [CoffeeScript入門](http://dotinstall.com/lessons/basic_coffeescript_v2)

### Codecademy
- [Learn Sass](https://www.codecademy.com/learn/learn-sass)

## **フロントエンドを体系的に学べるWEBサービス**
- [FreeCodeCamp](https://www.freecodecamp.com)
  - HTML / CSS / Javascript / jQuery / Bootstrap を学べる


# **バックエンド**
## **Ruby**
### ドットインストール
- [Ruby入門](http://dotinstall.com/lessons/basic_ruby_v3)

### Codecademy
- [Ruby](https://www.codecademy.com/learn/ruby)

### その他WEBサービス
- [Rubyがミニツク](http://www.minituku.net/)

### その他確認しておいた方がよいもの
- [Rubyコーディング規約](https://shugo.net/ruby-codeconv/codeconv.html)
- [Rubyリファレンス](https://www.ruby-lang.org/ja/documentation/)
- [[初心者向け] RubyやRailsでリファクタリングに使えそうなイディオムとか便利メソッドとか](http://qiita.com/jnchito/items/dedb3b889ab226933ccf)
- [Rubyソースコード完全解説](http://i.loveruby.net/ja/rhg/book/)

### 書籍
- [たのしいRuby](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_1?ie=UTF8&qid=1475159183&sr=8-1&keywords=%E3%81%9F%E3%81%AE%E3%81%97%E3%81%84Ruby)

## **Rails**
### ドットインストール
- [Ruby on Rails 4入門](http://dotinstall.com/lessons/basic_rails_v2)

### Codecademy
- [Learn Ruby on Rails](https://www.codecademy.com/learn/learn-rails)
- [Ruby on Rails: Authentication](https://www.codecademy.com/learn/rails-auth)

### 書籍
- [Ruby on Rails 4 アプリケーションプログラミング](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_1?ie=UTF8&qid=1458486477&sr=8-1&keywords=ruby+on+rails+4)

### WEB
- [小学生でもわかるRuby on Rails入門](https://openbook4.me/projects/92)
- [Railsチュートリアル](http://railstutorial.jp/)
- [Railsガイド](http://railsguides.jp/)

# **データベース**
## **MySQL / PostgreSQL / ActiveRecord / SQL**
### ドットインストール
- [MySQL入門](http://dotinstall.com/lessons/basic_mysql_v2)
- [PostgreSQL入門](http://dotinstall.com/lessons/basic_postgresql)
- [ActiveRecord入門](http://dotinstall.com/lessons/basic_activerecord)
- [SQLite入門](http://dotinstall.com/lessons/basic_sqlite_v2)

### Codecademy
- [Learn SQL](https://www.codecademy.com/learn/learn-sql)
- [SQL: Table Transformation](https://www.codecademy.com/learn/sql-table-transformation)
- [SQL: Analyzing Business Metrics](https://www.codecademy.com/learn/sql-analyzing-business-metrics)

### その他
- [Webブラウザで気軽に学ぶ実践SQL講座](http://www.atmarkit.co.jp/ait/kw/jissen_sql_kouza.html)

### Qiita
- [【新人教育 資料】第1章 SQLへの道 〜DB編〜](http://qiita.com/devopsCoordinator/items/9b70e506150888e190be)
- [【新人教育 資料】第2章 SQLへの道 〜3値論理編〜](http://qiita.com/devopsCoordinator/items/9c10410b50f8fcc2ba79)
- [【新人教育 資料】第3章 SQLへの道 〜基本数学編〜](http://qiita.com/devopsCoordinator/items/08e405a9c58cc203d016)
- [【新人教育 資料】第4章 SQLへの道 〜SQL基本操作編〜](http://qiita.com/devopsCoordinator/items/0f742158caf0fdb533e3)
- [【新人教育 資料】第5章 SQLへの道 〜絞込編〜](http://qiita.com/devopsCoordinator/items/dca5aa9c155292f1c6ea)
- [【新人教育 資料】第6章 SQLへの道 〜ソート編〜](http://qiita.com/devopsCoordinator/items/8cad032aa035dc1cdbc0)
- [【新人教育 資料】第7章 SQLへの道 〜集合関数（SUM、MAX、MIN、AVG、COUNT）編〜](http://qiita.com/devopsCoordinator/items/85918c8508dddf19586f)
- [【新人教育 資料】第8章 SQLへの道 〜グループ編〜](http://qiita.com/devopsCoordinator/items/f74228615982932c914b)
- [【新人教育 資料】第9章 SQLへの道 〜結合編〜](http://qiita.com/devopsCoordinator/items/3ba154429973a4ddc9e0)

# **テスト**
## **RSpec**
### ドットインストール
- [RSpec入門](http://dotinstall.com/lessons/basic_rspec)

### その他
- [使えるRSpec入門・その1「RSpecの基本的な構文や便利な機能を理解する」](http://qiita.com/jnchito/items/42193d066bd61c740612)
- [使えるRSpec入門・その2「使用頻度の高いマッチャを使いこなす」](http://qiita.com/jnchito/items/2e79a1abe7cd8214caa5)
- [使えるRSpec入門・その3「ゼロからわかるモック（mock）を使ったテストの書き方」](http://qiita.com/jnchito/items/640f17e124ab263a54dd)
- [使えるRSpec入門・その4「どんなブラウザ操作も自由自在！逆引きCapybara大辞典」](http://qiita.com/jnchito/items/607f956263c38a5fec24)

### 書籍
- [Everyday Rails - RSpecによるRailsテスト入門](https://leanpub.com/everydayrailsrspec-jp)

# **その他**
## **Git / GitHub**
### ドットインストール
- [git入門](http://dotinstall.com/lessons/basic_git)

### Codecademy
- [Learn Git](https://www.codecademy.com/learn/learn-git)

### WEB
- [サルでもわかるGit入門](http://www.backlog.jp/git-guide/)
- [Atlassian Git チュートリアル](https://www.atlassian.com/ja/git)
- [Pro Git](https://progit-ja.github.io/)

## **Heroku**
### ドットインストール
- [Heroku入門](http://dotinstall.com/lessons/basic_heroku)

## **おわりに**
いろいろと書いてみましたが、やはり手を動かすのが一番だと思いますので、上記をこなしつつ、作りたいものを完成度がひどくてもどんどん作って、ブラッシュアップしていくというサイクルをまわせていければ良いなと思います！

本エントリも適宜、アップデートしていきたいと思います＾＾