こんにちは!コンじゃぶろーです!
今日は、初心者プログラマー向けに、非常に良いサービスを見つけたので紹介します。
「学べる方法がたくさんあって、どれから学ぶのが良いか分からない」
「独学だと、グループ制作の技術が学べないんじゃないか?」
「プログラミングの参考書を買ったけど、1ページも開いていない。独学だとやる気が出ない」
プログラミングを学習し始めようとする人にとって、「プログラミング」という言葉が、逆に足枷になっているんじゃないかと思います。
あまりにも高い理想を掲げすぎて、複雑なものだと思い込んでしまっている人は多いです。
今日の記事は、そんな怖がりなプログラミング初心者の問題を全て解決する内容になっています。
僕が紹介するのは、現役Facebook(Meta)エンジニアがカリキュラムを作成、監修している教育プログラムです。このサービスでは、シリコンバレーでは主流となっているコンピュータサイエンスを学習できます。ここには、コンピュータサイエンス(CS)を学ぶ方法が詰まっています。
無料コースの紹介もあるので、それだけ受けてもレベルアップできる内容ですので、是非チャレンジして下さい。
※この記事は、オンラインでコンピュータサイエンスを体系的に学べる『Recursion(リカージョン)』の紹介記事です。
プログラミング初心者、何から学ぶ?
プログラミング初心者が、何から学ぶ?という課題は、永遠のテーマだと思います。
なぜなら、多くのエンジニアは、そこを飛び越えていくからです。比較的簡単なので、おそらく多くのエンジニアは記憶にすら残っていないかもしれません。しかし、簡単と言っても「特殊な才能」がある人だけの話です。
プログラミング学習の現場では、恐ろしい選別作業が行われます。
プログラミングにあっていない人は、容赦無く切り捨てる(自分から諦める)世界がそこにあります。ゲーム開発の為の専門学校に行くと、当然プログラミングを学びます。そして、1から勉強を始めるわけですが、適性がないとパニックになり自分からやめて行きました。
それこそ、山のようにエンジニアを諦めた人がいました。ある人はグラフィッカーになり、ある人はプランナーになる。そういう世界があります。それくらい、最初のつまづきというのが、将来に響くのがプログラミング学習です。
僕は、プランナー志望でしたが、プログラミング専攻のクラスに進み、プログラマーに混じってプログラミングしていました。基本情報処理技術者試験もアセンブラ(プログラミング言語の1つ)で取得しました。
プランナーと言えども、仕事相手はエンジニアなので、彼らの言葉を知る必要があったのです。
そんな僕が、プログラミング学習(特に初心者)に大切な事が2つあると確信しています。それは、「質問できる相手」の存在と「コミュニティー」の存在です。
僕は、割と落ちこぼれでしたが、その2つによってプログラミングを挫折せずに学習する事ができました。今日紹介する『Recursion(リカージョン)』には、その2つがあります。
1つ目の「質問できる相手」に関しては、現役のFacebook(Meta)エンジニアが質問に答えてくれたり、チーム開発ではアドバイスをもらう事もできます。そして、もう1つのコミュニティに関しては、この『Recursion(リカージョン)』は、常にコミュニティー(Discord)に接続されたコミュニティーである点です。
『Recursion(リカージョン)』ブラウザ(オンライン)でプログラミングの学習が可能なサービスです。
そして、このシリコンバレー式の学習プログラム『Recursion(リカージョン)』によって学習したエンジニアが内定をもらった実績が、実力を物語っています。
『Recursion(リカージョン)』内定実績
任天堂株式会社、ヤフー株式会社、ソフトバンク株式会社、株式会社三菱UFJ銀行、株式会社野村総合研究所、GMOペイメントゲートウェイ株式会社、エヌ・ティ・ティ・コミュニケーションズ株式会社、シンプレクス株式会社、ビジョナル株式会社、ヘイ株式会社、株式会社ゆめみ、Sansan株式会社、株式会社ACES、株式会社アイリッジ、株式会社RevComm
引用元『Recursion』https://recursionist.io
プログラミング(初心者)何から学ぶ?業界20年のゲームクリエイターが思う事
プログラミングの初心者が何から学ぶ?か、に関しては、心当たりがあります。多くのエンジニアが、まず取り組む学習は、「Hello world!」です。
プログラミングを学んだ事がない人にとっては、意味が分からないと思います。プログラムを実行すると、画面に「Hello world!」が表示されます。最初にこの世界に入ってきた時に、訪れた人が明るい気持ちになるようにと願っているのかどうか分かりませんが、元気よく挨拶してくれます。
僕、ここでつまづいたんです。
プログラムができる人も、やった事がない人も意味が分からないと思います。
僕は、1歩目の「Hello world!」でつまづきました。(大事な事なので2回言いました。)
C言語というプログラミングで、「Hello world!」を表示する仕組みを説明されて意味が分からずつまづきました。プログラミング内に書かれている、「Hello world!」を「Hey!」に変えると、実行した時にも「Hey!」になるのは分かりました。
しかし、「Hello world!」を表示する為に書かれているソースの
98%以上が意味不明でパニックになりました。
英語を勉強する時に、「Hello world!」という単語しか分からない人が、英語ニュースの全文の中から「Hello world!」という文字だけを見つけて孤独になる感じです。その向こうには、満面の笑みを讃えたアメリカ人が立っています。そして「Hello world!」と元気に挨拶してきます。
僕は、心臓が締め付けられる感覚を味わいました。
プログラミング初心者の僕でも、Hello world!を、Hey!に変更できるくらいでは、ゲーム開発できないと感じたからです。どういう理屈でプログラムというものが動いているのか、基礎を知る必要があると感じました。
プログラミング初心者は、「基礎」から学ぶべし
プログラミングは、「基礎」から学ぶべきです。
急に「ソース」を見ると意味が分からないのは当然だからです。
では「基礎」とは一体何なのでしょうか?そこのチョイスが非常に難しいです。だからこそ、徹底的に洗練されたカリキュラムが必要です。学習方法を最適化し、つまづかない順番に並び替えた「基礎」を学ぶ必要があります。
でなければ、「Hello world!」に挑むしか道がなくなってしまいます。プログラミングは、非常にパズル的な部分がありまして、法則性を見つけて「勘」で読み解くという事が可能になっています。
日本語とか英語も一緒ですが、法則性を見つけさえすれば「勘」でコミュニケーションが取れたりします。ただ、勘の鋭い人ばかりではないので、見えない所で挫折している人は多い事でしょう。
ただ単純に目指している人が多いから、生き残っている人が多くいるように見えているだけで、大多数の人が挫折してしまう世界があります。専門学校時代で言えば、クラスの半分は、1年で去る世界でした。
もし、これまで挫折した人が、先に進めていたとしたら、今の倍以上エンジニアがいて日本はもっと発展していたに違いありません。
プログラミング初心者が、つまづく「基礎」とは?
では、プログラミング初心者が最初に勉強すべき事はなんですか?と問われれば、これです。
- データ:プログラミングで扱う様々なものについて
- プリミティブ型:データを構成する「型」について(bool, int, long,float, double,char,str)
- 変数:データの「読み込み」と「書き込み」について
- 関数:問題を解決するために必要なプログラムについて
これらの4つの項目は、日本語で言えば、ひらがなの50音表の「あ〜ん」であり「0〜9」です。そして、ちょっとした日常会話のルールや、マナーになります。
この概念を知るまでは、ソースは見ない方が良いとさえ思います。初めてみるものが多いので、抵抗感はありますが、ここさえ丁寧に学べば、その後の学習で自立した学習(自分のペースに合わせたオンライン学習)が可能となります。
『Recursion(リカージョン)』では、初級コース(無料)段階でこの4つを無料で学習する事ができます。今後、どのような形で勉強するにしても、今、学んでおいて損はないと思います。
↓手取り早く初級コース(無料)を試してみる
【初級無料有り】シリコンバレー式の学習プログラム『Recursion(リカージョン)』プログラミング(初心者)何から学ぶ?シリコンバレーエンジニアから学ぼう
プログラミングの学習は孤独です。
どんなスクールに通おうと、目の前のパソコンに向き合うのは自分しかいないからです。任された課題に対して、自分で解決する力をつけなくてはいけません。
プログラマーの能力は、「課題」をどれだけ解決したか?で決まります。だから、「独学」という手法は間違いではありません。しかし、間違った環境で独学すると挫折しやすくなるので注意が必要です。
そんな時に重要になるのは「質問できる相手」です。
実際に現場で働いているエンジニアや、熟練者を「質問できる相手」としてサポートしてもらう事によって、勉強の質は飛躍的に上昇します。
プログラミング初心者に必要なのは、つまづいた時にすぐに質問できる環境!
プログラミングは、どれだけ「課題」を解決してきたか?にかかっていると解説しました。
解決しようとしている問題を眺めていると、ある程度の法則性に基づいて、「勘」を働かせると解決できます。それは、ちょっとしたパズルゲームのような感覚です。だから、プログラミングには「経験」と「勘」が必要です。そのどちらも兼ね備えた「現役エンジニア」がいると、学習の質が高まります。
『Recursion(リカージョン)』は、現役Facebook(Meta)エンジニアがカリキュラムを作成、監修している教育プログラムです。そして、学習中につまづいても、すぐに質問できる環境が整っています。
世界で通用するエンジニアを育てる『Recursion』
『Recursion(リカージョン)』は、「世界に通用するエンジニアを育てる」を理念として教育プログラムを用意しています。
下図の「CS(コンピュータサイエンス)初級」の箇所が無料で公開されていて基礎を学ぶ事が可能です。
『Recursion(リカージョン)』は、現役Facebook(Meta)エンジニアがカリキュラムを作成、監修している教育プログラムです。アメリカ式の勉強方法で、ここには上質なノウハウと実績が詰まっています。
↓手取り早く初級コース(無料)を試してみる
【初級無料有り】シリコンバレー式の学習プログラム『Recursion(リカージョン)』プログラミング初心者が、独学って大丈夫なの?
プログラミング初心者が抱える悩みの中に、「独学」に対する不安があると思います。
当然です。僕も1人の力ではプログラミングを学習する事ができませんでした。プログラミングの学習には「コミュニティ」が欠かせません。
僕の場合は、専門学校で学んだ為、そのあたりのケアが出来ました。オンライン学習ではどうでしょうか?何だかコミュニケーション不足になりそうな気がします。エンジニアの現場では、チーム開発があたりまえなので、チーム開発がないと危ないんじゃないか?と思った方はセンスが良いと思います。
コミュニケーション不足は、そのまま挫折する確率を飛躍的に増加させます。
『Recursion(リカージョン)』はオンラインコミュニティ型の学習サービスです。基礎から上級までのオンライン独学システムだけではなく、「コミュニティー」が充実したサービスになります。
プログラミング初心者にも安心、『Recursion』には気軽に質問できるコミュニティがある
ゲームクリエイターの、オススメポイント!
相談事があっても、すぐに「コミュニティー」へ質問する事が可能です。
『Recursion(リカージョン)』内では、「Discord」でコミュニケーションします。
テキストの更新情報や、イベント情報が公開されます。また、「チーム開発」という制度があり、定期的にグループ制作が体験できます。
就職する前に必要な技能として、「チーム開発ができる事」「成果物がある事」という2大巨塔があるのですが、両方満たす事が出来ます。具体的な技術で言えば、
「Discord」「Git」「Zoom」等を使って遠隔でも複数のメンバーで開発ができる事が必須です。
ゲームクリエイターの、オススメポイント!
リモートでチーム制作できたら、エンジニアとして、どこでも仕事ができるようになります。
逆に、Discord,Git,Zoomの3つのツールを使った事がないエンジニアは、採用されづらい世の中になっています。少なくともGitでの開発経験は必須でしょう。
『Recursion(リカージョン)』では、定期的にチーム開発メンバー募集のアナウンスがあり、1グループ(エンジニア3人+メンター1人)で、チーム開発を実践します。
もちろん、誰でも参加できるわけではなく、一定のカリキュラムをこなした人だけになります。これは、チーム制作をする上で、大切な事です。一定の技術を持っていないと学びの質が低下してしまうので、最低限の技術を学んでから挑戦しましょう。
コミュニティーでの横の繋がりも非常に貴重です。エンジニアの世界では、会社を超えて助け合う文化があるからです。人手が足りない時のヘルプ等、知り合い同士で紹介し合えるコミュニティーがあるだけで、将来は安定しやすくなります。
↓Youtubeで公開されています。
プログラミング初心者が、『Recursion』で学んだ結果
『Recursion(リカージョン)』では、企業の内定が決まると、個別にインタビューされ、ブログで紹介されます。これから学習しようと思っている方は、要チェックです。
内定実績のあるエンジニアの中には、全くの未経験者もいたりします。ブログで公開されている内定者インタビューの中から、プログラミング初心者として『Recursion(リカージョン)』へ参加し、内定実績をもらったエンジニアを紹介したいと思います。
内定実績:Kwonさんの場合 全くの未経験から『Recursion』へ
(プログラミング経験)
Kwonさん:Recusionを始める前に1か月程Progateとドットインストールで学習していましたが、コンピュータサイエンスという言葉自体も知りませんでした。
引用Recusinonhttps://blog.recursionist.io/kwon/
内定実績:hiromuさんの場合 独学で勉強してから『Recursion』へ
(プログラミング経験)
hiromuさん:大学ではほとんどプログラミングを扱わないため、独学でプログラミングを学んでいました。スキルとしては、Ruby on RailsとVue.jsを使って簡単な掲示板を作れるくらいでした。
引用Recusinonhttps://blog.recursionist.io/hiromu/
内定実績:Luckさんの場合 大学の授業でプログラミングに出会う。独学で勉強してから『Recursion』へ
(プログラミング経験)
Luckさん:大学2年生の時のプログラミングの授業がきっかけでプログラミングに興味を持ちました。その後、自分でPythonの入門書を買って取り組み始めました。研究を始めるにあたって、コンピュータサイエンスの基礎を体系的に学べる教材を探していたところ、Recursionを見つけました。
引用Recusinonhttps://blog.recursionist.io/luck/
↓初級コース(無料)を試してみる
【初級無料有り】シリコンバレー式の学習プログラム『Recursion(リカージョン)』プログラミング(初心者)何から学ぶ?「Recurion」世界に通用するカリキュラムってどんな勉強方法?詳細説明
カリキュラムは、大きく分けてコンピュータサイエンスの基礎を学習できるコースと、基礎力を活かしてソフトウェア開発などを学習できるコース、そしてチーム開発があります。
Recursionのカリキュラムについて詳細を説明します。
アウトプットメインで学習できる『Recursion(リカージョン)』のカリキュラム
『Recursion(リカージョン)』のカリキュラムは、アウトプット型であることが一番の特徴です。
座学で学習したあとは、コーディング問題、プロジェクトの作成など豊富なアウトプット課題が用意されています。
アウトプット型のカリキュラムで効率的にプログラミングを身につける事ができます。初級は無料で、25問の問題とテキストが用意されています。こちらは大体45時間程度のカリキュラムです。
※プログラミング経験がある場合は、もう少し早く学習する事は可能です。僕の場合であれば16時間程で、基礎のおさらいができました。
有料会員になると公開中の790時間分のコンテンツと498問のコーディング問題にアクセスすることができるようになります。
カリキュラムは、「座学部分」と、「コーディング部分」、「確認問題」の三種類で構成されています。
全てブラウザで完結している為、プログラミングソフトは不要です。
①座学部分
プログラミングに必要な座学を教えてくれるページです。
<実際のキャプチャ画像>
②コーディング部分
プログラミング言語を記述する事を、コーディングと言います。
小説などで、文章を書く事をライティングと言うように、プログラムのコードを書く作業を、コーディングと言います。
通常であれば、C言語やJAVA等、プログラミング言語によって、専用のプログラム開発ツールが必要になりますが、『Recursion(リカージョン)』は、ブラウザ上でプログラミングのコーディングができ、実行(結果の確認)ができます。
ゲームクリエイターの、オススメポイント!
通常、1つの言語を勉強しようと思うと、開発環境を作るだけで半日以上かかったりします。中には高額なソフトを買わなければいけない事もあり、勉強する事自体が困難になる事も多いです。
↓こちらが、実際のコーディング画面です。
『Recursion(リカージョン)』では、C++、JavaScript、Java、PHP、Python、C#、Go
、Ruby、TypeScriptの9つの言語で実行する事が可能です。
画面上部の言語をクリックすると、瞬時に言語が切り替わり、「実行」を押すと、右の黒い部分に結果が表示されます。左のコード部分を変更すれば、実行結果も変わります。※コーディングが、間違っていればエラーも出ます。
ゲームクリエイターの、オススメポイント!
5つの言語について解説が用意されています。
「1つの処理」を、コーディングする際に、複数の言語と比較しながら学習する事ができるので、応用が効きます。
③確認問題
座学が終了した後には、確認用のテスト問題が用意されています。
学習した内容に問題がないか1つずつチェックする事ができます。こまめに確認問題が発生しますので、間違った場合に振り返る事が可能です。また、どうしても分からない場合は、コミュニティーへ質問を投げかける事が可能です。
また、Recursion(リカージョン)では、現役エンジニアが推奨する「カリキュラムのロードマップ」が存在します。良く質問される内容は、ブログで解説されていて、ロードマップから参照する事が可能です。
↓こちらが実際の確認問題です。
コンピュータサイエンスの基礎「初級」(無料)
プログラミング初級では、「基礎」を学ぶ事が可能です。
データと関数に関して理解を深め、コンピュータを扱う為の基礎を築き上げます。
- データ:プログラミングで扱う様々なものについて
- プリミティブ型:データを構成する「型」について(bool, int, long,float, double,char,str)
- 変数:データの「読み込み」と「書き込み」について
- 関数:問題を解決するために必要なプログラムについて
コンピュータサイエンスの基礎「中級」
抽象化、再帰、スコープ、制御フロー、オブジェクト、リストについて詳しく学習します。
初級を全て学習し終わったらアンロックされます。
コンピュータサイエンスの基礎「上級」
連結リスト、スタック、キュー、木構造、ラムダ関数、ソフトウェアテキストについて詳しく学習します。
中級を全て学習し終わったらアンロックされます。
コンピューターサイエンス、学習と共に広がる世界
『Recursion(リカージョン)』は、CS基礎だけではありません。コンピューターサイエンスに関わる幅広い知識を学習する事ができます。
- プログラミングパラダイム:OOP(OOPの柱であるカプセル化、継承、ポリモーフィズム等に関して詳しく学習します。
- アルゴリズム&データ構造:データベースシステムについて詳しく学習します。関係モデルの特性、定義、演算子、関係代数について。
- 数学(離散数学Ⅰ、離散数学Ⅱ):コンピュータサイエンスに関わる数学全般。
- ソフトウェア開発:デザインパターン(OOPクリア後に解放される。)
- クイックスタートツール:様々なアプリケーション開発ツールの学習カリキュラムが用意されています。(HTMLとCSS(無料)、Git、Laravel、Vue.js、Django、Unity、Ruby on Rails、Angular、SwiftUI、React)
※HTMLとCSSは、無料で学習する事が可能です。ぜひお試しください。
↓HTMLとCSS(無料)を試してみる
【初級無料有り】シリコンバレー式の学習プログラム『Recursion(リカージョン)』コンピュータサイエンスプロジェクトで実践!自力で開発できる力を身に付ける
コンピュータサイエンスの基礎を学習したらより実践的な開発力を身に付けるため、コンピュータサイエンスプロジェクトに挑戦します。
JavaScriptのDOMを使ってウェブページを表現する方法やMVCなど、アプリケーションの開発に必要な知識を学ぶことができます。各プロジェクトの最後には、「Clicker Empire Game」や「BlackJack」などのアプリケーションを自力で開発する課題が用意されています。
メインとなる要件だけが定義されていて、自分で必要なデータを考え、ロジックを組み立てる必要があります。
このプロジェクトを完成させることで、自力で開発できる力が身に付きます。
このように、『Recursion(リカージョン)』では、基礎から応用まで幅広く学ぶ事が可能です。そして、学んでいる最中につまづいても、コミュニティーですぐ相談する事が可能です。
長く在籍すればするほど、価値が高くなるコミュニティです。
実務に近い経験ができるチーム開発
コンピュータサイエンスプロジェクトを完成させると、チーム開発に参加できるようになります。
定期的にDiscordコミュニティで募集の案内があり、1人のメンターと3人のメンティーでチームを作り、1ヵ月かけて1つのプロジェクトを完成させます。
要件定義や、納期、Gitを使ってのバージョン管理など、未経験でも実務に近い経験を積むことができます。
ゲームクリエイターの、オススメポイント!
プログラミングは、チーム開発が一般的です。特にリモート化が当たり前になった世界では、Gitを使ってのバージョン管理は必須になりました。
リモートでのバージョン管理やスケジュール管理を体験するだけで、即戦力として求められる人材になります。
まとめ 世界を目指すエンジニアを育てる【Recursion】
今日は、『Recursion(リカージョン)』に関して紹介させていただきました。
月額$61で受けれるサービスとしては非常に優秀なサービスだと言えます。(年間契約にすれば、月額料金は、実質$49になります。)
これから楽しみなコミュニティ型のオンライン学習システムの紹介でした。今後、こういうサービスは非常に増えてくると思います。
エンジニアとして生きていくなら、こういう学習システム自体を開発する機会も訪れるかもしれません。そういう時に、先に「経験ずみ」である事がとても大切だと思います。
日本にとって多くの優秀なエンジニアが誕生する仕組みだと感じたので紹介させていただきました。
↓手取り早く初級コース(無料)を試してみる
【初級無料有り】シリコンバレー式の学習プログラム『Recursion(リカージョン)』
コメント