コンピュータサイエンス学習プラットフォーム「Recursion」を提供するRecursion, Inc(本社:カリフォルニア州ロサンゼルス、共同創業者:田島慎也 、Jeffry Alvarado、以下当社)は、2020年9月8日、初級編に引き続き、「コンピュータサイエンス基礎:中級編」をリリースしました。

今回公開したのは、ソフトウェア開発必要不可欠な、「関数の抽象化」、「再帰」、「スコープ」、「制御フロー」、「オブジェクト」、「リスト」を含むコンテンツで、複数のデータの取り扱いや時間計算量、可読性の高いコードについて学習することができます。また、コンテンツのリリースと共にコーディング問題を70問追加しました。これによって、ユーザーは学んだ分野をアウトプットすることによって高い定着率を図ることができます。

特に今回のコンテンツでは、時間計算量(コードがどれほど最適化されているか)という新しいコンセプトを学習し、ソフトウェア開発に欠かせないアルゴリズムについての知見を身につけることができます。アルゴリズムやデータ構造の知識は世界トップ企業で働く際には必ず求められます。

実際、アメリカのGoogleやFacebook、Amazon、Apple等のソフトウェア企業では必ずアルゴリズム、データ構造の知識を使うコーディング面接が課され、それに突破しないとエンジニアとして働くことはできません。この中級コンテンツを学習すれば、これらの企業で課されるコーディング問題の多くに対処することができることができるようになります。
また、Recursionで使用する言語はC++Java、PHP、JavaScriptPythonです。Recursionでは、他のサービスと違って、言語に依存せずにコンテンツを学習することができます。したがって、Pythonを学習した後に、Javaで全く同じコンテンツを学習することができますし、コーディング問題もどの言語でも解くことができるので、高い定着力を図ることができます。これがコンピュータサイエンスの力であり、原理を理解すれば言語に依存することなくプログラムを書くことができます。(今後、Go、Swift、C#、Haskell追加予定)

時間計算量、空間計算量について
時間計算量、空間計算量の限界を理解することは、アルゴリズムの革新につながります。それはこれらを使うことによって、コンピュータ科学者は、一般的な数学用語でアルゴリズムの良し悪しを定量化することができるからです。
開発予算内に収まる効率的な時間と空間のアルゴリズムを目指すことは簡単ではないため、ソフトウェア開発の基準としてよく使われます。例えば、何年も解くのにかかる問題は、同じハードウェアを利用しても、最適化を行うことによって、わずか数分の計算で達成することができることがあります。またそれがたった数秒の短縮であったとしても、数百万人のユーザーがいる場合には、何千時間もの時間を節約するユーザーエクスペリエンス最適化につながります。

さらに重要なことは、時間計算量と空間計算量を理解することで、コンピュータ科学者は従来の常識を破るような思考を手に入れることができるということです。O(N^2)で簡単に解ける問題を、より最適なO(N)で解こうとすると、それは必然的にデータ構造の選択が必要な難しい工学的な問題に変わってしまいます。

今やデータ構造と、正確なアルゴリズムの選定はソフトウェア開発において非常に重要な役割を担っています。全く異なる問題のように感じるケースであったとしても、学習したアルゴリズムを適用できる場面は多く、エンジニアはそのコンセプトを使って個々の問題のソリューションを考えなければいけません。エンジニアは同じパターンを見つけ、それを解決するための最適なプログラムを作成する必要があります。

このように複雑な問題を時間計算量と空間計算量を交えながら解決する練習によって、優秀なエンジニアに一歩近づくことができます。パターンを知っていて、それに対する解決方法を知っていれば、質の高いコードを素早く書くことができることを意味するので、エンジニアとしての市場価値は高まります。

また、このような問題をアルゴリズムとデータ構造の知識を使って解くことができるようになると、独自の関数を作成したり、ライブラリやフレームワークのドキュメンテーションを読んだり、優れたソフトウェアデザインを作成したりするような単純な作業は簡単に行うことができるようになります。加えて、質の高いポートフォリオを作成したり、オープンソースプロジェクトに参加したり、自分で自由自在にソフトウェアを作成することができるようになります。コンピュータ科学者の思考の習得に比例して、ソフトウェア開発の能力が高まるのです。

Recursionについて
Recursionは「世界で通用するエンジニア」を理念とした、コンピュータサイエンスをアウトプットによって学習できるプラットフォームです。米西海岸のソフトエンジニアが、MITやスタンフォード大学などを始めとする米国大学に沿った、オリジナルのカリキュラムを作成しており、ゼロからエンジニアスキルを身につけることができます。Recursionは短期的な教育ではなく、米国大学で学習するような長期的な学習で、開発力の高いソフトウェアエンジニアになるためのノウハウを提供しています。

共同創業者 田島慎也の想い
私は米カリフォルニア州に留学し、米国のソフトウェアの発展の速さをこの目で見てきました。特にここ数年のTesla、Google、Amazon、Apple等のシリコンバレーのソフトウェア企業の技術革新は誰もが驚いているでしょう。これには、世界中から英語が話せる優秀な留学生が渡米しコンピュータサイエンスを学び、有名企業で働いてテクノロジーに貢献しているという背景があります。

一方、日本ではほとんどの大学でコンピュータサイエンスを学習することはできないですし、最新のリソースはほとんどが日本語に翻訳すらされていない状況で、ソフトウェアについて本格的に学習できる環境はほとんどありません。母国語が英語ではない私たちはどうしても不利な状況にあり、それがテクノロジーの発展を大きく阻害しているという現状があります。

世界トップ企業が推す、「コンピュータサイエンス」を日本に広めて、日本のソフトウェア力を底上げしたい。世界でもトップクラスの日本人の数学力を活かして、「世界でも活躍できるようなエンジニア」をたくさん育成していきたいという思いで、米西海岸のエンジニアとRecursionを立ち上げました。

共同創業者 Alvarado Jeffryの想い
私は小さい頃からソフトウェアやテクノロジーに魅了されていました。私はいつも日本から来た技術を尊敬していましたし、東京を未来的な都市として見ていました。

10代の頃からプログラミングを勉強し、日本語を学び、コンピュータサイエンス学部を卒業し、アメリカでプロのソフトウェア開発者として長年働いてきました。日本を世界的なテクノロジー国家にすることが私の目標です。日本でコンピュータサイエンスソフトウェア開発に盛んになり、コンピュータサイエンス分野のあらゆる知識、ツール、そして実用にアクセスできるようにしたいと思っています。日本人の高い論理的スキル、数学的スキルを活かし、より多くの優れたソフトウェアエンジニアを輩出できることを願っています。

Recursion, Inc. 会社概要
代表者  :代表取締役(共同経営) 田島慎也、Jeffry Alvarado
本社所在地:850 W 60th St, Los Angeles, CA90044, United States
サイトURL:https://recursionist.io

配信元企業:Recursion, Inc

企業プレスリリース詳細へ

PR TIMESトップへ