![見出し画像](https://assets.st-note.com/production/uploads/images/37126304/rectangle_large_type_2_5872e8b8812f764fea96a0b70a258072.png?width=1200)
プログラミングの基礎!私達がRecursionのCS学習を勧める理由
こんにちは!TechCommitメンバーの井上です。
皆さんコンピュータ・サイエンス(CS)勉強していますか?
おそらく、その必要性はなんとなく認識しながらも、日本でCSをきちんと学習したという経験を持つ方はそれほど多くはないのではないのではないでしょうか。
様々なIT学習のベースとなるべく日々TechCommitを運用していますが、より多くの方にコンピュータ・サイエンスにも興味を持って頂ければと考え、先日『コンピュータ・サイエンスを基礎から学べるプラットフォーム』の Recursion を「TechCommitの推奨教材」の1つとして指定させて頂きました。
そこで今回は、コンピュータ・サイエンスの概要や必要性、その習得方法などについて紹介したいと思います。今まで学習したことがない方は是非チェックしてみてください!
コンピュータ・サイエンスは何の役立つのか?
コンピュータ・サイエンスの必要性はなんとなく理解しているものの、実際にどういった場面で役に立つのかイメージが湧きにくいという方もおられるかと思います。
Recursion CEOのShinyaさんは
コンピュータサイエンスとは、ソフトウェア開発、データ処理、人工知能、データサイエンス、アルゴリズムなどといった計算の理論や情報の処理に関する学問です。簡単に言うと、コンピュータを使って、工学、理学、数学を扱う学問です。
CSは「データを扱う」学問であるため、CSによって現実世界の事象をサイバー空間で表現し、膨大なデータを処理できるようになります。
と説明しています。
個人的に、共同創業者であるCTOのJeffyさんが下記で話されている、
コンピュータサイエンスは、ある程度基本を学ぶと、色んな事に応用できるようになります。この知識があれば、さまざまな分野のソフトウェア開発に役立てることができます。
ゲームで言えば、装備をしっかり揃えて冒険の旅に出るようなもの。
という内容が分かりやすく良い表現だなと思いました。
仕事において、業務ロジックをプログラミングなどで表現するだけであれば、その業務を理解さえしていればひとまず動くものを作ることは出来るでしょう。
ただ、特に膨大な量のデータを扱うような「コンピュータの性能を最大限に活かす処理」を実装する場合や、より「汎用的な先を見据えた設計」を行うためには学問として研究されてきた知識を活かすことでより質の高いシステムの構築が可能になります。
コンピュータ・サイエンスは難しい?
"コンピュータ・サイエンス"と聞くと、なかなかとっつきづらいイメージを持たれている方も多いかと思います。
実際、RecursionのShinyaさんも
CSには数学のスキルが必要であり、決して簡単な科目ではありません。また短期間で学習できるものではなく、最低でも1,000時間の勉強が必要になります。
と書かれています。
ただ、だからこそシリコンバレーではコンピュータ・サイエンスをしっかりと学んできたITエンジニアが評価され、その知識をもって活躍しているわけですね。
コンピュータ・サイエンスなどのベースとなるスキルが付けられれば、プログラミング言語などに依存しないスキルが身に付きます。
習得には努力が必要ですが、これからより活躍していけるITエンジニアとなる為に、強力な武器としてこの機会に学びはじめてみるのも良いのではないでしょうか。
コンピュータ・サイエンスを学ぶ方法
コンピュータ・サイエンスは書籍等で学ぶことも出来ますが、アメリカなどでは当たり前に学問として大学で専攻して学びます。
日本の大学でも情報工学として学ぶことは出来るものも、カリキュラムの内容も大きく違い、また本格的なコンピュータ・サイエンスが学べる大学でも人数制限などでアメリカほど勉強出来る機会も少ないそうです。
個人で勉強する場合、英語が得意な方は特に(大学関連も含めて)コンピュータ・サイエンスに関する教材や学習に関する情報量も多いので、まず馴染みの教材サイトから探されるのも良いのかなと思います。
Recursionは日本人向けに、アメリカの大学で一般的に学ぶコンピュータ・サイエンスを噛み砕いて学べるように提供されているため、特にこれから学び始める方は(無料教材もある為)使ってみて頂ければと思います。
※2020/12/08追記
最近YouTubeの方でも解説されているそうなのでご興味ある方は覗いてみても良いかもしれません!
Recursionの学習文化
Recursionではアウトプットを大切にしており、「Think For Yourself(自分で考えなさい)」の方針で教材作りや学習者コミュニティの運営を行っています。
教材をインプットした後は、問題演習で実際に知識を使って自分の頭で考えさせる仕組みになっています。はじめは簡単なところから始まり徐々に本格的になっていきます。
▼ 演習問題の一部
理論を学んだ後に、それらを利用した実際の問題解決を体験することで知識の定着や使い所の理解を進めていくという仕組みになっています。
TechCommitが推奨教材に指定した理由
TechCommitがRecursionを推奨教材とした理由は主に下記の3点です。
● 小手先の技術ではない本質的な力を中長期的に養うことが目的である
● より活躍出来る日本のITエンジニアを増やそうと本気で努力されている
● オンラインで様々な環境の人でも活用して学習していくことが出来る
TechCommitはITスキルを中長期的に楽しみながら身につけて、結果を出していくためのオンラインのIT学習コミュニティです。
当たり前ですがITスキルは3~6ヶ月程度で"完全に理解できる"ようなものではない為、メンバー同士で学習内容や個人アプリ制作などについてフィードバックしあい・助け合い・刺激を受けながら、コツコツやり続けて結果(自己実現)を目指していきます。
そんなTechCommitの考え方にRecursionのサービスの思想に通じるところがあり、実際にRecursionのCEOのShinyaさんとお話もさせていただいて、ぜひ推奨教材したいと打診いたしました。
▼ Shinyaさんの想いは下記のnoteでも綴られています
最後に
こちらを執筆中の段階では現在制作中ですが、RecursionでLaravelやOOP(オブジェクト指向)などのテーマもこれから追加されていくそうで個人的にもとても楽しみにしています!
自分で言うのもなんですが、TechCommitやRecursionなどはとても良い思想のサービスなので是非応援いただけましたら幸いです。
励みになるので「いいね」や「フォロー」もお願いします!