【Ruby/Rails勉強法】表参道.rbに行けなかったので勝手にまとめる #omotesandorb

はじめに

2017年6月1日に表参道rbが開催されました。 https://omotesandorb.connpass.com/event/58274/ 参加したかったのですが無理だったので、自分が勉強に使っていたものと、もし勉強法についてアドバイスする機会があれば何を伝えるかということを勝手にまとめていきたいと思います。

勉強に使っていたもの

本や情報など巷にあるものはだいぶ成熟してきた感じがあります。
各自合ったものを選べばよいと思いますが、自分が使ったものは以下です。

Ruby技術者認定試験

当時はRuby1.8系だったのですが、技術者認定のSilverとGoldを取得しました。Goldのほうは自分にとっては難しく2回も落ちてしまいました。
Rubyのメソッドや仕様をみっちり覚えることになった感じです。いまは覚えてない。

Railsチュートリアル

動くものを作ることができたのが良かったです。 回数重ねるたびに色々発見があるのもいいですね。

書籍集

blog.inouetakuya.info

blog.jnito.com

この辺の中で自分に合いそうなものを試しながら読んでました。

るびまのコード添削記事

Rubyist Magazine - あなたの Ruby コードを添削します 【第 1 回】 pukipa.rb

かなり古い記事なのですが、Rubyらしい書き方や考え方など参考になりました。おすすめ。

もしアドバイスするなら

モチベーション、モチベーション、モチベーション…

言語を勉強するのには基本的には時間と労力がかかるので、モチベーションをたもちつつ継続的にやるということを優先しましょう。 そのための回り道、非効率な勉強法などは、他の人にとやかく言われても気にせずいきましょう。 自分の場合はRailsを始めると少なからずjQueryをやることになるわけですが、Railsをやっていない人から「そんなんいいからReactやれ」みたいなことを言われてへこんだ記憶があります笑

インプットとアウトプット

一般的には学習プロセスでは"アウトプット"を大事にした方がいいという話をよく聞きます。 自分は"アウトプット"あまり得意ではないです。周りを見ても、"アウトプット"得意な人と苦手な人がいるなーという印象です。 色々と考えてきて、"アウトプット"と言うのは「人に見せる形にしろ」ということではなく「手を動かさずにわかった気になるな」くらいに捉えるようになりました。 写経でもいいしコピペしてきたものをちょっといじってみるでも良いですが、バズった記事が流れてきたのをみてふーんと思っただけでは勉強したことにはならないよということです(ブーメラン)。

情報の取捨選択

最近はいろいろ情報がありすぎて、普通にググっても求める情報が出てこないことも多いです。
例えば「form_for form_tag 違い」とか調べるとああ、、、となります。 (activerecordのモデルに紐付かないformを作る場合でも、form_objectを作ってform_forという選択肢にたどりつかない。) 情報の出処をはっきりさせて、自分で選ぶリテラシーを身に着けましょう。 Ruby/Railsの場合もすごい人がたくさんいて、〇〇gemを作った人、〇〇ブログの人、〇〇コミュニティーの人、〇〇株式会社の人などいろいろです。 twitterなりqiitaなりでfollowしていくといいと思います。

スキルの取捨選択

Code Fellows | This is Why Learning Rails is Hard

Ruby on Railsを構成する技術要素は非常に多く、また追加もされています。特にフロントエンドやawsやコンテナ技術などもRailsサービスを公開する上で必要になるかもしれません。
全てを学んでいくのは難しいので、自分の強みや需要などを加味しながら学ぶべきスキルを決め、そこに向かって行く必要があります。モチベーションのところと若干矛盾していまうのですが、自分の興味と世間の需要あわせて考える必要がありますね。

自分は「こなれた感じのRails開発者」になりたいと思っています。どんなものかというと場合によってhelperやform_objectを使い分けながら薄いview、controllerと責務分割されたmodelを作れるエンジニアをイメージしています。 現場のRailsはおもったよりも汚いことが多いので需要はあるんじゃないかと思います。 長期的な技術スタックはもう少し考えないといけないですね。

まとめ

  • 勉強法や資料はいろいろ、出揃っている感じある
  • モチベーション大切
  • アウトプットはすきなように
  • 情報、スキルの取捨選択

(やはり後半が長くなってしまった。。。そして、アドバイスRubyRailsが含まれていない。。。)