at backyard

Color my life with the chaos of trouble.

最速でRails 5入門してみた。その足跡。

来月から本格的にRails5を使うことになり、今月はひたすらRailsの勉強をしていた。
そもそもRuby自体ほとんど触っていなかったので、並行してRubyの勉強もしていた。
実際は勉強と言えるものではなく、ひたすらコード書いたり色々と触っていたりしただけだ。

今回学ぶにあたって参考にした記事などを、自身が学んだ順にこちらに書いていく。
RubyRailsを、これから学ぼうという方の参考に、少しでもなれば幸いだ。


なお、参考までに私のスキルセットは、
・業務にてJavaウェブアプリケーション開発を行い、あとはC♯やJavascript(主にフロントエンドにて)を少々。
・プライベートで、Pythonを嗜むという程度
あとは興味の赴くまま、ちょこちょこ色々触っている程度。

スキルレベル的には初心者レベルである

さて、というわけで書いていく。

Ruby on Rails入門

順番が逆だろ!と突っ込まれそうだが、業務外の時間を使って効率的に学ぶために、Rubyより先に、いきなりRailsから入ろうと思った。
一応RubyでもScriptを書いたりはしたことあったので、もう付け焼き刃でもなんでも、まずはRails使ってアプリを作れることが最優先だという風に考えていたのだ。
勿論、こういうのは危ない考えだとおもうが。


チュートリアルが鉄板で、公式の英語版がRails 5に対応しているので、基本的にそちらを見つつ、理解に苦しむ箇所を日本語で補っていった。

www.railstutorial.org

下記は日本版。

railstutorial.jp


Rails 5だと、

rails s
rails t

などと、簡潔に書けるので良いですね。

チュートリアル終えたあとも、再び最初から読み返すなど、繰り返し使えるチュートリアルである。
こんなすごいチュートリアルが無料でネットから読める(書籍も販売しています)とは、Rails界隈すげー!!という印象をまず持った。

初心者に優しいし、プログラミングしたことがない人がこういうところから、ガンガン入門できるのは良いことだと思いました。

ちなみにこういう記事もあるので、参考までに。
Rails触り始めた頃にたまたまこの記事を読んで、超便利でイケてるフレームワークの様々な側面を見た。
フレームワークの上であぐらをかくのではなく、しっかりツールとして使いこなしていかなくちゃと気を引き締めた。
(勿論、当然のことではあるけど)

blog.sumyapp.com


あと、チュートリアルやりながらGemやMinitestなどにも触れられるのも良かった。

それから、ある程度体系的にRailsを学ぶために書籍も購入。
こちらの本がお勧めとネット上で書かれていたので、購入した。

Ruby on Rails4 アプリケーション プログラミング


実際にチュートリアルをやりながら学ぶのとは、また別のスピード感でじっくり学べるので書籍を使った勉強は良いと改めて感じた。

体系的に学べ、解説も丁寧で分かりやすい。チュートリアルを一通りやった後だと、各機能の仕組みや意図が、よりリアルに理解できるし、イメージできる。

Asset PipelineやCoffeeScript、SCSSなどについても書かれているので、時間がない自分としてはとても助かった。

あとは、YouTube で公開されているRails関連の動画を見たりしつつ、実際のコーディングフローを目に馴染ませる。

Junichi Itoさんの動画が、どれも丁寧に解説されていて、Rails初心者の私にはすごく分かりやすかった。
例えば、下記の動画なんて触り始めの頃に一度は見ておきたいもの。
RailsでDebugをどう行っていけばいいか?とても参考になった。

www.youtube.com


大体の概要がわかったら、Twitterクローンを実際に作ってみたりして、トライアンドエラーを繰り返した。

このタイミングでHamlやSassなどについても触れてみた。
下記はどちらもshizumaさんの記事で、この方の記事にも大いに助けられている。

qiita.com

qiita.com


Rspec入門

Rspecを用いたテスト駆動開発(Test-driven development. 略してTDD)を来月から行うので、TDDとは?という基礎から学んだ。
先ほどもあげたJunichi Itoさんの動画と記事が、これまた分かりやすく、入門として最適だと感じた。

youtu.be


下記の記事もとても勉強になった!

blog.jnito.com


TDD入門でもある!

qiita.com


自身で作ったツイッタークローンのテストはMinitestで書いていたが、これをRspecで書き換えるなどして、現在進行形で学んでいるところ。

Rails作ったDHHは2014年ごろにTDDは終わったって発言したりしてるんだってね〜などと小ネタも仕込んでおき、今後共に仕事をするであろうRubyistとの会話にも備える。

Ruby入門

Rails, Rspecの次にRubyっておかしくないか?と言われるかもしれないが、私の時間も残りわずかなので、こういう感じである。
というか、現在ようやくこのフェーズに到達したので、Railsで仕事しながらRubyを学ぶということになりそうである汗。


効率的に学ぶには何が良いか?と考えてみたところ、RubyのAdvent Calendarを読んでいくと良いかもしれないと思い早速実践してみたら、これがめちゃめちゃ良い。

qiita.com


私が読んだのは2015年のAdvent calendarだが、
C++使ってた方がRuby触ってみた感想から、メタプログラミングに関すること、
機械学習からRuby Kaigiのことなどなど、Rubyに関する話題を様々な角度から読むことができる。

知的好奇心を存分に刺激しながらRuby(と、その周辺)に触れることができ、
Rubyの様々な一面を垣間見れることができた。
これを機にPythonJavaのAdvent calendarも読んでみようと思った次第。

そうそう、余談だが、Advent Calendarとはクリスマスに関するものだったらしい。
Wikipedia読んでいたら情景が浮かんできて、3ヶ月もたたないうちにクリスマスであることに気づいた。

アドベントカレンダー - Wikipedia


あとRubyの勉強としては、
以前PythonJavaで書いたプログラムをrubyに置き換えるなどして、基礎的なスキルをつけていこうという考えている。



* 学習のモチベーション維持について

Ruby勉強のモチベーションアップにはRebuild.fmのRubyの話題が豊富に出てくる会をよく聞いた。
さきほどのDHHの発言のことも、rebuild経由で知った。

rebuild.fm

TDD is dead. Long live testing. (DHH)

TDD is dead.って聞くと、Nasが浮かんでくるね。
Hip Hop is dead.

youtu.be


あと息抜きがてら自宅のLinuxマシンのshellをzshに変えてみるなどした。
今振り返ると、結構PCにかじりついていた9月であったように感じる。悪くない。

zshについては自身への備忘録として、インストール手順とかを簡単にまとめて後ほど投稿するつもり。