プログラミング未経験者におけるRailsチュートリアルとの接し方

　ポテパンキャンプの受講が始まり，１週目でメモした進捗記録や動画解説を見つつ，３周目のRailsチュートリアルを取り組んでおりますが，再度この教材の難しさを噛み締めて進めています。

　そのような中，Googleで「Railsチュートリアル」で検索すると「挫折」や「難しい」という言葉が検索候補に出るなど，みんなが同じ思いを抱えていると感じ入り，また，「挫折しない方法」も見つかるので，私の経験も一助になればと思い「チュートリアルに取り組む前の自分に伝えたいこと」を主軸にお話しします。

`【追記：2019年11月】
この記事を書いて、半年後にWebエンジニアとして働くことになりました。
半年経過した今でも、考えに変わりはありません。その上，最後まで取り組むことが出来たなら，プログラマの道に進むための堅い礎が築けるのではないかと思います。
しかし，これだけでは転職に結びつくことはないため，未経験からの足掛かり又は試金石程度に認識いただけると幸いです。
`

# ■ 学習前に最低限学ぶこと
##　1.　Progateでプログラミングの雰囲気を掴む
　Progateでチュートリアルに関連する学習コースをやりましょう。

　プログラミング未経験者が挫折しないためには，チュートリアルにも記載されているとおり，Progate等で基礎を固める必要があり，自分の頭をプログラミングに慣れさせることが重要です。
　特にRailsコースは，チュートリアルに関連する部分が多いことから，より効果的な学習に繋げるため，２周以上することをオススメします。
　学習コースは，[Railsチュートリアル](https://railstutorial.jp/)1.1.1前提知識をご参照ください。
##　２.　Rubyの理解を深める
　
　技術書で言語としてのRubyを学習しましょう。

　チュートリアルでは，「先にRubyを勉強するべきか？」という問いに対して，「読者の学習スタイルやプログラミング経験次第で異なる」と回答されておりますし，Rubyの事前学習の必要性は，各人の状況によるので千差万別なのは確かです（※１）。
　それでも，プログラミング未経験者には，挫折点を減らすだけではなく，今後続くRubyの学習にも必ず役立ちますので，技術書の一読をオススメします。

　技術書としては，「プロを目指す人のためのRuby入門」がオススメです。
　また，技術書を進める際にRubyを動かす開発環境を構築しますが，初心者にとって挫折点であるため，AWSに登録してCloud9を使用すると良いでしょう。
　登録方法は，[Railsチュートリアル](https://railstutorial.jp/)1.2.1開発環境をご参照ください。　

# ■ 学習時に心がけること
## □ 「分からないこと」を学ぶ姿勢でいること
　学習量が非常に多いことから，分からないことも多いため，最初は楽しくても段々とモチベーションが削られていきます。

　そのため，１周目は「こんな単語があるんだな」程度の理解に留めて，詳細を詰めすぎないようにしましょう。「２周目で調べよう」という気持ちでいれば余裕が生まれ，モチベーションが維持されます。


## □ 学習範囲を限定すること
　チュートリアルは，本にすると700ページ超の技術本になります。
　１周目では挫折点を回避するため，次の事項から「やらない事を規定」しましょう。私は１２３を取り組みました。
　ただし，２周目では省略しないで全て取り組みましょう。

　1.　コードを全てコピペ（コードの意味を理解しましょう）
　2.　演習を省略 or 答えをコピペ
　3.　本番環境を省略
　4.　Gitをローカルのみで管理（GithubやBitbucketを設定しない）
　5.　必須でない章は省略
　6.　テストを省略


# ■ 最終手段
　YassLabさんのRailsチュートリアル解説動画で学びましょう。
　
　私が解説動画を見たのは，ポテパンキャンプを受講した時であり，チュートリアルも３周目でありましたが，未経験で単語の読み方すら分からない自分にとって，周辺知識も含めて良く学べています。 
　１周目から購入しても良いですが，安い買い物では無いため，あくまで最終手段に位置づけます（怒られるかな…？）。


# ■ 経験談
## □ 学習前に学んだこと
　Progateで次のコースを学びました。

　最初は受験勉強の如く「何周もした方が良いのでは？」と考えましたが，何周もすると「Aの問題では，Aのコードを書く」と答えを暗記してしまい，コードの意味や目的を理解しなくなる懸念があったため，すぐにチュートリアルを始めました。
　理解度としては，コードの意味が分かる程度です。

　～Progateで勉強したコース～
　　・HTML & CSS　中級編まで
　　・JavaScript　Ⅲまで
　　・Ruby（２周）
　　・Ruby on Rails5（２周）
　　・Command Line　※チュートリアル中に勉強
　　・Git　※同上
　　・Sass　※同上
　　・SQL　※同上

## □ 所要時間と進め方
　１６日間で６０時間程度かけて完走しました（平日２ｈ，休日７ｈ）。
　中級者向けと言われるのに，初学者が覚えられるわけないので，１周目の途中からは「分からないことを学ぶ」姿勢を持ち，２週間という明確な期限を決めて臨みました（超過しましたが…）。
　期限内に終了するには不明点に時間をかけていられないので，不明点は「ここは，こういうもんなんだ」と理解を深めずに進め，また，２周目を円滑にするために進捗状況やエラーを記録しました。

## □ 感想
　私も１周目で何度も挫折しかけました。
　自分のタイプミスによるエラーや，チュートリアル通り進めても外部サービスの仕様が変更されたことにより出てくるエラー（例：AWSのS3）などが，解決できない事実を武器に私の自尊心を執拗に攻撃してきます。
　働きながらだと勉強時間も限られて，詰まる度に「自分はエンジニアに向いていないのではないか･･･？」と落ち込み，翌日，再挑戦したら呆気なく解決するということを繰り返しておりましたが，途中で本番環境を放棄しつつも完走することが出来ました。
　収穫としては，Railsへの理解やオリジナルアプリへの足がかりが出来たことのほか，エラーメッセージを解読する姿勢の構築や，どのようにGoogleで検索するかというエラーの検索方法を肌で学び，エラー耐性が向上したことが大きな収穫だと感じております。

# ■ まとめ
　Railsチュートリアルは，Railsの他にWeb開発に必要な多くの技術（Rubyの基礎，HTML/CSS，データベース，バージョン管理，開発技法など）に触れ，さらにエラー耐性を得られるため，プログラミング未経験者にとって良い教材です。
　ただし，その人にとって良い教材となるには，完走することが条件になりますので，例え挫折したとしても，すぐに立ち直り再挑戦する環境づくりが重要です。
　とにかく１周すると，２周目では心に余裕を持ち効果的に学べること，また，不明点を学ぶために他の書籍への興味にも繋がることで，エンジニアとしての土台が形作られると思います。

　本記事は，チュートリアルに取り組む前の自分に伝えたいことを元に記載しておりますが，多くの先人が挫折防止の知見を発信されており，比較すると「同じ事を言ってる…」という部分があると思います。その共通部分は，あなたにも参考となる可能性が高いので，特に意識してみると良いのではないかと考えております（※２）。

　これからRailsチュートリアルに取り組まれる方や挫折しそうな方の一助になれば幸いです。

***
〔注釈〕
※１：私の場合，Progate着手前の時点において，１ヶ月で転職の意思決定をする必要があり，時間的制約を受けたため，技術書に触れませんでした。今考えると事前知識が不足していたと感じております。

※２：逆に言うと非共通部分は，その人だけに当てはまる可能性があるので，疑いつつ試してみる程度でよいと考えます。