【Recursion】見逃すと一生後悔するプログラミング学習教材

Programming(CS)

こんにちはー!
今回はいつもお世話になってるRecursionについて、記事を書いていきたいと思います!

突然ですが、あなたは以下のどれかに当てはまりますか?

  • Recursionというプログラミング学習教材が気になっている。
  • いろんなプログラミング学習機関があるけど、無駄にお金を払って、失敗したくない。
  • 留学先でCSを専攻にしようとしていたけど、計画が狂った。
  • どうでしたか?1つでも当てはまりました?

    もし当てはまったなら、

    あなたはこの記事を読み、Recursionを知り、Recursionを試す、
    そしてあわよくば、Recursionユーザーの一人としてみんなと勉強していくことをお勧めします!

    目次はこちら!

    Recursionで何ができるようになるの?

    まずRecursionを知らない方のために、Recursionでできるようになることをあげていきましょう。

  • 静的言語を含めた、多言語を使いこなせるようになる。
  • Google,Apple,Facebook,Amazon (通称GAFA)の採用試験で出題される問題が解けるようになる。
  • トランプゲームが自力で作れるようになる。
  • 自分であげてみてなんですが、この顔ぶれすごくないですか?
    かな〜りの努力はもちろん必要ですが、Recursion内で全て実証されています!!
    詳しくはRecursionのコンテンツを紹介していくよで紹介します!

    それではRecursionについてみていきましょう!

    Recursionについて

    recursion_dashboard
    Recursionは簡単にいうとプログラミング学習教材ですが、正しく細かくいうと、アメリカ大学のコンピュータサインエンスのカリキュラムにインスパイアされたコンテナンツを提供しているコンピュータサイエンス(CS)学習教材です!!

    そして、その優秀なコンテンツを認められ、RecursionはIT学習支援環境サービスの「TechCommit」に推奨教材として認められています。

    そんなRecursionですがなんと、リリースしたのは2020年8月!!

    そう、結構最近リリースされたんですが、そのコンテンツのボリュームに驚くでしょう。
    Recursionはびっくりするぐらいアップデートが早く、今ではもう半年前にリリースされた物とは思えないものになっています。
    最近では僕を含めたユーザーの要望でもあったダークモードを、実装しており、盛り上がってます!!!!!

    ん?なんですか?プログラミングとコンピュータサイエンスって何が違うかですか?

    う〜ん。僕はまだ精通しているわけではないので細かい説明はできませんが、僕の勝手なざっくりとしたイメージで説明すると、コンピュータサインエンスがあるとすると、その中の1つとしてプログラミング学習があるという感じです。

    CSとprograminngの図
    じゃあ、プログラミング学習はしっかりできないのかっていうというとそういうわけではありませんよ。むしろその逆です。CSを学べば、「プログラミングってどの言語でも基礎は同じなのか」と思うようになるので、新しい言語の習得が簡単になります。

    英語を完璧に習得したら、スペイン語が簡単になって、そのままポルトガル語やイタリア語も簡単に覚えれるようになる感じですね!ちょっと違う?まあいいか。

    Recursionの無料コンテンツ

    Recursionではemailだけで簡単に新規登録できます。

    そして無料コンテンツである
    CS基礎の「初級」と フレームワークの「HTML/CSS/Bootstrap」が学習できます。
    recursion_dashborad_beginner
    dashboad_framework
    もちろんRecursionは初心者でも問題なく学習が進めれるようになっています。
    その一方で、コンテンツの質も初級で学んだことが上級で生かされるほど濃いものになっています。

    コンテンツについては後ほど詳しく説明しますね。

    ちなみに、「無料コンテンツのことについてもっと知りたいな〜」って方はこちらの記事を参考にすると良いですよ!こちらの記事はレイナさんというRecursionの初期ユーザーの一人が書いた記事で、とても参考になります。


    ということで、今回、この記事ではレイナさんの記事をいくつかお借りしています。ありがとうございます(ノ^_^)ノ

    開発者について

    すごい実績を持ち、将来がとても楽しみなRecursionですが、開発者について知りたくありませんか?本来なら、開発者のことを知ることは難しい立場にあるユーザーですが、Recursionではそんなこともありません。

    Shinyaさん

    アメリカ在住で、CTOであるJeffryさんと一緒にRecursionを創業し、Recursionの運営やアップデート、youtubeの運営、ユーザーのコードレビューなど毎日大忙しです。
    twitterでフォローすれば、いろんなツイートしていて面白いです。



    Jeffryさん

    RecursionのCTOとしてShinyaさんとRecursionを創業し、新しいコンテンツの作成やRecursion内に無数にあるコーディング問題の解説、ユーザーのCSについての質問などに答えたり、コードレビューもしたり、Jeffryさんもshinyaさんと同様に毎日大忙しです。
    4つの言語を話せたり、10際の頃にすでにPCを作成してたり。すごくないですか?

    ここまで読んで、この二人は信用できるの?と思った方はおそらくまだ記事を読んでいませんね?
    上で紹介している記事はそれぞれ二人の凄さや、Recursionが創業されるまでの背景などがわかる記事となっています。ぜひ読んでみてくださいね!

    Recursionのコンテンツを紹介していくよ

    Recursionで具体的にどんな学習体験ができるのかを紹介していきますよ!

    こんな感じで説明していきます。ではみていきましょう!

    Recursionの学習方針

    まず、みなさん、ラーニングピラミッドって知ってますか?

    ラーニングピラミッドとは色々ある学習方法を平均学習定着率をもとにピラミッドで表したものです。

    learnning_pyramid
    Recursionではこの中でもっとも定着率の高い、「自ら体験する」「他人に教える」を重視した勉強法を取り入れています。

    そのため、コンテンツ内にはとてつもない量のエディタが存在し、コミュニティでは質問やそれに対する回答が飛び交います。

    教材

    教材
    Recursionのコンテンツの特徴は、シンプルで、何かの準備も必要なく、疑問を残さないような解説や説明で学習が進められることです。

    dashboard
    まず、Recursionのシンプルさはダッシュボードから伝わってきますよね。

    dashboard_CS_beginner
    dashboard_CS_beginner_pages
    UIが直感的に操作しやすいようになっていますし、コンテンツ内でもページごとに学ぶ内容が割り当てられているので、自分が今何を学んでいるのかがわかりやすく、もう一度読み返す際にも探しやすいです。

    recursion_content_editer

    そして、Recursion内には学習に必要なものがRecursion内で全て用意されているため、エディタの用意や言語ごとの環境設定などが必要ありません。

    現在、Recursionで用意されている言語はJavaScript,Python,Java,PHP,C++に加えてマークアップ言語のHTMLCSSのみですが、今後はさらに言語が増える予定みたいです。


    memory_address
    上の画像は初級の変数についてのコンテンツの一部ですが、少し読んでみてわかる通り、専門的な用語を使い根本的な基礎から学ぶことになります。

    もちろん、疑問を残さないような説明や解説がされるだけあってその理解に苦しむこともありますし、専門的な用語に苦戦することもあるでしょう。そして、いくら定着率が高いからと言って、一度読んだからといって完璧に覚えれることもないでしょう。しかし、そんなのは当たり前で、Recursionが推奨しているのは一度で覚えることではありません。

    Recursionの意味を知ってますか?

    「再帰」です。

    つまり繰り返しですね。
    Recursion内のコンテンツは専門的な用語を使い根本的で、基礎的な説明と解説を含んでいますが、それを再起的に理解していくことを推奨しています。そして、その環境が整っています。

    例えば、コンテンツ内にある検索機能、確認テストや繰り返し出てくるエディター、さらにこれから紹介する問題やコミュニティもその環境の一部です。そして、そういう環境があるからこそ、Recursionでは専門的なコンテンツをユーザーに提供でき、他の学習教材との差別化ができているんじゃないかと僕は思います。

    ちなみに再帰についてはRecursion内のCS基礎の中級で細か〜く説明されています。

    コミュニティ

     
    community

    Recursionではコミュニティが存在し、同じように学習に励んでいる仲間達と切磋琢磨することができます。
    コミュニティに参加するにはDiscordというアプリを使います。基本的には、ユーザーが質問し、他のユーザーが質問に答える、という使い方になると思いますが、他にもRecursionからのお知らせや、プロジェクトをみんなに共有したり、匿名の質問箱などもあります。

    discord_channels
    Discord内の様子はこんな感じ。
    discord_talk2-2

    コミュニティに参加しているユーザーとは、Twitterともつながることができます。
    #RecursionCSのハッシュタグで検索するとRecursionユーザーの「合格できました!」っていうツイートをたくさんみることができますよ!
    twitter_hashtag_RecursionCS

    コミュニティがあることによって、やっぱりモチベーション上がるなーって思います。
    Recursionのみんなも普通に家での家事や仕事があって忙しいのに、その合間を縫って時間を作り、Recursionに励んでいます。

    自分も負けられない!。。と思いつつ、なかなかみんなのようにはいきませんが、頑張っています。

    大量の問題


    questions_img

    Recursionのダッシュボードを見ると問題一覧というボタンが存在します。

    questions_button
    興味本位でそのボタンをクリックすると、、、、なんと!大量の問題があるじゃぁありませんか!!!!

    questions_head
    その数なんと305個!!(2020年12月現在)

    questions_tail
    そうなんです。Recursion内にはRecursionで学んだ知識を生かせる問題がたくさん用意されていて、難易度もveryeasy,easy,medium,hardの4つが用意されています。

    くれぐれも「hardからやってやろう」なんて思ってはいけませんよ!
    easyの中でもなかなか難しい問題が存在しており、hardはガチでhardです。

    さらに、問題の中には、Google,Apple,Facebook,Amazon(GAFA)の四強の採用試験に出てくる問題が、紛れ込んでいます。

    news_GAFA
    将来、GAFAを目指していなくてもこれらの問題をこなしていれば、知らないうちにGAFAも射程圏内になっているかもしれませんね。実際、RecursionはユーザーがGAFAに進出していくのを望んでるようですし。

    あと、「GAFAの問題?無理じゃんそんなの」って思った方はこちらの記事も読んでみることをお勧めします。


    Recursionのコンテンツで学ぶことを駆使すればGAFAの問題も意外と、、簡単とは言いませんが、解けるようになります。

    そんなRecursionの、ユニークな問題機能はこんな感じ。

    question_enpty
    左側に問題や例があり、右側にプログラムを記述することができるエディタが用意されています。
    もちろん言語は選択可能です。

    そして、プログラムを書き終えると、プログラムの合否を出す前に右上にあるテストボタンを押すことで、自分のプログラムが正しく動いているのかを確認することができます。
    一番上に入力値があり、その下に自分の書いたプログラムの出力結果、一番下に正解の出力結果が出てきます。

    question_test

    その後、「問題なさそうだな〜」と思ったら提出ボタンで自分のプログラムの採点というか、合否の確認ができます。
    プログラムの合否の出し方について、中身は詳しく知らないのですが、問題を解いている限り、自分の作ったプログラムに対して、色々な入力値を入れていき、全て正解と同じであれば合格になるようです。

    ちなみに合格になるとこんな画面が出てきます。

    question_passed
    合格するとtwitterのリンクがててきて、そこからそのままツイートできます。

    ツイートするとみんながいいねってしてくれるのでいい気分になります。あと、たまに開発者のShinyaさんやJeffryさんがコメントくれますよ!

    YouTubeでのコーディング解説


    teach
    ちょっとだけ話しましたが、RecursionではYoutubeも運営しています。

    Youtube内の動画では、Recursionを進めていく上でユーザーが躓きやすいコーディング問題や、匿名で聞けるユーザーの質問などにCTOであるJeffryさんが直々に、僕たちが理解しやすいように日本語で、解説してくれています。

    登録しておくと無料で海外で通用するレベルの知識を手に入れることができるかも知れませんね。

    プロジェクト


    idea
    Recursionのダッシュボードを下にスクロールするとこんな場所があります。プロジェクトですね。

    dashboard_project
    ここではHTML,CSS,に加えてJavaScriptを使って、DOMやGUIについて学んだりAPIを使ったプロジェクトなどもあるようです。

    1つ1つのプロジェクトの最後には課題があり、そこでは要件と説明のみがあり、そこからユーザーは一から課題の作成に取り組みます。なのでエディタは用意されていますが、真っ白の状態で用意されています。

    ユーザーが一から作成することでアプリケーションの設計能力をあげたり、アプリケーション開発に近い経験をすることができます。

    例えば一番最初の僕のプロジェクトはこんな感じで完成しました。

    project1_img

    ちなみにこちらのリンクから実際のRecursion内のProjectをみることができます。
    リンク内に入ってから右上にある実行ボタンを押すことで、表示されます。

    一番最初のプロジェクトは壁紙を作成するプロジェクトだったんですがこれでもだいぶ苦労しました。

    そして、レベルの高いプロジェクトになると、こんな感じ!

    nori_project

    今回はNoriさんのプロジェクトを紹介させていただいています。
    ありがとうございます(ノ^_^)ノ

    彼はRecursionの上級者の内の一人で,Recursionがリリースされてから半年もしないうちにブラックジャックとポーカーを1+NPC3人の4人で遊べるゲームを開発してしまいました! 

    実際に遊べるのでこちらからどうぞ!
    cmd+(-)で小さくするとちょうどいい感じで遊べます。
    元に戻すにはcmd+shift+(+)で。

    名前を「cheater」にすると相手の手札が見えるようになるらしいです!
    あと、ルールがわからないよという人は、左側にあるJavaScriptボタンをクリックすると一番上に親切にルール説明がされています。

    nori_project_rule

    さらに、もう1つ、「Clicker Empire Game」というものです!

    画面はこんな感じ、

    レイナさん↓
    recursion_project_reina_click_empire_game
    リンクはこちらから

    Noriさん↓
    recursion_nori_project_click_enpire_game
    リンクはこちらから

    このゲームではプレイヤーは20歳から始まり、ゲーム内の日付が変わるたびにお金が手に入りますが、同時に年月が経てば歳もとります。

    左にあるハンバーガーをクリックすることで、1日に手に入るお金の量が変わります。そして、いかに若いうちにお金持ちになるか、一番高い買い物ができるようになるか、っていうのが、このゲームのポイントかなと思います。

    早くお金を稼ぐために、ハンバーガーを死ぬほどクリックしてもいいですし、右側にある便利なアイテムを使って効率的にお金を増やしてもいいし、お金の増やし方はあなた次第です。

    プロジェクトについて紹介しましたがどうでしたか?半年でこのレベルに到達した人が出たってことは、Recursionの将来がほんとに楽しみになってきますよね。

    また、ここで紹介していない楽しいプロジェクトももちろんたくさんあるので、ぜひコミュニティから確認してみてください!

    あと、こちらも参考に!

    課金について

    さて、Recursionの無料コンテンツを一通り学習し終わったら、2つの選択を迫られるでしょう。「課金するか」「課金しないか」の2つですね。

    Recursionでは、クレジットカード払いの月61ドル、または2ヶ月お得な年588ドルの2つのプランから選べます。2020年12月20日のレートだと月払いプランが約6300円、年払いプランが約6万円の計算です。

    一応、計算サイトにここから飛べます。

    価格を見て、課金してる僕からすれば、払う価値はあるし安いよね〜と今は思うんですが、課金する前はお金を払う価値があるのかわからないですよね。うんうん。よくわかります。

    そこで、僕の体験談を少しだけ紹介します。。興味ない人は読み飛ばしてもらって結構です(^-^)

    Recursionがリリースされる前の確か2020年の4月ごろに、実はRecursionはテストユーザーを募集しており、僕はそれを知りチャンスだと思い参加していました。テストユーザーとしてコンテンツを学べる範囲は現在のRecursionの無料コンテンツの範囲でした。
    
    そして中級がリリースされ初め、課金したユーザーのみRecursionのリリース前から中級を学習できるようになりました。そんな中で僕は、他にやりたいことがあるし、当時金欠だったので、お金を失う価値があるのかわからないと言う理由で、課金をしませんでした。。。
    
    それから、時間は過ぎて、8月、ついにRecursionがリリース!色々あって僕も課金をし、初級から中級に進みました。そして、自分が犯した大きな間違いに気づきました。
    
    「課金する価値はあった..」
    
    その時僕は価値ある学習教材を発見した喜びよりも、課金せずに約3ヶ月の時間を失っていたことに気づいたショックと後悔の方が大きかったです....
    
    でも、今思い返すと、自分はラッキーな方だったな〜と思います。もしこのままずっと課金をせずに過ごしていたなら。と思うとほんとにゾッとします。
    

    こんな話をして何が言いたいかというと、僕はこの体験を通して「リスクをとって損をする」よりも、「リスクをとらずに損をしてることにすら気づかないで生きていく」っていう方が怖い。と言うことを伝えたかったんです。

    そして結論!!
    1ヶ月だけ課金してみることを大いにお勧めします!

    ではまた。