- Recursionってどんなサービスなんだろう?評判や使った人の感想を聞きたい。
- Recursionで学習すればエンジニアになれるのかな?
- Recursionでコンピュータサイエンスが学べるって聞くけど、コンピュータサイエンスって何?
- Recursionが自分に合っているのか知りたい。
Recursion(リカージョン)はコンピュータサイエンスを基礎から学べる学習サイトです。
「世界で通用するエンジニア」を育てることを目指していて、内容は充実しています。
私自身もRecursionを実際に使ってみました。
実際に試して分かったことは、これからエンジニアを目指す人にも、既にエンジニアの人にも役立つ内容になっているということ。
プログラミングを学習できるサービスの中で最もお勧めしたいサービス、それがRecursionです。
Recursionには初心者から上級者まで役立つ学習コンテンツが用意されいるので、誰でもしっかり学ぶことができます。
私はエンジニアリングマネージャーとして数多くのエンジニア育成にも関わっていますが、社内エンジニアの育成にも使いたいと思えるほどの充実したコンテンツです。
この記事ではRecursionとはどんなサービスか、その特徴や評判、どんな人に合っているのかを具体的に解説します。
これからエンジニアを目指す人、既に他のプログラミング学習サイトで学習が終わった人、既にエンジニア経験のある人に役立つサービスです。
ぜひ参考にしてみてください。
Recursion(リカージョン)とは?5つの特徴
Recursionは2020年8月にリリースされたオンラインプログラミング学習サービスです。
エンジニアにとって必須とも言える「コンピュータサイエンス」を学習できることが大きな特徴です。
Facebook(Meta)のエンジニアが作ったコンテンツのため、その内容は実践で必ず役立つと言っても過言ではないレベルになっています。
そんなRecursionの5つの特徴は次の通りです。
1. 無料から始めることができる
Recursionは無料で学習を始めることができるサービスです。
HTML、CSS、コンピュータサイエンス初級、コーディング問題を無料で学習できます。
コンピュータサイエンス初級は無料と思えない内容ですので、これだけ学習するために登録しても損はないでしょう。
有料コンテンツはさらに充実しており、PHPやJavascript、Pythonといったプログラミングに関するコンテンツの他に、データ構造やアルゴリズムなど中級者・上級者向けのコンテンツ全てにアクセスできるようになります。
有料会員の料金は$61/月です。1ドル138円とすれば8,418円。
年払いにすると$588で実質$49/月(約20%OFF、81,144円/年, 6,762円/月)となります。
最近は円安の影響もあり高いと思いましたが、実際に試したところ価格以上の価値を感じることができました。
他のサイトでは身につかない知識が詰まっているので、コスパは本当に良いと断言できます。
この記事でしっかり解説しますので、最後まで読めばその価値を感じていただけるようになっています。
※2022年8月時点の価格表より引用
Recursionは無料で利用できます。
とにかく試してみたい人は以下から簡単に登録できます。
2. コンピュータサイエンスが学べる
コンピュータサイエンスとは私たちの日常生活で不可欠な「情報」を扱う分野です。
コンピュータが情報をどのように取り扱うのか、その仕組みなどを学びます。
(詳しくは後述します)
Recursionではコンピュータサイエンスを初級から学ぶことができます。
コンピュータサイエンスのコースは以下のように初級、中級、上級とレベル分けされています。
中級、上級は1つ前のレベルを修了しないと学習を進められないため、段階的に知識を深めることができるようになっています。
コース一覧表より引用
各レベルの学習目安時間は以下のようになっています。
全部で205時間のコースになりますが、各コースで理解を深めることがスキルアップの近道なのでしっかり取り組みましょう。
- 初級:30時間
- 中級:80時間
- 上級:95時間
コース一覧表より引用
3. 効率的なアルゴリズムを考える力が身につく
Recursionの特徴的なカリキュラムの1つに「離散数学」があります。
離散数学はコンピュータサイエンスを数学的な観点からより深く理解するために必要な知識です。
離散数学を学ぶことで効率的なアルゴリズムを考えるために必要な「論理的思考力」が身につきます。
アルゴリズムには必ず条件分岐があります。
条件分岐には矛盾や無駄があってはいけません。
論理的に考え、効率的な条件を考える必要があるのです。
離散数学を学ぶことで論理的思考力が身につき、効率の良いアルゴリズムを作り出すことができるようになります。
離散数学は広く奥が深いので学ぶのに時間がかかります。
いきなり書籍などで学習するにしても、どこから始めればよいか迷うと思います。
Recursionはエンジニア初心者からでも効率的に学習できるように範囲を限定してわかりやすく説明してくれています。
この離散数学を知っていると、エンジニアとしての実力に差が出てきます。
できる限り早めに身につけておくべき知識であることは間違いありません。
Recursionコース内ダッシュボードから引用
学習時間の目安は以下のようになっています。
- 離散数学Ⅰ:40時間
- 離散数学Ⅱ:15時間
コース一覧表より引用
4. プログラミングだけでなく、設計に必要が知識が身に付く
コンピュータサイエンスの中級では以下のことが学べます。
- 関数をシンプルにして整理し、再利用する方法について理解できるようになる。
- 再帰処理と時間計算量について理解できるようになる。
- スコープの仕組み、副作用、メモリ割り当てについて理解できるようになる。
- 制御フローとは何か、その使い方について理解できるようになる。
- 設計図であるクラスとオブジェクトの使い方について学習し、独自のデータ構造を作成できるようになる。
- リストの仕組み、連想配列、ハッシュマップ、動的計画法などについて学習し、よりさまざまな問題を解決できるようになる。
アプリケーションを作る際に必ず設計を行いますが、上記の理解なしに良いアプリケーションを作ることはできません。
設計の知識はプログラミングの文法や構文だけを学習していても身につけるのが難しい部分です。
コンピュータサイエンス中級コースでは設計の知識を学べるようになっているため、エンジニアとしてのスキルアップを目指すのであれば学習することをお勧めします。
さらにRecursionには以下のOOP(オブジェクト指向プログラミング、Object-Oriented Programmingの略)についても学習できるコース、データベースについて学習できるコースが用意されています。
コース一覧表より引用
オブジェクト指向プログラミングとは、関連性があるデータやメソッドを「クラス」と呼ばれる単位でひとまとまりにして管理するプログラミング手法です。
Java、C++、C#などのプログラミング言語で用いられます。
現在の設計の主流はこのオブジェクト指向プログラミングと言っても過言ではありません。
このオブジェクト思考プログラミングを学習する方法として書籍を使うことが多いです。
しかし、プログラミング学習サイトでは学べるサービスは多くありません。
Recursionはオブジェクト指向プログラミングを学習できる数少ないサービスの1つです。
コンピュータサイエンスとオブジェクト指向プログラミングを学習しておくことで、理想的なアプリケーションを設計し、開発することができるようになります。
5. 大学の講義並みのクオリティ
Recursionは米国大学(MITやスタンフォード大学など)で扱われるカリキュラムを参考に
現役Facebook(Meta)エンジニアが作成した独自のカリキュラムなので、より本格的で質の高い内容となっています。
説明文を読んで知識をインプットし、理解したことをプログラミングでアウトプットする学習環境が用意されているのが秀逸です。
アウトプットとしてのプログラミングは、知識のインプットが不十分だと答えを出すことができないようになっています。
答えを出すためにしっかり考えないといけません。
その考えることが実践で使える知識を身につけるのに役立つのです。
私も実際に受講してみましたが、本当によくできています。
アウトプットする部分はエンジニアでもちゃんと考えないと答えにたどり着けないため、技術を身につけるのに最適でした。
教材の中に用意されているコードを書く部分は以下のようになっています。
BinarySeachTreeの「挿入」より
その場でコーディングを行い、プログラムを実行することができます。
難しい環境構築が不要なので、学習に集中することができるようになっているのです。
コンピュータサイエンスとは?Recursionで学べることは?
「プログラミング教育」に注目が集まってきており、プログラミングという単語を聞いたことがある人は多いと思います。
しかし、「コンピュータサイエンス」という単語を知らないという人は多いのではないでしょうか。
そのため、コンピュータサイエンスを本当に学んだ方が良いのか疑問を持っている人も多いと思います。
私はエンジニア経験が10年以上ありますが、コンピュータサイエンスは絶対やったほうが良いと確信しています。
それもできるだけ早く。
それではコンピュータサイエンスとは何でしょうか。
一言で表すのは難しい分野ですが、簡単にまとめると以下を研究する学問と言えるでしょう。
- コンピューターとはどのような仕組みなのか
- コンピューターを使えば何ができるのか
つまり、コンピュータサイエンスを学べば、プログラミングも含めてコンピューターがなぜ動くのか、コンピューターをどのように動かすのかの本質的な部分を理解することができるようになります。
そして、コンピューターを扱うもの全般に通じる知識なので、プログラミングのようなソフトウェアだけに限らず、スマホやIoTといった物理的な「ハードウェア」にも応用できる知識です。
以下のようなエンジニアを目指したい場合でも有益な知識です。
- Webアプリエンジニア
- スマホアプリエンジニア
- AIエンジニア
- ゲーム開発エンジニア
- AR/VR開発エンジニア
- IoTエンジニア
- 組み込みエンジニア
コンピュータサイエンスはエンジニアの基礎とも言える知識ですが、残念ながらこの知識を身につけているエンジニアはまだまだ少ないです。
今のうちにコンピュータサイエンスの知識を身につけておくことが他のエンジニアとの差別化につながります。
これからエンジニアを目指す人にとっては、他の未経験者と圧倒的に差をつけることができます。
すでにエンジニアの人にとっては、ベテランエンジニアのように技術に対する深い洞察を得ることができるようになります。
ぜひ取り組んでみてください。
離散数学とは?Recursionで学べることは?
離散数学は効率の良いプログラミングを行うのに必須の知識です。
「自分は初心者なので効率の良いプログラミングはまだ考えなくて良い、先にプログラミングの知識から・・・」と考えるのは間違いです。
効率が良いとはどういうことか知らないままプログラミングができるようになっても、後から身につけるには時間がかかるためです。
効率の良いプログラミングを身につけるには、何が効率が良いのかと考え、失敗して改善することを繰り返すことです。
そのためには基礎となる知識がないと「効率」を考えることができないため、「とりあえず動けば良い」という発想に陥りがちです。
とりあえず動くものでもプログラミングができればそれで良いのかもしれません。
しかし、そんなスタイルで作られたプログラミングはメンテナンスが難しいし、他の人が見ても理解できません。
時間が経てば自分で見ても理解できなくなっていることでしょう。
離散数学はそのような罠に引っかからないための知識となります。
では離散数学とはなんでしょうか。
離散数学とは簡単に言うと特定の集合(データの集まり)の数を「ひたすら数える」数学です。
ただ数えるだけでなく、数え方はどのくらいあるのか、その中で最適な数え方は何かを基本の考え方としています。
幾つもある手段のうち、最も最適なやり方を見つける数学とも言えます。
そのために対偶、逆、裏や、数学的帰納法、証明といったことを学習します。
学習を通じて論理的思考力が身に付いてきます。
そして論理的思考力はプログラミングの「アルゴリズム」を考える上で役立つ力となります。
離散数学の知識を身につけたエンジニアにこそが優秀なエンジニアとなるのです。
Recursionの評判
ここまで見ると、一見Recursionって難しそう、と思うことも多いのではないでしょうか。
以下にRecursionのネット上での評判をまとめてみました。
スクールに通うことを考えるとRecursionでまずは試してみるのがコスパ良さそうですね。
Recursionで学習した人たちの成果物をいくつか見ましたが、レベルはめちゃくちゃ高いです。
スクールに通っている人よりも2〜3倍レベルが高い印象。
この成果物見せられたら採用してしまいそう、そんなレベル感です。
学習したことを応用しながら徐々にレベルが上がるので、確実に成長できる、そんな印象ですね。
学ぶことは楽しい、本来そうあるべきですよね。
Recursionにはその環境がある印象です。
Recursionで参加きる「チーム開発」はかなり実践的。
このチーム開発を乗り越えた人は確実にエンジニアとしての実力を身につけています。
Recursionは一緒に学習してくれている色んな人のコードを見ることができます。
自分のコードと比較することで「あ、そんなやり方あるんだ」というアハ体験ができるのも特徴ですね。
Recursionではユーザーコミュニティがあり、一緒に学習している人やメンターの人たちに気軽に質問することができます。
コースの説明で分からないことや、プログラミングに関することなどなんでも質問できます。
これはRecusionの共同創業者のShinyaさんのアカウント。
いったいどんな企業に内定もらったんでしょうね。気になり過ぎますねw
評判を集めてみましたが、ポジティブなものばかりでした。
ネガティブな評判も時間をかけて探したんですが、1件も見つかりません。
Recursionは他の学習サイトより圧倒的にレベルが高いです。
私自身もRecursionを試して分かったのですが、教材のレベルが高くても楽しみながら学習できるので辛くないんですよね。
それがRecursionの素晴らしさなのかもしれません。
まずは無料から試せるので、ぜひ登録して実感してみてください。
初心者はRecursionを使うべき?
結論から言うと、プログラミングを少しでもやったことがある人はRecursionでレベルアップを目指すべきです。
プログラミングの学習をまだやったことない人は、いきなりRecursionを始めると難しくて途中で挫折してしまう可能性が高いです。
書籍や他の学習サイトでプログラミングの初級を学習してからRecursionを始めたほうが良いかもしれません。
Python、Java、PHPから1つでも学習が終わればRecursionに登録するのが良いでしょう。
まずは無料登録して自分に合っているか確認してみてください。
Recursionの会員登録の方法
Recursionの会員登録の方法は非常にシンプルです。
ユーザー名、メールアドレス、パスワードだけで登録できます。
住所やクレジットカードなどの面倒な入力が不要なので、気軽に始められますね。
以下を見てもらえればどれだけシンプルかわかると思います。
一連の登録画面を引用して捕捉説明
ユーザー名、メールアドレスなど必要事項を入力して確定(登録はたったこれだけ!)
登録が完了すると簡単なチュートリアルが始まります。
早速登録してみましょう!
Recursionを最大限活用する方法
登録して最初に迷うのは「何から学習始めればよいのか?」かもしれません。
Recursionには学習ロードマップが用意されていて、学習の進め方(カリキュラム)がわかるようになっています。
サポートサイトにロードマップの使い方も解説されているので、至れり尽くせりという感じ。
プログラミングスクールに匹敵する親切さだと思いました。
学習ロードマップに従って一歩ずつ学習を進めていきましょう。
Recursionサポートサイトから引用
学習ロードマップは「基礎編」と「応用編」に分かれています。
上記画像にある矢印に沿って、基礎編の「CS初級」から順番に進めてください。
「CS」とは「コンピュータサイエンス」の頭文字をとったものなので、「コンピュータサイエンス初級」から始めれば良い、ということになります。
コンピュータサイエンス初級は無料で学習することができるので、自分に合っているかも確認することができますね。
基礎編が終わればいよいよチーム開発にチャレンジする「応用編」になります。
応用編の半分くらいまで進めればエンジニアとして必要な力はかなり身についているはずです。
そして応用編が終わる頃には、エンジニア未経験社はエンジニアへの転職が可能なスキルに、経験者であっても応用力が身についたスペシャリストにきっと近づいているはずです!
分からないことはRecursionのコミュニティで質問できるので安心!
学習でつまづいた時どうすれば良いか分からない、挫折してしまわないか不安な人もいると思います。
Recursionでは学習者を支援するためのコミュニティが用意されています。
分からないことは気軽に質問することができます。
質問はコースの内容のことでも良いですし、プログラミングのことでも良いです。
皆さん気軽に質問されているようでした。
コミュニティには以下の「コミュニティ」と書かれたリンクからアクセスすることができます。
Recursionコース内のトップページ
コミュニティに参加するにはDiscordと呼ばれるサービスのアカウント(無料)が必要になります。
Discordアカウントの登録方法は以下のサポートサイトに丁寧に解説されています。
コミュニティに参加する際に参考にしてみてください。
https://support.recursionist.io/help/join-community/
ちなみにコミュニティの画面は以下のような感じになってます。
些細なことから気軽に質問できる場所で、回答も親切です。
コミュニティ内の様子
質問しなくてもコミュニティを眺めているだけでも勉強になるので、Recursionの価値を感じることができるようになっています。
特に以下の画像にもある通り、創業者の一人かつFacebook(Meta)のエンジニアであるJeffryさんが質問に解答してくれることもあります。
GAFAのエンジニアが回答してくれるわけですから、これだけでもとんでもない価値がありますね!
普通、シリコンバレーに行かないと聞けない人のコメントが聞けちゃうのですから。
コミュニティ内のメッセージ。
Facebook(Meta)のエンジニアかつ創業者の一人 Jeffryさんのコメント。うらやましい!
チーム開発へのチャレンジが成功への道!
基礎編が終われば応用編でいよいよチーム開発にチャレンジすることになります。
このチーム開発がかなり実践的でエンジニアとしての実力値を大幅に高めてくれます。
チーム開発の概要
3人のチームメンバーと1人のメンターを1チームとして、1ヶ月間で1つのソフトウェアを開発するプロジェクト。
Recursionで交流関係を作り、モチベーションを保ちつつ上級者へ到達することを目的としたイベントです。
チーム開発はいつでも参加できるわけではなく、定期的に開催されるので告知を見て参加することになります。
チーム開発の募集はコミュニティの中で告知されますが、Twitterでも以下のように告知されます。
コミュニティでの告知の様子
チーム開発の様子
チーム開発の様子はインタビュー動画(YouTube)を見ればよくわかります。
最初の2分くらいでチームで作ったアプリを紹介してくれています。
たった2分でアプリのスゴさが良くわかりますので、チーム開発に興味がある人はぜひ見てください。
時間のない人向けにインタビューを要約すると以下の通りです。
チーム開発で学べることは、実際の業務で必ず必要となるノウハウです。
Recursionのチーム開発が実践的であることが伝わってきます。
参加者について | ヒロトさん。大学でプログラミングを経験少し経験していた。 モリヤスさん。学生時代に経験はほとんどない。 社会人になってから資格の勉強とRecursionの勉強だけ。 |
成果物(アプリ)について | プログラマーがコーディングの練習ができるタイピングゲーム。 成果物へのリンク: https://recursion-typecode.netlify.app ソースコード: https://github.com/RecurionTeamN/CodeTypingGame |
技術的な情報 | React、TypeScript、Firebase、Material-UI、Chart.jsなど |
使ったツールなど | ESLint、Prettier、Figmaなど |
チーム開発の時間 | 週に30時間くらい(平日2〜3時間。週末8時間)。 相手の進捗に合わせる必要があるときは、時間を集中的に使った。 |
チーム開発で学んだこと | GitHubの使い方が習得できた。 細かい機能をbranchに分けてバージョン管理を行うことを学べて、チーム開発に自信が持てるようになった。 コミュニケーションの取り方は学べることが多かった。 |
Recursionでエンジニアに転職できる?
結論から言うとエンジニアに転職は可能です。
Recursionは転職支援サイトではないので、転職先企業の紹介があるわけではありません。
ただ、中の人に聞いたところ「希望者の相談に乗ったり、書類などの添削をしたりしています。」とのことです。
書類添削などを受けて書類通過率があがったというユーザーもいるそうです。
しっかりとサポートをしてくれるので、色々と相談してみると良いでしょう。
実際に第一希望の企業に転職できたという人も出ています。
Recursionで学んで成長し、エンジニアとして活躍する人はこれからもっと増えてくることでしょう。
Recursionユーザーの内定実績は?
Recursionユーザーの主な内定実績は以下の企業があり、エンジニアとして確実にキャリアアップしていることが読み取れます。
実践的な内容なので内定に繋がっていると思います。
任天堂株式会社
ヤフー株式会社
ソフトバンク株式会社
株式会社三菱UFJ銀行
株式会社野村総合研究所
GMOペイメントゲートウェイ株式会社
エヌ・ティ・ティ・コミュニケーションズ株式会社
シンプレクス株式会社
ビジョナル株式会社
ヘイ株式会社
株式会社ゆめみ
Sansan株式会社
株式会社ACES
株式会社アイリッジ
株式会社RevComm
Recursionのデメリット
Recursionが万能であるかのように思えてしまいそうですが、決してそんなことはありません。
学習サイトによって強み、弱みがあるので自分の合ったものを選ぶべきでしょう。
Recursionの強みは既に記載したので、弱みについて記載します。
Recursionの弱みは次のとおりです。
- 特定のプログラミング言語の構文や文法の解説がない
- 動画による解説がなく、テキストを読む必要がある
プログラミング未経験で、イチから動画で解説してほしい人はRecursionを選ぶと後悔するかもしれません。
そのような人は、以下のようなサービスでプログラミングの初歩を学んでからRecursionを始めるのが良いでしょう。
- Paiza(パイザ)
- 動画とエディタがセットになった学習サイトです。
無料もあり、プログラミングの初歩を学べます。
- 動画とエディタがセットになった学習サイトです。
- ドットインストール
- 動画とエディタがセットになった学習サイトです。
全体の動画本数も多く、一部は無料で利用できます。
- 動画とエディタがセットになった学習サイトです。
- Progate(プロゲート)
- 動画とエディタがセットになった学習サイトです。
無料だと基礎レベルの16レッスンを受講できます。
- 動画とエディタがセットになった学習サイトです。
上記の中にコンピュータサイエンスを学べるサービスはありません。
プログラミングの初歩が学習できたらRecursionでさらにスキルアップを目指しましょう。
プログラミングを1週間〜1ヶ月勉強した後、Recursionで学習するくらいの進め方が良いと思います。
その際はここまで説明してきた内容をもう一度読み直して、自分に合っているかを確認してみてください。
Recursionで転職に成功した人たち
内定者の声がブログ記事にまとまっています。
Recursionを選んだ理由、学習方法、転職活動について語られています。
これから学習する人、転職する人にとって参考になる内容でした。
- 高卒未経験からフロントエンドの内定獲得!Recursionで得た知識を自身のポートフォリオに反映してアピール
- UC Berkeleyへ復学後、念願のシリコンバレーエンジニアへ転職成功
- 転職で年収60万アップ!エンジニアとしての引き出しをRecursionが増やしてくれた|keisukeさんインタビュー
- コンピュータサイエンスを学習して有名ベンチャー企業へ見事内定|hiromuさんインタビュー
- 留学先でAIエンジニアに!チャンスを掴むためには事前の準備を怠らない事|Luckさんインタビュー
まとめ
Recursionは本当に実践的な学習サイトです。
インプットだけでなく、アウトプットを重視した学習内容になっているため、知識として確実に定着できるようになっています。
チーム開発は実践さながらのプロジェクトを経験できるため、チーム開発を終えた人は初心者ではなく、実務経験者と言ってもよいくらいです。
実際の業務では、開発するための業務知識(ドメイン知識)が必要なので技術以外のことも重要になります。
しかし、ドメイン知識は現場に入らないと身につきません。
見方を変えると、入社前のドメイン知識は他のエンジニアと差がないということですね。
つまり技術力で差をつけるしかありません。
Recursionでは技術面でベースとなる基礎力を固められるため、どのような現場でも応用できる力になります。
この力を身につければエンジニアとして大成すること間違いありません。
身につけるには時間がかかりますので、今すぐ登録して1ページでも良いので学習を始めることをお勧めします!