Railsチュートリアルをやってみた未経験者の経験談



## 始める前のステータス
- Ruby on Railsを触るのはほぼ初めて
- html & cssの知識が少しある
- 開発環境を作ったことがある（vagrant + virtualbox CentOS7）

## 目次
1. きっかけ
2. 第3章を終えて気づくこと
3. 序盤の失敗
4. ハマったエラーから学んだこと
5. Railsチュートリアルで得たもの（まとめ）
6. 余談

## 1.　きっかけ
営業マンから転職し、未経験でプログラマーとなった私は現在研修中の身。
その一環でRailsチュートリアルをやることになりました。
この時は「Railsチュートリアル？」と思ってしまうくらい未知の領域でした。

## 2.　第3章を終えて気づくこと
当初、「チュートリアル」で想像したのはゲームとかの序盤で入るイベントのようなもの。
つまり、「○ボタンを押すと攻撃します」くらいの超初心者向け講座だと思ってました。

しかし3章を終えたあたりから状況は一変。Ruby on Railsの難しさに直面します。
さらに解説も初心者にとっては全く優しくありません。
初見のカタカナを容赦なく使われ、読んでる途中で頭が突然真っ白になることも多々・・・。
今考えると、僅かながらでもhtmlとcssの知識があったことが救いでした。

## 3.　序盤の失敗
それでも手を動かさないと先には進みません。だから手を動かしながら進めていけばそのうち身についてくる！
とか考えていたのが大きな過ちでした。
分からないと思った時に理解できるまで調べないと、本当に意味不明なまま進んでしまいます。　

```
■ Rチ 「最終的にコードはこれだよ！」

□ 私　「ほいほい～（カタカタ・・）」

■ Rチ 「ちなみにここでは返ってきた論理値がtrueであることが重要なんだけど、
      !!でそのオブジェクトが対応する論理値オブジェクトに変換できることは第4章で解説したよね！
      思い出してね！次いくよ！」

□ 私　「えっ・・えっ・・え・・・うん、次。」
```
こんな感じです。コピペみたいなことだけして理解はしてない。
<br>
この過ちに気づいた私は、後から延々と言葉を調べ出します。
Railsチュートリアル学習における唯一の失敗は「分かったフリ」だと思います。
本当に危険。罪。　　<br>

※1周目は全然理解できなくても流してやってみる・・・というのもアリかなと。
私の場合は会社の研修ということもあり、最初から本気モードで臨みました。

## 4.　ハマったエラーから学んだこと
この学習を進めていくと、沢山のエラーと出会うことができます。
そして解決していきながらエラーとの付き合い方がなんとなく分かってきます。

しかしそんな中でハマりにハマったエラーがありましたので、ご紹介したいと思います。

```
source 'https://rubygems.org'

gem 'rails',                   '5.1.6'
gem 'bcrypt',                  '3.1.12'
gem 'faker',                   '1.7.3'
gem 'will_paginate',           '3.1.6'
gem 'bootstrap-will_paginate', '1.0.0'
.
.
.
```
第10章で出会う、will_paginateというgemファイル。
簡単にページネーションを作成してくれるというものです。
ちなみにページネーションとはよく見るこれのこと。
![paginaton.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/358229/28afadcc-b22d-e09e-bf50-bbfbf9c621c5.png)

上記の画像のようになればいいのですが、こんなエラーが。

`argumenterror (wrong number of arguments (given 0, expected 1))`

引数エラー。欲しい値は１なのに、０ですよと言われています。
これではページネーションどころかページが開けません。
早速ググりますが、解決に結びつく記事は見つけられず、
debuggerを挿して調べても突然値がnilになってしまっていたり。

そして先輩に相談した結果、次の記事を見つけていただきました。
[kawabatas技術ブログ　Rails 5.1.6を5.2.1にアップデート](https://kawabatas.hatenablog.com/entry/2018/08/15/153722)

こちらの記事によると、
***Ruby on Rails 5.1.6ではハッシュのキーが文字列になっていたが、
5.2からはキーがシンボルになる***との事。

実は私、Railsチュートリアルで　`rails _5.1.6_ new sample_app` と
バージョンが指定されているにも関わらず、5.2を使用していました。<br>
`gem 'rails',        '5.1.6'`にして`bundle install`　→　見事解決。


・

・

・

私がこのエラーから学んだことは二つ。一つ目は
**バージョンの変化を甘くみていた。** 
「バージョンの指定があるけど最新なら大丈夫でしょ」**じゃダメなんです。** 
物事には理由があるんですね。
進化が早いジャンルだからこそ、しっかりしておかなくてはなりません。

そして二つ目は
**調べ方がまだまだ下手。**
私はこのエラーでかなりハマりましたが、先輩はすぐに上記の記事に辿り着きました。流石です。
これについては沢山エラーに出会って、磨いていきたいと思います。

バージョン5.1から急に5.2にしたため、この後様々な場面でエラーに出くわしました。
ですが結果的に、これがとても良い経験になりました。

## 5.　Railsチュートリアルで得たもの（まとめ）
- かなり具体的にRailsを知ることができる
- git、bitbucket、heroku など、Rails以外のことも勉強できる
- エラーに遭遇できる　→　必然的に沢山調べるようになり、知識が身に付いた
- Railsの難易度と、自分のレベルが分かる

最後に関しては最も大切だったような気がします。
私はあと約1か月で社内の業務にあたる予定なので、かなり危機感を覚えました。
でもそれがモチベーションになるんですよね。
1周で全てを完璧に理解することは難しいので、「もっとやらんと！」ってなれます。

たまに「未経験からのRailsチュートリアルは挫折する」という記事を見たりしますが、
個人的には未経験の方にこそ挑戦してほしい教材のように感じました。<br>


## 6.　余談
Railsチュートリアルを進めていく中で自分がやったことを記述しておきます。

#### ・解説を読んでいる途中で思考停止状態になる
こんな時、なかなか理解しづらかった解説を図にしてみました。
![iOS の画像.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/358229/edc7ebda-58ba-4769-8bf7-7b409ed4409b.jpeg)


とても汚い図ですが・・・。
これを行うと、解説が分かりやすくなりますし、
後々それぞれのコードやファイルがどんな役割をしているかが理解できます。

#### ・Railsチュートリアル経験者と話す
こちらは環境の問題もあると思いますが、話題を共有できることは大きいことでした。<br>
もしその環境がない場合はRailsチュートリアルにも書いてある通り、<br>ブログやTwitterに進捗を投稿することをお勧めします。


<br>
以上！
いずれ2周目をやりたいと思います。
<br>
<br>