What one likes, one will do well 〜好きこそ物の上手なれ〜

寄り道しながらも、最後は昔から好きな物理とプログラミングに戻ってくる。そんな男の思いをつづるブログです。

RailsTutorialで、Ruby on Railsを学びました。

はじめに

Ruby on Railsを勉強するときに有名なRailsTutorialに挑戦しました。

日本語のページもあるようですが、英語の勉強をかねて、英語のまま実施したので、なかなかハードでした。

しかしRuby on Railsのすごさを知るとともに、Tutorialで色んな事を学べてとても楽しかったです。最後までやると簡単なtwitterのサイトを作成できます。Tutorialでここまでやれるのが驚きです。

どのような形で実施し、どんなことを学んだかをまとめます。

実施したエディション

3rd editionで、Rails4.2を使ったTutorialを実施しました。やっている途中にRails5がリリースされ内容が変わったので、3rd editionを最後までやりました。

エディションが違っても内容はほぼ変わらないと思いますが、当然Railsのバージョンの違いを吸収しており、Tutorialの内容も改善しているようです。

基礎知識

Tutorialの中で色んな知識が必要となりますが、詳しく説明してあるので、仕事でプログラミングや環境構築をしたことがある人なら問題なく学べると思います。初心者では知識量が多く難しいかもしれませんが、Tutorialには必要な知識が詰まっていますので、Tutorialの内容を理解できれば、プログラミングを仕事にできると思います。

私は仕事でプログラミングをしているので、知識はある程度あったと思います。以下の基礎知識がありました。

データベース

データベースは仕事で普通に使っています。

Linuxコマンド

仕事でCUIでコマンド打ってLinuxを操作することは普通にやっています。

プログラミング

JavaC++などのプログラミング言語は仕事で使っていて、RubyもTutorialを実施する前に、ドットインストールで基本は学びました。またCodeIqなどでRubyで解答して、実際に使ってみた状態でした。

MVC

基本的な考え方は知っていましたが、実際に適用したことはなかったので、本で学んだレベルでした。RESTについては、Tutorialで初めて学びました。

TDD(テスト駆動開発)

テスト駆動開発入門の本を読んで写経したことがありました。(ケントベックのテスト駆動開発入門を読みました。

逆に知らなかった知識としては、Rails、Heroku、Gitです。Tutorialで初めて触りました。

前提知識があればその部分は読み飛ばせるので、効率的に学べると思います。

実施した期間

リポジトリを確認すると3章以降は、6月から始めています。12月末までかかったので、6ヶ月かかった計算になります。途中休みしていた期間もあるので実質4カ月ほどでしょうか。

1章と2章はその前にやっているのですが、それほど時間はかからなかったと思います。

1日の学習時間としては、仕事の昼休みに毎日45分程度週4日ほど行っていました。4ヶ月週4回45分でざっくり計算すると50時間程度になります。

毎日朝から晩まで集中してやれば、1週間かからず終われそうです。

実施方法

Tutorialのやり方としてはいわゆる写経をしました。各章の最後のexercisesはせずに、本編のみ進めていきました。

英語でやっていたので、最初は通勤電車の中で内容を読みました。その後昼休みを使って、もう一度読みながら手を動かして写経しました。

全体像を最初に理解したので、読んでいる箇所のコードに集中することができました。やはり一度手を動かすことが一番大切だと思います。

私は飛ばしましたが、exercisesはやった方が本当の理解につながると思います。

Tutorialの内容

Tutorialの内容を簡単にまとめておきます。

1章

Railsの環境構築を行い、静的なページを表示させることができます。

クラウド統合開発環境のCloud9を使って、Rails環境を構築して、HelloWorldの表示、Gitの使い方、Herokuへのデプロイと盛りだくさんです。

しかしそれぞれクラウドで提供されているサービスを利用するので、登録して簡単に使え始めます。

特にCloud9は環境構築が楽で、どこでも同じ環境を使えるので、普通に使うようになりました。GitやHerokuも利用するようになりました。

2章

Railsで最初に驚かされたScaffoldの使い方とMVCの基礎知識を学べます。

コマンド一つでデータを登録・更新・削除できるWebアプリが作成できるのが、すごいです。

3章

動的なページを作成できます。同時にテストとテスト駆動開発を学べます。

Tutorialの中でテストもしっかりと書いており、テストの重要性を感じる事ができます。

4章

Rubyの基礎を学べます。他でRubyを勉強していれば簡単に読み進められます。

ただRubyの特徴的な使い方なども紹介しており、学ぶことは多いので1度目を通す方がよいと思います。

5章

CSSやBootstrapでWebのデザインを学べます。Bootstrapは簡単にかっこいいページを作ることができて驚きました。

6章

Railsでのデータベースの扱いやデータのチェック、パスワードの扱いなどを学べます。

Railsを使えばデータベースを簡単に使える事が分かります。また数行のコードでデータのチェックやパスワードを扱えるようになるのがわかり、Railsのすごさを知りました。

7章、8章、9章

Sign up、Log in、Log out、ユーザデータの表示・更新・削除などの機能を追加します。

機能追加の話と同時に、セキュリティやテスト駆動開発をコードともに学べます。

10章

アカウントのアクティベーションやパスワードリセットの機能を追加します。

メールを使ってのアクティベーションやパスワードリセットの機能を追加しており、本物のサービスに近いものを作成できます。

11章、12章

twitterのツイートやフォローの機能を追加します。

おわりに

Rails Tutorialは完成度が高く、網羅的に学べるようになっています。最後に出来上がる簡易twitterもここまで作れるのかとびっくりします。

一度写経しただけでは、自分のものになっていませんが、これをきっかけにRailsでWebアプリを作りたいと思います。

ボリュームがすごいですが、最後までやりきれば多くの知識がつくと思いますので、ぜひ挑戦してみてください。