プログラマーのスキルアップ: 有料の学習サービスUpcaseで学んでみた。

こんにちは。開発チームのtaiki-tです。*1前回の記事は、Rails 5 の足音 - Misoca開発ブログ でした。

今回は、プログラマーとしてのスキルアップのために有料のオンライン学習サービスを使ってみた感想を書きたいと思います。*2

Upcase

f:id:taiki-t:20151008112233p:plain

今回は、Upcaseという学習サービスを使ってみました。Upcaseはthoughtbotが運営している月額$29のサービスです。

想定されている主なユーザー層は初級Railsエンジニアです。ただし、Railsエンジニアでなくとも役立つ情報もたくさんあります。

サイトのトップには、次のように書いてあります。

Let’s get that “junior” out of your title

Upcase turns junior Rails developers into ass-kicking name-takers.

(訳:『肩書きから、「初級」をとっぱらおう!』)

内容紹介

進捗管理

以下のようなダッシュボード画面があり、どこまでコースを終わらせたがか分かるようになっています。

f:id:taiki-t:20151008111850p:plain

コース一覧

  • コーディング
    • Regular Expressions
    • Ruby Challenges
    • Refactoring
  • スティング
    • Testing Fundamentals
    • Test Doubles
  • Ruby on Rails に特化したコース
  • UIデザイン
    • Design for Developers
  • データ分析
    • Analytics for Developers
  • ワークフロー(tmux)
  • Vim
  • その他
    • The Playbook: Video Edition (Webアプリケーションの計画からローンチまでを一通り)

後半のUIデザインやデータ分析などは、Railsエンジニアでなくとも十分に役立つと思います。

コースの形式

コースにはいくつか形式があります。

  1. ただ動画を見ていく(デザイン)
  2. 動画をみて、手元で試す(Vim, tmuxなど)
  3. 課題に対しコードを書き、参加者間で相互レビューする(レポジトリをgit cloneし、コミットをpush)

コーディング系のもの(Refactoring, Test Doubles、他)などは、この3つめの、相互レビューをする形式で進んでいきます。実際に手を動かしフィードバックをもらえるので、とても良いです。

コース以外のコンテンツ

段階を踏んで学んでいくコースの他には

  • 参加者が相談するフォーラム
  • Flashcardsという単語帳形式のような簡単な問題集
  • Weekly Iterationという毎週追加される動画のコンテンツ

があります。Weekly Iterationはどれも最初の数分を見ることができるので、 のぞいてみると良いかも知れません。

The Weekly Iteration: a show by thoughtbot | Upcase

感想

使い始める前は、$29と言えども、なんか払うのは勇気がいるなぁ? と思ったのですが、使い始めてみた結果、$29を払うことに関してはとても満足しています。 これだけの内容を誰かに教えてもらおうと、絶対にこの金額では教えてもらえません。

このUpcaseサイト自体のアプリケーションコードも見れるようになるので、実際に動いているサービスのコードをみれます。特に、mockを多用するspecの書き方、サービスオブジェクトの切り出し方などは、とても勉強になりました。

動画系のコンテンツは字幕がなく、英語を聞き取るのがネックになります。

TL;DR

良かった点

  • コスパがよい。Upcaseの内容を、誰かに教えてもらおうと思うと月額$29では済まないと思う。
  • 実際にお金を払っているので、その分やらなきゃ!という気持ちに毎月なる。
  • 同じ課題に対する他の人のいろいろなアプローチが見れるので、勉強になる。
  • 実際に運営されているサービスのコード、PRが見れる。Upcaseそのもののレポジトリをみれるようになるので、おもしろい。
  • 英語の勉強にもなる。

良くなかった点

  • コードレビューの質が高いとは言えない。課題に対して自分が提出したコードをレビューしてもらえるが、レビュアーも同じような参加者だったりするので…
    • ただ、自分のコードには大したレビューがつかなくても、他の人のコードに良いコメントが付いていたりするので、いろいろ見ると勉強になる。
  • 英語の勉強にもなっちゃう。(メリットととるか、デメリットととるかは、あなた次第…)
  • 動画系コンテンツに字幕があれば、尚良かった

こんな人にお勧め

  • Railsエンジニアなら、使ってみて損はない感じ。
  • Railsエンジニアでなくとも、Vimとtmuxで開発環境を整えてみたい人。
  • Design for Develpers や、Analytics for DevelopersというコースはそれこそRailsに限定されていないので、そういうところ興味がある人。
  • 実際に動いているサービスのコードや、PRを見てみたい人。(ディレクトリ構造や、specとか見るだけでも勉強になる)
  • Upcaseのspecはmockistアプローチだと思うので、mockをバリバリ使う感じのspecを見てみたい人。

参考リンク: 他の学習系サービス

Upcaseを選ぶ前に検討した学習サービス一覧を簡単に紹介します。自身に合うものを見つけることができれば、有料、無料問わず、効率良いスキルアップに繋がるのではないでしょうか。

その他の有料学習サービス

国内のサービス

講義を配信しているサービス

MOOCと呼ばれるインターネット上で講義を配信しているサービスです。大学の講義相当の内容が多いです。

Railsに特化した内容

学習サービスではないですが、以下のサイトで自習するのがよいと思います。

*1:ちなみに、シルバーウィークは中国にいってgithubにpushできることを確認してきました。

*2:最近こういうサービスを使っているんですよ、と会社に相談したら「それ会社でお金だすよ」と言ってもらえました!!