読者です 読者をやめる 読者になる 読者になる

倒れるときは前のめり。

カレーが好きです。

Ruby on Rails チュートリアル 第3版 を終えた

はじめに

5月の連休からRuby on Rails チュートリアルに取り組みはじめて本日完走。

やり遂げた興奮が冷めやまないうちに、学習の記録を残しておく。

もくじ

  • スペック(開始時)
  • なぜRoR
  • 学習時間
  • 意識したこと
  • 感想
  • 次にやりたいこと

スペック(開始時)

  • PHPRDB歴1.5年
    • 学生時代はプログラミング経験なし
    • 社会人になってからプログラミングに携わる
    • 業務では自社製オレオレPHPフレームワークを使用
    • 業務外ではなんとなくLaravelを触る
  • ローカル環境にVMで仮想環境作って、OSからミドルウェアのインストール設定までひと通り経験アリ
  • Git・AWSは業務でも使ってる
  • テストコードなにそれ?

なぜRoR?

  • PHP以外の言語(オブジェクト指向言語)を触ってみたかった
  • チュートリアルをやれば、モダン(っぽい)開発手法をひと通りさらえると思った
    • テストコードを書きながら開発するとか
    • Herokuを使ったデプロイとか

学習時間

RailsTutorial_Completed___201606112000.png

  • 33h02m(うち実働19days ≒ 1.7h/day)
    • 平日は帰宅後1〜3h
    • 土日はだいたい3〜4h

意識したこと

できるだけ毎日コードを書く

  • まったく触らない日をゼロにしたかった(間が空くとすぐ忘れてしまうので)
  • 社内行事など諸般の事情で叶わかなかったが、1週間ノータッチという事態は避けられた

時間をつくる

  • 平日20時帰宅でも21〜24で最大3hは取れる(意外とできる)

場所をかえる

  • 土日に自宅から一歩も出ずにコード書いてるとなんだかんだ気が滅入る

作りたいサービスを想像(妄想)する

  • これがいちばんかもしれない
    • 2016年中には出したい

学習時間をつける

  • toggl with trello でやってみたらいい方向にハマった
  • 学習時間をかんたんに記録するための仕組みづくり
    • trelloにタスク突っ込む
    • trelloからtoggl着火
    • 1章終わったらつぎの章へ
    • 週ごと・章ごとに作業時間振り返ってニヨニヨできる
      • やっぱり8章てごずったなーとか
      • 12章、意外と楽勝だったな?とか

感想

達成感がハンパない。この一言に尽きる。

プログラミングの学習としての写経は以前にも何度かやってきたが、PDF換算で700ページともいうボリュームは今回がはじめて。実際にチュートリアルを進めていく中で、何度も心が折れかけた(とくに8章や8章)。それだけに、最後まで走り切った時の充実感・爽快感・解放感(?)は筆舌に尽くしがたい。

チュートリアルの日本語版翻訳を務めている@yasulab氏が作成したこちらのスライドの3〜9ページが秀逸。わからない・足りない箇所を知るためにも、まずは山を登り切る(登り切ってしまえば、あとはいかようにでも)、というところか。

完成したサンプルアプリそのもののクオリティもさることながら、Web開発に関するトピックをひと通り学習できるのもありがたい。

  • MVCの考え方、RESTfulなルーティング
  • Gitをつかったバージョン管理
  • クラウド環境へのデプロイ
  • セキュリティ・認証
  • コードのリファクタリング、TDD

単なるプログラミング言語、Webアプリケーションフレームワークの使い方講座で終わらないところが、実にいい。

反面、Railsの作法が細かくて、1周やった程度では到底身につかないなと(e.g. モデルやコントローラの命名ルール、ActiveRecordやアセットパイプラインの仕組みなど)。 Railsガイドや書籍等で適宜知識を補っていく必要性を感じた。

これから

もう一度最初からチュートリアルに挑戦しようと思っている。 テストコードこそ書いていたが演習はスキップしたので、次は演習ふくめて全て取り組みたい。 1ヶ月前の自分が気づかなった新しい発見は必ず自分のためになると信じているので。