見出し画像

【未経験からのコンピュータサイエンス留学】 南カリフォルニア大学院2年目から卒業まで

Polymathは、ニューヨークを拠点とする理系専門の留学コンサルティングファームです。チームは現役のGAFAMや外資系投資銀行の3名のエンジニアで構成されています。私達は自身の体験や多くの顧客サポートを通じて蓄積された知見をもとに、海外留学から現地就職まで総合的にサポートを提供しています。

こんにちは、Polymathのカイです。東工大院卒・トレーダーとして10年間勤務後に南カリフォルニア大学院(University of Southern California, 以下USC)のComputer Science, Scientists and Engineersに2021年秋に入学し、2023年12月に卒業しました。現在はAmazonに勤務しており、ロサンゼルスからリモートワーク勤務をしながら、Polymathで皆さんの海外挑戦をサポートしています。

記憶が色褪せないうちにUSCでの貴重な体験を残しておこうと思い本記事を書いています。2023年は下記3クラスを受講しました。

1. Operating Systems (CSCI402)
2. Information Retrieval and Web Search Engines (CSCI572)
3. Machine Learning (CSCI567)

1. Operating Systems (CSCI402)
USCの提供する多様なコンピュータサイエンス科目の中でも、異様に難易度が高いクラスです。クラス選びのために多くの在校生や卒業生と話しましたが、皆口を揃えてこのクラスが断トツで難しいと言います。

プログラミングを始めると定番なのがターミナルにHello Worldと出力することでしょう。私も昔PythonでHello Worldと出力したときを覚えています。ただこの授業はHello Worldと出力することが最終目標になります- オペレーティングシステムを自作し、Hello Worldと出力させます。

もしオペレーティングシステムやコンパイラの実装に携わった事がある方であれば、これがどれほどの労力か想像がつくでしょう。

課題においてベースとなるコードは与えられますが、プロセス管理、ファイルシステム、標準入出力等のオペレーティングシステムの中核となるコードは大体実装しないといけないので量が非常に多い上、C言語を扱える必要があるのはもちろんのこと、抽象度が高いことやアセンブリーレベルでのデバックも必要になるため、間違いなく最高レベルのコミットが必要になるクラスと言えます。課題は4人チームで取り掛かれるとはいえ、いつもギリギリの提出になっていましたし、結局課題が期限内に終わらないチームも普通にありました。

ただこの授業は単に難しいだけではありません。むしろ人気のある花形授業で、私自身も楽しみにしていました。ある別のクラスでお世話になったTAがこの授業を乗り越えたとき、単なるコーディングができる人からコンピューターサイエンティストとして自信を持てるようになったというのを聞いていましたが、無事終わった時は彼の言った意味が身に染みてわかりました。

私の所属するコース:Computer Science, Scientists and Engineersでは必須の授業ですが、コンピューターサイエンスに進学したならオペレーティングシステム系の授業は一つは受けた方が良いと個人的には思います。新しい技術に都度キャッチアップしていくのはエンジニアのみならず共通して必要なことですが一度こうしたベースとなるものに触れておくことでそれがとても楽になると思うからです。

なおAmazonの選考において、この授業を通じて学んだカーネルコードをインタビュー中に書いたら面接官が感動して、内定をもらったインド人の友人がいました。

Information Retrieval and Web Search Engines (CSCI572)
この授業は正直なところ取りたくて取ったわけではなく、オペレーティングシステムクラスの負荷や当時リモートでNYのベンチャー企業で働いていたこともあり、とにかく軽めの授業を探した結果落ち着いた授業です笑

検索アルゴリズムや大規模分散システム等について課題を通じて手を動かしながら学べますが、内容が浅いこともあり、もし時間があったら別のクラスをとっていたと思います。

Machine Learning (CSCI567)
最後のセメスターにとったクラスです。通常、留学生ビザ(F-1ビザ)を保持するためにUSCでは2クラスを履修する必要がありますが、最後のセメスターにおいては1クラスでビザ要件を満たせるので、難易度は気にせず本当に取りたいクラスをとりました。

内容はタイトルの通り機械学習ですが、Pytorch等のライブラリを使って何か実装したりを目標にする実践的なクラスではなく、数学満載の理論的なクラスです。特段理論的な分野に集中したかったわけではありませんが、コンピュータサイエンスを学ぶのであれば押さえておきたいと思ったのです。

微分や線形代数を本格的に触ったのは高校三年生や東工大学部生の時以来でしたが、10年以上前に学んだ内容を思い起こしながらなんとかついていきました。

なお教授は東大卒業後にカーネギーメロンに行き博士号を取得した後、Deep Mindで働きつつRekaというマルチモーダルAIサービスを提供するベンチャーを創業し、最近生成AIモデルの開発・研究のために60百万ドルのファンディングもしたようなお方です。

教えてくれる内容は機械学習の教科書にある基礎的な内容ですが、Deep MindやRekaでの実体験も交えながら講義してくれたので、無機質な数式と向き合うときもモチベーションを上げることができました。

トピックはなんでも良いからなにか作って・研究してという課題でのポスター発表

総じて言えば2023年も中身が濃く色々と学べた年でした。専門性を身につけるには相応の労力が必要ですが、大学院では環境としてそれを強制してくれるのが良いですね。また、2023年は大学院 + Polymath  + NYでのフルスタックエンジニアとしての仕事で三足の草鞋を履いている状態でしたが、Polymathを通じて多くのお客さまをサポートし、合格を見届けることができたことは何よりも嬉しく思います。

思えば大学院受験、大学院での効果的な過ごし方、就職活動に至るまで、自身1人ではおそらく何も成し遂げられなかった気がします。そして、そのような境遇の方は意外と多いのかな、と思っています。そのような方に心からPolymathのサービスを受けた良かった、と思ってもらえるサービスを提供できるように心掛けています。30分の無料相談をいつでも受け付けているので、悩まれている方や単に話してみたいなという方までお気軽にご連絡を頂ければと思います。

AI技術を活用した留学サポートツールPolymath AIを開発しました。現在、ベータ版としてリリースしており、クーポンコード「BETA70」を使用すれば、初めの3ヶ月間は70%オフでの利用が可能です。この機会に、Polymath AIを是非お試しください。

この記事が気に入ったらサポートをしてみませんか?