プログラミング初心者が半年でオリジナルアプリを作った話　２(Ruby学習編）

どうもアプリ開発記録第二弾です！

はじめから読みたい人は
[プログラミング初心者が半年でオリジナルアプリを作った話　１（環境構築編）](http://qiita.com/_kazuya0825/items/5a0892d2da1a95872e40)
まで！

#１,環境構築を終えたあと

プログラミング環境構築を終えた私はいよいよ本格的にプログラミングが始められるようになりました。

今回はざっと、自分が今までどのように学習してきたかの流れを見ていこうと思います。
まず、行ったのが,

#Rubyの学習です

前回いきなり挫折しましたが（パソコン動かなくなる笑）
基礎的なことを全く知らなかった私はいきなり動くプログラムなんか作れないと考えたので、
当時は無料であったprogateを使って学習しました！
すごくおすすめのプログラミング学習サービスです！

![progate.png](https://qiita-image-store.s3.amazonaws.com/0/110060/be48a44a-d618-2c50-cee2-d1e0a13750d2.png)


https://prog-8.com/


progateのおかげでclassの概念やオブジェクト指向の概要的なものが理解できたし、
初心者にも理解できるように優しく解説されていて、すんなり理解できました！

レッスンを行っている時、意味のわからない単語や用語が出てきた時はすぐに調べ、メモを残すようにしました！
こういう細かな記録を行うことは非常に大切だと思います。
後でわからなくなったり見直したい時などすぐに検索して出すことができるので今でも重宝しています。

![スクリーンショット 2017-01-23 14.07.43.png](https://qiita-image-store.s3.amazonaws.com/0/110060/e87d5ca2-8ea7-54ae-49b5-02868c5faa70.png)


このレッスンを終えたあとRailsは使わず、Ruby単体で自分でオリジナルのプログラムをいくつか書いて知識を定着させました！

progateのレッスンでは英単語ゲームを作ろうとの事だったのですが、
当時の私は、ちょうど大学で中国語の授業をとっていましたので！
中国語の問題集アプリで機能を増やして、試しに作ってみました！

![rubygame.png](https://qiita-image-store.s3.amazonaws.com/0/110060/e7b87f15-b2f2-5b1f-cea1-1447b5065a9f.png)


こういうふうにただレッスンをやるだけで終わるのではなく、自分で企画の段階から簡単でもいいのでオリジナルのプログラムがかけるように意識しました！

一応ソースを載せておきます。
[Githab-rubygame](https://github.com/Iovesophy/ruby-game)
## Github での clone の方法

Gitは前回出てきましたね！
他人のソースを自分のコンピュータに取り込むには

```bash
$ git clone https://------（githubのクローンしたいリポジトリのURL）
```
でクローンできます！

この場合は

```bash
$ git clone https://github.com/Iovesophy/ruby-game.git

```
でクローンできると思います。
クローンする際のURLはどこで調べるかというと、
Githubの場合ですが、

![範囲を選択_012.png](https://qiita-image-store.s3.amazonaws.com/0/110060/58533dd3-598c-a93d-672c-2ec9b99d8582.png)

の右上の　Clone or downloadをクリックすればURLが表示されます!


このコードはRubyのすごく基本的なものしか使っていませんが、メソッドとか演算子とか配列、条件式なんかが理解できるようになればこの段階から十分
Ruby On Railsに取り掛かれるなと思います。

#ここまでのまとめ
* まずRubyを学習した。
* 細かいメモを取ることは大切。
* プログラミング学習サービスの利用。
* コード写生で終わるのではなくオリジナルのプログラムを簡単にでも作ってみる。
* Githubからのcloneの方法。

#2,Ruby On Rails の学習を始める。

ここまでやってきたことを久しぶりに友人に会ったので報告したところ
progateは知らなかったようで面白いサイトだとびっくりしていました！

中国語の問題のプログラムにも感心してくれました：）

ここでprogateもいいけど自分がRubyでアプリ作るときに学んだのは
rails tutorialだからそれやってみたら？

とおすすめしていただきました！

早速、おすすめされたサイトにアクセスしてみました。
![範囲を選択_013.png](https://qiita-image-store.s3.amazonaws.com/0/110060/de62f772-9bde-6285-ca81-9b609883bb9e.png)

https://railstutorial.jp/

そこで、第一章に取り組むのですが、、、

GitやCommandlineの使い方から丁寧に解説してありめちゃめちゃびっくりしました！
曖昧であったGitの使い方が具体的に説明してあったり、
前回説明したshellのコマンドの使い方などが示してあったり、
でも、このへんをいきなり見るわけではなく前回からLinuxポケットコマンドリファレンスを斜め読みしていたおかげで一章は比較的楽にすすめることができました！
ありがとう友人よ！

しかし、肝心のRailsの使い方のようなものがあまりこの時点では理解できませんでした笑

続いて第二章、、、
ここ読むのに３日ぐらいかけてなんとか進められました、、、
そう、やはり初心者にはRuby On Rails の学習コストは高いと思います。
しかし、二章を読破すればデプロイまでの基本的な流れのようなものが理解できることになりますので、勉強にはなるのですが、いかんせん辛い笑

ということで、
ここで一回progateに立ち返ってRuby On Railsのレッスンをやってみることをおすすめしたいです。

自分はなんとか読み進めましたが何度も挫折しかけてます笑
私は後でprogateのRailsのレッスンをやりましたがより理解が深まりましたし圧倒的にrails tutorialのほうが難しいので、、

しかし、rails tutorialを読み進めることができれば相当な力が身につくと思います！

ここでrails tutorialを読み進める上でのポイントなどをまとめようと思います。

#rails tutorial読破のポイント

* 第二章のtoyアプリケーション作成のところを理解できるように二周ぐらいすると良いと思う。（全体的な流れやrailsの基礎が理解できるため。）
* cloud9を利用しない場合herokuへのデプロイでつまずくと思うが（[herokuにデプロイ](http://kenixi.github.io/2016/02/04/deploy-to-heroku/)）を参考に解決できると思う。

``` bash
$ find ./ -type f -print | xargs grep '/usr/bin/env ruby2.3'
./bin/bundle:#!/usr/bin/env ruby2.3
./bin/rails:#!/usr/bin/env ruby2.3
./bin/rake:#!/usr/bin/env ruby2.3
./bin/setup:#!/usr/bin/env ruby2.3
```
でこのrubyのバージョンをなくしてあげるとherokuでも動くようになるはずです。

``` bash
$ vim ./bin/bundle

$ vim ./bin/bundle

$ vim ./bin/rake

$ vim ./bin/setup

```
でそれぞれ編集できると思います！
私はこの問題でまるまる一週間ぐらい費やしました、、、笑

* 第十二章あたりからたまにテストが通らなくなると思いますが（経験的に笑）自分のコードに誤りがある場合がほとんどです。   
（最初私はtutorialが間違ってるんじゃないかと疑ってしまい無駄な時間を過ごしたため笑）
* もし、どうしても解決できなかったらエラーのテストを抜いてみるのもありだと思うし、teratailというプログラマの質問サイトなどで聞いてみるのも初心者なのでありだと思います！（[teratailリンク](https://teratail.com/)）
* とにかくぼちぼちでも毎日継続して１０分でもコードを書くこと！  
（前回の内容とか忘れたらまた立ち返らなくてはなりませんし知識が曖昧になりやすいと思います。自分の場合は第四章からしばらく時間をおいてしまったのでまた第二章から理解が追いつかなくなったので読みなおしています笑）

このくらいがざっと私の経験的なポイントだと思いますのでtutorialをこれからやる人頑張ってください！

あと最後に重要なアドバイスをしておきます！
私はこのtutorialでGithubを使っていましたが、
rails tutorialを進めるうちにaws S3を使う章が出てくるのですが！
このS３でのシークレットキーがそのままGithubに上げてしまいますと情報が流出する可能性があり、悪用されかねません！
私自身rails tutorialの著書である”マイケルハートル”さんから直接メールをいただいて忠告してくださいました！
![スクリーンショット 2017-01-23 16.52.23.png](https://qiita-image-store.s3.amazonaws.com/0/110060/11156574-790c-2cdb-ef69-9df773f01704.png)


もしtutorialに挑戦するみなさんはできればGithubよりクローズドなGitサーバーを使うことをお勧めします！
rails tutorialでもBitbucketがお勧めされています！
私の場合は友人の勧めでraspberry pi上にGitLabを使ってGitサーバーを構築しています。
この構築法も次回の記事で紹介させていただきたいと思います！

#ここまでのまとめ

* rails tutorialを読もう！
* 毎日コツコツ１０分でもコードを書いていたら絶対tutorialを読破できる！
* ググってもでなくて行き詰まったらteratailを使ってみるのもあり！
* テストで行き詰まることは多いがよく見なおしたり調べたら解決できることが多し、また、どうしてもテストが通らない時は後回しにして読破することを念頭においたほうが進むし、後で理解できることもよくある。

rails tutorialのサンプルアプリが動いた時の感動はもうすごいですよ笑
ぜひ、私と同じ、初心者の方！
rails tutorialをやってみてください！

今日はここまで!
次回はRubyの学習を一通り終えて、オリジナルアプリを作る上での話を書きたいと思います。

前回記事＝＞[プログラミング初心者が半年でオリジナルアプリを作った話　１（環境構築編）](http://qiita.com/_kazuya0825/items/5a0892d2da1a95872e40)

現在ここ＝＞プログラミング初心者が半年でオリジナルアプリを作った話　２（Ruby学習編）