zackey推し

IT系のこと書くぞい

【キャリア】.NET経験者がRuby案件の仕事をするまでに勉強したこと。実務で学ぶべきと思ったこと。

f:id:kic-yuuki:20190112134331j:plain

会社でRubyやりたい勢の方が増えてきました。
嬉しみが深い (*´ω`)

本記事では、Ruby案件の仕事をするために勉強したこと。また、実務で事前に学ぶべきと思ったことを書いていきます。

はじめに

ちょろっと前説的なことを書きます。

対象者

以下のような方をターゲットとしています。もし、わかりにくい点等ありましたら、TwiiterでDMやコメントでFBいただけると幸いです!

  • プログラミング経験者
    • .Net or Java等の型付き言語でCRUDアプリを作ったことがある方
    • Webじゃなくてデスクトップアプリケーション開発だけでもおk

背景(なぜこの記事を書いた?)

では本題へ(・ω・`)

Ruby / Ruby on Railsを学ぶ

Rubyを勉強し始めようとした方は、必ずは目にするであろう Ruby on Rails

Ruby on Railsは「RoR」「Rails」と略される場合もあります。

Ruby on Railsは、Rubyを用いたWebアプリケーションのフレームワークです。恐らく、デファクトスタンダードと言って良いかなと思います。

1.UdemyでRubyRuby on Railsを学習する

RubyRuby on Railsのキーワードで検索すると、色々な入門書がHITします。

レビューも高評価ですね。ただ、私は本を読むのが本当に苦手(眠くなりがち かつ めんどくさがり)なので、UdemyでRuby on Railsのコースを購入して学習を進めることにしました。

コースはこちらです。

セール中で値段が¥1,200 or ¥1,400の際に購入しました。

解説は英語ですが、自動翻訳で日本語字幕が表示されます。自動翻訳のため所々おかしな翻訳が見受けられますが、講師のコードと吹き出し等を使った丁寧な説明があるため、問題なく学習を進めることができました。

個人的にはかなり充実したコースだと、感じました。

少なくとも、私はこのコースでざっくりRuby / Ruby on Railsの開発の流れを掴めました。

コースの特徴を箇条書きしましたので、もし購入を検討されている方は参考にしてみてください。

  • 習得できたこと
    • Ruby / Ruby on RailsでWebアプリケーションのCRUDをサクッと作れるぐらいのノウハウ
    • ログイン認証周りで必要なGem
    • HTML / CSS(特にBootStrap)の記法
    • herokuの知識
    • CLIベースのGitの操作
  • コースの特徴
    • Rubyの基礎学習 → Ruby on Railsを用いたWebアプリ開発」という流れでコースが進む
      • コースはRails4をベースに進むが、要所でRails5用の説明も入る
    • モブプログラミングのような感覚で学習が楽しく、捗る
    • 開発したWebアプリはherokuというサービスにデプロイする
      • herokuの登録方法含め説明してくれる
    • CLIベースでのGit / GitHubを用いたバージョン管理を行う
      • 最低限のコマンドを教えてくれる
    • 環境構築につまずくリスクが少ない
      • CloudIDEである Cloud9 / codeanywhere を使用することで、自分の環境を汚さずに学習できた
        • 登録方法は説明してくれる
        • 自分はcodeanywhereで進めた(つまずかなかった)

2.Railsチュートリアルでノウハウを形成化する

本来は前章で学習した後、実務で開発経験を積み、学習したノウハウを形成化するのがベターかなと思います。

ただ、現実は非情で、実務が積めない方もいらっしゃると思います。自分もその一人でした。

ノウハウを形成化させるため、次に着手したのはRailsチュートリアルです。

railstutorial.jp

Railsチュートリアル無料で公開されている、Railsを用いたWebアプリケーションを開発しながら学習を進められるWebサイトです。

恐らく、Ruby on Railsを始められる方の大半は最初に着手されるのかなと思います。

私がRailsチュートリアルに着手したのは、Railsチュートリアルで復習しながら新規Webアプリケーションを開発し、Udemyで学んだノウハウを形成化させることが目的です。

目論見通り、あやふやだったrubyの記法やrailsのコマンド等を形成化できることができました。

補足

Udemyの学習ではCloudIDEを使っていましたが、RailsチュートリアルVSCodeに切り替えて学習を進めました。

案件によっては使えるエディタが制限される場合もあるかと思います。そのため、巷で人気のあるVSCodeRubyを書けるようにしておこう、というのが目的です。

qiita.com

いざ案件へ

以上2つを学習、さらにUdemyで学びながらつくったサイトをポートフォリオとしてGitHubで公開、無事にRuby案件に参入することができました。

実務で学ぶべきと思ったこと

実際に実務に入ってすぐ通用すると思ってはいませんでした。

しかし、ライブラリ・知識や技術の存在自体を知らないことで手こずったことがありました...。 (まじつらたん)

ユニットテストRSpec

Ruby on Railsユニットテスト向けGemとして「MiniTest、RSpec」2つの存在を良く耳にします。

MinitTestとRSpecの特徴については以下の記事を参考にされると良いかと思います。

blog.jnito.com

MiniTestは本記事で紹介したUdemyやRailsチュートリアルでも使用するGemですが、世間を見てみると、実務ではRSpecを使われていることが多いように見受けられます。

当然、自分もRSpecを勉強していなかったため、記法がわからず苦しみました。

克服した方法

まず、RSpecの記法を身につけるためにRSpecの書籍を購入しました。

leanpub.com

RSpecの導入(Gemのインストール方法)やRSpecをDRYに書くためのコツが書かれていて、非常に良い書籍です。

そして、RSpecの記法を形成化させるためにRailsチュートリアルユニットテストRSpecで書き直すということをしました。

やはり手を動かすことでRSpecの記法が身につき、実務でも通用・コード改善ができるようになりました。

コードチェッカー「rubocop」

Rubyには、rubocopというコードチェッカーが有名です。

github.com

rubocopはよろしくないコードを Error / Warn / Info の3段階でチェックしてくれます。実務経験前に導入し、rubocopで指摘された箇所の直し方を学んでおくと良いです。

VSCodeにはrubocopのプラグインがありますので、導入が楽です。もしよければ使ってみてください。

marketplace.visualstudio.com

テンプレートエンジン「haml / slim 」

Ruby on Railsではerbというテンプレートエンジンがデフォルトとなっています。本記事で紹介したUdemyやRailsチュートリアルでもerbを使っています。

erb以外にはhaml / slimといったテンプレートエンジンが存在します。

ruby-rails.hatenadiary.com

実務に応じて使用するテンプレートエンジンが異なるため、どれを学んでおくべきかベストはないのですが...一度でも他のテンプレートエンジンを触っておくと、自分の知見が広まります。

そのため、Railsチュートリアルhaml / slimで書き直してみる...といったことをやると良いかもしれません。(そういう自分は、実務で覚えちゃいました。すまそ。)

マイグレーションツール「ridgepole」

クックパッドのエンジニアさんが開発されたridgepole(リドジポル)というマイグレーションツールが有名です。

techlife.cookpad.com

SchemaFileという1つのファイルにスキーマ情報をまとめられるため、分割されないという点がざっくりしたメリットです。

ridgepole、私は実務で覚えさえていただきましたが、最初、存在自体を知らなかったため、なんじゃこれ?状態でした。

事前に触っておくと、円滑に実務が進められて幸せになれると思いました。

最後に

以上です。

長い記事を読んでいただきありがとうございました。

間違い等ありましたら、お手数ですがFBいただけると嬉しいです...!

あと、.NET経験者(特にデスクトップアプリケーションのみを開発されていた)の方はWebっていっぱい覚えることあって手を出しづらい...のような先入観があるのかなと思ってます。

自分もその一人だったのですが、すでにプログラミングの基礎を.NETで学んでいるため、割とすんなり抵抗感なく学習を進めることができました。

なので、自信を持ってRubyの世界へ飛び込んでみてください!