きり丸の技術日記

技術検証したり、資格等をここに残していきます。

Recursionの有料会員を使用した感想

Recursionというアメリカ発のオンラインでプログラミング、コンピュータサイエンスを学べるサービスがあります。今回の記事では、Recursionを有料会員を使用した感想を記載します。

結論だけ記載すると、非常に良質な学習ができてよいサービスだと感じました。

Recursionとは

Recursionの会社概要ページより引用させていただきます。

Recursionは「世界で通用するエンジニア」を理念とした、コンピュータサイエンスをアウトプットによって学習できるプラットフォームです。Recursionでは新しいプログラミング学習法に価値があると信じており、アウトプット型のカリキュラム開発に力を入れています。アウトプットによって取り込んだ知識をより定着させるとともに、自力で作り出す達成感を味わうことができます。

また、次のような特徴があります。

  • 現役Facebookエンジニアがカリキュラムを作成、監修
  • 環境構築は不要
  • 圧倒的なアウトプットメインの学習法
  • コーディング問題約500問
  • 個人開発だけでなく、実践的なチーム開発も経験できる
    • CS中級修了など参加条件あり
  • いつでも気軽に質問できるコミュニティ
    • zoomなどで開催する講座への参加
    • 自習室の利用、もくもく会への参加

私が使用していたコース

  • CS初級
    • 公式の学習目安時間:30H
  • CS中級
    • 公式の学習目安時間:80H
  • CS上級(途中)
    • 公式の学習目安時間:95H

2ヵ月ほど利用していました。私の学習時間も公式で提示している学習目安時間と同じくらいかかりました。CS初級に関しては、プログラミングができるのであれば、だいたいスキップできます。CS中級からは普段の仕事では使用しない知識が多いため、非常に苦労しました。

オブジェクト指向プログラミング(OOP)のコースや数学のコースも学びたかったのですが、週に10時間程度しか学習時間が取れないと難しいですね。あくまで、上記コースを体験した内容しか書けないので、感想記事の内容に不備がありましたら申し訳ありません。

私が学ばなかった他のコースや学習目安時間はこちらから確認してください。

私が感じたRecursionのターゲット

  • 学生
  • コンピュータサイエンスを学びたい人・学び直したい人
    • エンジニア経験年数は問わない
  • 多職種からエンジニアにジョブチェンジした人

基礎から学べるため、エンジニア歴が若ければ若いほど学習効果があります。

また、学習ロードマップがあるため、学習中に学習順について悩むことはありません。

私が感じたRecursionのターゲットではない人

  • すぐに役立つ内容を学びたい人
    • フレームワークの使い方、アプリケーションの作り方等々

フレームワークの使い方もコース自体はあります。

しかし、学ぶには前提となるコースを修了する必要があり、目的のコースはすぐに受講できません。あくまで、Recursionはコンピュータサイエンスを学び、そのうえでアプリケーションを作れるようになるサービスですので、最初から実践を学びたい人に対しては向いていません。

ただ、私見ですがエンジニア10年弱の私はコンピュータサイエンスを学んでこなかったため、CS初級ですら学び直すところがありました。実践に飛びつきたい気持ちは非常にわかりますが、まずは腰を据えて基礎を学ぶことをオススメします。

料金体系

最新の情報はこちらのページから確認できます。

  • 月額プラン
    • 61ドル:7,930円
  • 年額プラン
    • 588ドル:76,440円(月額49ドル:6,370円)

1ドル130円で計算しています。ドル換算のため、円安が進んでいる状態だと料金が高くなってしまってつらいですね。

主な内定実績

  • 任天堂株式会社
  • ヤフー株式会社
  • ソフトバンク株式会社
  • 株式会社三菱UFJ銀行
  • 株式会社野村総合研究所
  • GMOペイメントゲートウェイ株式会社
  • エヌ・ティ・ティ・コミュニケーションズ株式会社
  • シンプレクス株式会社
  • ビジョナル株式会社
  • ヘイ株式会社
  • 株式会社ゆめみ
  • Sansan株式会社
  • 株式会社ACES
  • 株式会社アイリッジ
  • 株式会社RevComm

ここで学習したことによって、大手企業の内定も取れる実力が得られるようです。

※ この記事を書いている時点での私の所属企業も載っています。ただ、私はRecursionで学んだようなコンピュータサイエンスを意識した仕事はしていないので、学んだ内容が実務ですぐに役立たない可能性はあります。研究開発をしているような別部署では使用しているかもしれません。

感想

全体の感想

体系的にコンピュータサイエンスを学べるサービスというのは非常に少ないのでとてもおもしろいです。

実践寄りの体系的な知識を知りたければ、ITパスポート試験や基本情報技術者試験を学習すれば広く学ぶことができますが、コンピュータサイエンスを深く知ることはできません。アプリケーションを作るには、コンピュータサイエンスだけでなくネットワークやプロジェクト運営等々の知識も必要ですがそこはチーム開発という形でフォローしてもらえるのも嬉しいですね。

正直なところ、CS初級に関しては既にエンジニアとして働いている人にとっては、ほとんど学ぶことがありません。CS中級から面白くなりました。無料で体験できるのがCS初級までですので、有料会員にならないとRecursionの面白さは分からないと思います。

三項演算子、switch文等々は中級の途中に出てくる等、ミニマムに教えてから、必要ではないものは後回しにするスタイルを良いと感じました。ifの条件分岐を知っていればswitchは知らなくても実装できますし、それよりは幅優先探索の方が学んでいて力になります。また、for文(繰り返し処理)よりも先に再帰処理を学ばせるのも非常に面白いと感じました。

学習順の理由についてまでは具体的な説明はないものの、コース学習の説明文を読めばfor文よりも再帰処理を優先した順番で学習しているかを推し量ることもできます。

また、学習は孤独な闘いになりがちですが、GitHubのような学習したことが記録されて表示されるのは非常にモチベーションを保つのに非常に良いです。(6月は初月だから頑張っていて、7月は本業が忙しくなって全然触れていないですね…。)

問題についての感想

圧倒的なアウトプットメインの学習法を謳っており、コースの要所ごとに通常の知識を問う選択問題以外にも、コーディングしてアウトプットする問題が用意されています。

そして私は知識問題は難なく解けましたが、コーディング問題に関してはEasyレベルでも全然解けなかったです。CS初級の演習問題は簡単でしたが、CS中級からの演習問題は学習内容を理解している必要がありました。学習内容を理解しておくことは当たり前ですが、学習を通して分かった気分になっているだけだったということを冷徹に伝えてきます。そのため、アウトプットの重要性を理解でき、能力は着実に向上できます。

このアウトプットの重要性を伝えるためにも、Recursionでは問題に対しては回答例を出してくれません。この点に対してのRecursionの想いをヘルプ:問題がどうしても解けないです。どうすれば良いですか?から引用します。

他人のコードを参照してしまうとそれが悪い習慣になり、わかった気になってしまいます。Recursionでは「Think For YourSelf」という方針を大切にしています。自分で考えて独自のソリューションが開発できるようになるためにも、頑張って自分のチカラで解いてみましょう。

コミュニティで相談もできるので、どうしてもわからない場合はコミュニティで質問しましょう。分からない点についての言語化が必要なため、言語化に苦しむかもしれませんが、リモートワークが増えてきている現状では仕事上で言語化は必須能力となっています。このサービスを使用して内定を取ることを目指している人もいると思いますので、頑張りましょう。

オンラインエディタについての不満

環境構築不要なオンラインエディタの宿命ではありますが、普段IDEで強力なサポートを得ながらコーディングをしている身にとっては、普段と異なる環境での演習はストレスでした。本来の注力したい学習から外れてしまうので、全員に強制させるのは違うと思いますが、Docker環境、テストコードの公開、ローカルのIDEからの演習問題提出ができれば嬉しいと感じました。あわよくば、プログラミングのサービスですので、IntelliJ IDEAの無料の教育ライセンス等が使えたら非常に嬉しいと思いました。(当件については問い合わせ等々はしていないので、Recursionのサービスが無料教育ライセンスに該当するかは分かりません。)

コミュニティについて

私はDiscordしか参加していませんでしたが、Zoom等でのもくもく会も開催されているようです。

Discordの参加者の自己紹介を読んでいく限りでは、社会人と同等の人数程度に学生も多く参加しているようでした。疑問を投げかけてからのリアクションも早めに帰ってきているので、困っていたら質問を投げかけるのはよいでしょう。

終わりに

長々とした体験日記でしたが、ぜひ体系的にコンピュータサイエンスを学ぶには非常に良いサービスだと思いますので、学習に迷ったときは使用してみると良いでしょう。

コンピュータサイエンスは基礎中の基礎です。私のように業務では使用しないこともありますが、根幹となっている知識を持っていることは非常に大切です。ぜひともコンピュータサイエンスを学んでもらって、コンピュータサイエンスを意識した世の中に良いサービスが溢れるようになると良いですね。

Recursion公式サイト

recursionist.io