
Recursion(リカ―ジョン)って知ってますか?

リカ―ジョン??
何ですか、それ。初めて聞きました……。
フロントエンドエンジニアの私が、数あるオンラインプログラミング学習サイトの中から、「Recursion」を体験してみた感想をお伝えしようと思います。
Recursionがどんな人に向いているのか、どんなことが学べるか、この記事を読んでいただけたらお分かりいただけると思います!
Recursionとは

Recursionとは、「世界で通用するエンジニア」を理念としている、コンピュータサイエンス(CS)とプログラミングを基礎から学べるプラットフォームとのことです。
アウトプット型の学習で、インプットした知識の定着と自力で作る達成感を味わえます。
それでは、Recursionの特徴について説明します。
Recursionの特徴
特徴その1:コンピュータサイエンスが日本語で学べる

コンピュータサイエンス。がっつり文系の私にとって、遭遇しないよう避けてきた道といっても過言ではありません。
コンピュータサイエンスとは「コンピュータに関する学問」のことで、スマホやパソコンなどの私たちの身近にあるものから学術研究などにいたるまで、あらゆるところで活躍しているコンピュータについての学問です。
現代社会はコンピュータサイエンス無しには語れないというわけです。

アメリカでは、国策としてコンピュータサイエンス教育に
力を入れているそうですよ!
日本では近年ようやく学校の授業にプログラミングが取り入れられたところですが、コンピュータサイエンスにおいてはないがしろにされているのが現実です。
これは教育者が圧倒的に足りていない、教育者自身に知識が足りていないからだと思います。
実際に私はパソコン教室でインストラクターをしていましたが、そこにはScratchのコースがあるにも関わらず、まともに教えられるインストラクターはいませんでした。
これでは何のために親御さんが高い授業料を支払って学ばせているのか分かりません。
学ぶ側も「受け身」の教育ではなく、自ら学べる場所を探す「攻め」の姿勢が必要です。
とはいえ、乱立するプログラミングスクールやプログラミング学習サイトの中から最適解を見つけ出すのは至難の業。
基礎から学べる、ゲーム感覚で学習できる、アプリを作ってみよう、仲間と一緒に楽しく学べる……。たくさんの謳い文句があり、金額との兼ね合いも含めてなかなか決められずにいる人も多いのではないでしょうか。
Recursionは、MITやスタンフォード大学などのアメリカの大学で取り入れられているカリキュラムを参考に、現役Facebook(Meta)エンジニアが独自に作成したカリキュラムを、日本にいながら学ぶことができます。もちろん日本語で。
「留学しなくてもいいの?!」「英語できなくてもいいの?!」と、エンジニア志望の方は思いますよね。
日本の教育環境では、優秀なエンジニアが育ちにくいのが現状です。エンジニアを目指す人は大枚はたいてスクールに通ったり海外に学びに行ったり、個人での努力を強いられています。
プログラミング学習においても、「まず手を動かしてみよう!」というスタンスで「Hello World」を表示させるところから始まりますよね。
この「Hello World」を表示させるために何が行われているかの理解が足りないまま学習を進めても、遅かれ早かれ立ち止まってしまいます。
コンピュータの世界で行われていることを理解しておかないと、応用力が身に付きません。
プログラミングは、コンピュータサイエンスの幅広い分野のうちの1つです。
アメリカでは、プログラミング教育はコンピュータサイエンス学習の入り口でしかありません。
日本の場合、近年プログラミング教育に力を入れ始めたところで、コンピュータサイエンスについては重きを置かれていません。
深く考える、自力で考える力を養うためにも、コンピュータサイエンスは避けては通れない道です。
プログラミング学習を始める前にコンピュータサイエンスを学ぶことが、遠回りなようでいて実は近道なのです。
特徴その2:チーム開発プログラムで開発経験を積める

ある程度学習が進んだら、身に付けた知識を応用して実際にプロジェクトを開発してみましょう。
Recursion中級者と上級者が1つのチームを組んで、チーム開発を行うことができます。
メンター1人とメンティー3人で一組になり、1か月で1つのプロジェクトを完成させます。
チーム開発のアプリが素晴らしいので、ぜひ見てみてほしいです!
実際にチーム開発でアプリを制作した方のインタビュー動画もあります。
リアルな開発秘話が聞けますし、これからチーム開発をやろうと思っている方の参考になりますよ。
制作したアプリがまた素晴らしい!
本当に1か月で作れるの?!と疑うレベルです(笑)。
Google play storeで公開されている「Blockee」というアプリもチーム開発の成果物です。
チーム開発では、メンターにアドバイスを受けて自力で開発をします。
チーム開発を体験すれば、実際の開発現場でも尻込みせずに自信を持って臨めるようになれそうですね!
特徴その3:コミュニティで学習サポートと仲間づくりができる

プログラミング学習者の約9割が挫折を経験すると言われています。
オンライン学習、独学では孤独になりがちである、学習で行き詰った時に質問できる環境ではないことが理由として挙げられます。
Recursionのコミュニティ(Discordコミュニティ)では、ユーザー同士のコミュニケーションや学習サポートを目的としています。
コミュニティに入ると、チャットルームで質問や意見交換ができたり、一緒にプロジェクトを作ったり、みんなで集まって自分の課題に取り組む「もくもく会」に参加ができるようになります。
プログラミングの勉強って、孤独との戦いですよね。
コミュニティをうまく活用して、楽しくプログラミング学習を続けましょう!

コミュニティに入っていろんな人とお話してみたいです!

チーム開発できるのも楽しそうですね。
大変な分、実力と自信が付きそうです。
Recursionでの学習の流れ
Recursionでは、アメリカの大学のコンピュータサイエンスの教材を参考にした「インプット学習」と実際にコードを書く「アウトプット学習」ができます。
学習の流れは、

となっていて、学んだ知識を定着させます。
本を読むだけ、動画を観るだけのインプット学習では、全体の5%程度しか定着しないと言われています。そのため、自分で考え、手を動かすアウトプット学習が重要になってきます。
すでにエンジニアとして頑張っている方にも役立つコンテンツもあります。
【インプット】コンテンツを読む

アメリカの大学のカリキュラムを参考にした教材で、しっかり基礎から学習します。
イラストもあるので、わかりやすくインプットができます。
【アウトプット】セクション課題
プログラミング学習において面倒なことのひとつに、環境構築があげられます。
特に初学者にとっては、英語のサイトから言われるがままにインストールをするあの不安感と大幅な時間のロス。できればもっと気軽に学習を始めたいですよね。
Recursionでは、環境構築は必要ありません。
コンテンツ内にある専用エディタを使って、すぐにでも学習を始めることができるのです!

このエディタがまた素晴らしく、1つのコードを他の言語と見比べることができるのです。
現在はC++,JavaScript,Java,PHP,Python,C#,TypeScriptですが、今後Swiftが追加される予定だそうです。
Facebook(Meta)社在籍の現役エンジニアのコードをお手本にしながら練習します。
【アウトプット】コーディング問題

テストをして知識が身についたか試してみましょう。
コーディング問題は、自分の力で解かなくてはいけません。
分からない時は、ヒントを見たりコミュニティ(Discordコミュニティ)で相談したりします。
自分の答えを提出した後は、「解説と解答」と「ユーザー解答」が見られるようになります。
他のユーザーの解答が見れるので、さまざまな解き方が勉強できます。
「こんなコーディングの仕方があるんだ!なるほど!」と新しい発見にも繋がります。
答えは一つではない、と実感できますよ。
できれば、気に入ったユーザー解答をお気に入り登録できるとなお良し、なのですが。
Recursionの登録方法と料金
Recursionの登録方法と、料金について詳しく説明します。
私が実際に登録したときのスクショを入れながら説明しますので、これから登録しようか迷っているならぜひ参考にしてみてください。
会員登録
それでは、さっそく会員登録から始めてみましょう!
Recursion公式サイトにアクセスします。

無料会員登録をクリックします。

任意のユーザー名、メールアドレス、パスワードを入力して新規登録をクリックします。

登録したメールアドレスにRecursionからメールが届きますので、メールアドレスの確認をクリックして登録を完了します。

Recursionの料金っていくら?
有料会員は年額$588または月額$61となっています。
年額プランだと、なんと24%オフ!!
実質月$49なので、とってもお得ですね♪
平日は毎日2時間、土日は8時間勉強する場合、修了まで約9か月かかりますが、毎日の勉強時間があまり取れないのなら年額プランのほうがお得になります。
毎日どれぐらい勉強時間が取れるか人によって違いますので、自分に合ったプランを選びましょう。
Recursionの特徴2.チーム開発プログラム、特徴3.コミュニティで学習サポートと仲間づくりを存分に活かすためにも、有料会員に登録して体感してみてください。
有料?無料?Recursionで学習できる時間とコンテンツの違い
会員登録をした時点では無料会員になっています。
まずは無料会員で試してみて、自分に合っている、次のステップに進みたいと思ったら有料会員に切り替えましょう。

無料会員(Lite)
無料会員の範囲では、コンピュータサイエンスの基礎[初級]、HTML&CSSコースを学ぶことができます。
この2つのコースだけでも、総ページ数150ページ、コーディング問題25問もでき、学習時間の目安は45時間になります。
HTML&CSSコース、無料でいいんですか?!と思いました。
書籍を購入したり、他のオンライン学習などでHTML&CSSの勉強に5千円以上かけたんですけど……。
ただ、まったくの初心者がRecursionのHTML&CSSコースからスタートするとなると、あまり楽しさは感じられないかもしれません。
主な内容は、よく出る用語の解説、Bootstrapの使い方、基本的なウェブサイト(静的ページ)を作る課題となっています。


マークアップ言語を一応知っておきたいバックエンドエンジニア、Bootstrapに慣れておきたいフロントエンドエンジニアなどには短時間で効率よく学べるコンテンツです。
有料会員(Premiun)
コンピュータサイエンスの基礎とHTML&CSSが終わったら、有料会員になって他のコンテンツも試してみましょう。
とにかく内容が充実しており、総ページ数1077ページ、コーディング問題498問もあるんです!!(2022年6月現在)
学習目安時間790時間って、休みなしで毎日8時間勉強しても、99日ですよ?!
開発者の方が頑張ってくれたおかげです。素晴らしいです!
制作にどれほどの時間を要したか……。ありがたい気持ちでいっぱいです。
ちなみに、コンテンツや問題に誤字などがあったらコミュニティで報告すると直してくれます。
開発者との距離の近さを感じますね。Recursionをより良くするために、開発者もユーザーも手を取り合っているのを感じました。
今後どんどんコンテンツが増えていく予定だそうです!
Discordコミュニティの登録
コミュニティに参加する場合、有料会員であることと外部アプリDiscordへ登録する必要があります。

登録が完了すると、自分のメールアドレスにDiscordからメールが届きますので、別タブでメールを開き認証するをクリックします。

元のタブに戻ってDiscordを開くをクリックすると、コミュニティのページに移ります。

おこづかいが少ないのでプログラミングスクールは諦めましたけど、
Recursionなら予算内でした!

教育訓練給付金制度の対象のスクールだとしても
けっこう高額ですからね……。
Recursionで学習できるコースの紹介
2022年6月現在のRecursionが提供しているコースです。
コーディング問題の使用可能言語

コーディング問題で使用できる言語は「Python, JavaScript, PHP, Java, C++, TypeScript, C#, Ruby, Go」で、無料会員25問、有料会員340問となっています。
コンピュータサイエンスの基礎

コンピュータサイエンスは無料会員は初級、有料会員は初級~上級まですべてのレッスンが受けられます。
初級が終わっていないと中級には進めないので、すでに学習済みの内容でも復習がてらレッスンを受けましょう。
プログラミングパラダイム

現在受講できるのは、「オブジェクト指向プログラミングコース」のみです。
※今後、関数型言語のコースが追加される予定です。
アルゴリズム&データ構造

現在受講できるのは、「データベースコース」のみです。
※今後、アルゴリズム&データ構造のコースが追加される予定です。
数学

「離散数学Ⅰコース」、「離散数学Ⅱコース」があります。
ソフトウェア開発

現在受講できるのは、「デザインパターンコース」と「オペレーションシステム」です。
クイックスタート&ツール

現在受講できるのは、「HTML&CSS」、「Git」、「Larabel」、「Vue.js」、「Django」、「Unity」、「Angular」、「Ruby on Rails」、「Swift」、「React」のコースです。
コンピュータサイエンスプロジェクト

コンピュータサイエンスプロジェクトは、現在Project1~6まで受講できます。
※今後、Project7のコースが追加される予定です。
コンピュータサイエンスプロジェクトでは、JavaScriptでのアプリケーションを作成する方法を学習できます。
JavaScriptを勉強したいなら、こちらもぜひチャレンジしてみましょう!
Project1~4まではアンロック条件がないのですぐにトライできます。
Project1,2はサクサク進みますが、Project3から難易度が上がります。
学びながらステップアップしていけるので、Projectの順番通りに進めていくといいでしょう。
1度目はヒントを見ながら、2度目は見ないでチャレンジ、というやり方で理解を深めてもいいと思います。
もし立ち止まってしまったら、コンピュータサイエンスの基礎に戻ったりコミュニティを活用しましょう。
どのコースもHTMLの作成にはBootstrapを使うので、HTML&CSSコースが修了してからのほうがスムーズです。
特にProject3では、始めのうちはBootstrapの記述が多いです。見本の見た目をなかなか再現できなくて苦労しました。
慣れてしまうとCSSを記述するより断然早いので、コンピュータサイエンスプロジェクトでJavaScriptとBootstrapの両方習得しましょう!
その他
学習ロードマップ
開発者が推奨する学習の進め方です。

外部ツールTrelloに登録すると、この学習ロードマップをコピーしてチェックリストにチェックを入れることができます。

ユーザーの声
ユーザーのサクセスストーリーを読むことができます。
これを読んでモチベーションを上げていこう!
コンピュータサイエンスちゃんねる
Facebook(Meta)ソフトウェアエンジニアのJeffryが日本語で解説してくれてます!
注意点
Recursionで学習する上で、高校数学の知識が必要な部分があります。
とはいえ、ほとんどのコンテンツは数学の知識がなくても理解できます。
分からない・忘れたという人にも伝わるようになっているので、「分からない!無理!」と諦めずに学習を進めてください。
また、コーディング問題では、解き終わるまで解答が見られません。
どんな場合でも、自力で解かなくては先に進めないので、検索したりコミュニティで調べたりするため1問解くのにかなりの時間を要することも。
どうしても解けない時はスキップできますが、自分で調べたり頭を使ったりすることが成長への第一歩です。
Recursionのメリット、デメリット
Recursionについて感じた個人的な意見を、メリットデメリットに分けてまとめてみました。
気になる点についてはただの難癖です(笑)。Recursionには関係のない部分です。
正直なところ、「もっと早く出会いたかった!」の一言に尽きます。
Progate一周したらRecursionやればよかった。迷走して無駄な時間を過ごしてしまったあの日々を返してほしい……。
まとめ
Recursionについて長々と説明してきました。

Recursionで一から学び直そうと思います!

学習意欲が駆り立てられますよね。
無理せず、一緒に頑張りましょう!
一般的なオンラインプログラミング学習サイトは、ゲーム感覚であったり楽しさ重視、動画と一緒に手を動かすといった学習方法が多いですが、Recursionは自分で考えて答えを導き出すため、学習がテンポよく進むわけではありません。
しかし、早い段階でコンピュータサイエンスの理解度を深めて地盤固めをしておくことで、応用が利きますし、俯瞰で捉えられるようになれます。
そのため、時間はかかってもいいから本質を理解したい!と思っている方、多言語を習得したいエンジニアの方にはRecursionはうってつけです。
エンジニアを目指すなら、どの言語にも対応できるようになっておきたいですよね。たとえどの言語を学ぶとしても、ベースの考え方は同じなので、まずはひとつの言語をしっかり習得しましょう。理解したうえで他の言語を勉強すると、そこまで難しくは感じないはずです。
また、コツコツ頑張るカメさんタイプは、Recursionのカリキュラムに最も向いているタイプです。
着実に知識を積み重ねていく勉強法なので、ふと気が付いたら自分の引き出しが爆増してることに驚きますよ!
最後に、Recursionをおすすめしたい人についてまとめてみました。あくまで私個人の意見ですので、参考までに見ていただけたらと思います。
Recursionは、学校や企業と提携してもいいレベルだと思います。
小中学生向けの図解多め&価格ひかえめプランがあると、ユーザーの裾野が広がりそうですね!
コメント