純ドメ文系中年の海外大学院理転プロジェクト、5年の総括

さて、年末でもあるし、諸々一区切り付いた感もある。今回は題名の通りで、足掛け5年(プログラミング独学開始辺りまで遡ると6−7年)の、純ドメ文系中年による海外コンピュータサイエンス修士の理転プロジェクトについて一旦総括してみる事にしたい。例により8割がた自己満足の総括であるが、海外大学や大学院を検討の方、理転を検討の方、中年の危機の打開策を模索する方等に幾らかの参考になれば幸いである。

○入学前の経緯のまとめ

入学前の経緯については、以下にまとめてある。

2015年の自身がヘッジファンド運用者であった頃からPythonやSQLの勉強を独学で開始、2017−2018年の2回の不合格、2019年からGraduate certificateと言う学位の付与はしない社会人聴講生クラス的な位置付けからのスタートを経て2020年末に漸く3度目の正直で正規の修士課程に合格、2021年の1年間は会社を辞めて育児と修士課程に励む...と言った形で出願時から計算して5年、プログラミング独学開始から数えれば7年間の長丁場となった。

その間バツ付き独身婚活アラ35サングラスポルシェおじさんから、再婚、転職、ベビー氏の誕生による父親化等を経て気付いたら四十路佳境お父さんへと変化していた。そうした中で、所々中断しつつも足掛け7年と言ったプロジェクトであった。なんと言うか、長かったような短かったような気持ちである。この間の自身の活動で、良かった点と反省点は以下だと感じている。

○自身の活動で良かった点

*継続は力。中年は何浪しても良い。

まずはこの点である。若者の1年は貴重である一方、おっさんおばさんは良くも悪くも既にキャリアもある程度先が見えたおっさんおばさんなのであり1年はあっという間に経過する。現役合格する必要がない。38歳で入学しようが41歳で入学しようが基本的には誤差の範囲である。仕事の側もある程度自由や裁量が利くし過去のスキル使い回しでも程々に回せる場合も多いだろう。配偶者子供が初期からいた場合はまた話が変わっただろうが自身の場合はこの理転プロジェクトの終盤、正規の修士課程入りするまで子供はいなかった。その分勉強の時間が確保出来た面がある。この「時間制限がない」「時間を大量投入出来る」と言う点を活用するのが中年の戦い方であり、それを実践出来たのは良かったと感じている。

*手の届く範囲から少しづつ攻める。外堀から少しづつ埋めて行った事

次にこちらである。2回修士に落ちた時点で、いきなり修士を狙うのはやめにして、社会人聴講生的なGraduate CertificateでとにかくNUSの校舎に行く、コンピュータサイエンス学科の授業を受ける、生徒や教授と接点を持つと言う方向に持って行ったのは非常に良かったと感じている。

結果、良い成績を取れた授業の教授に推薦状を書いて頂き、Graduate Certificateで取得した単位を正規の修士課程に振替する形で2020年末に正規の修士課程に振替する事が可能となった。

この手の「外堀から埋めていく」「信長の野望で言えば一色/姉小路/里見でプレイする際の要領で、いきなり一足飛びで毛利/織田/上杉/北条家等強い所を狙いに行こうとせず、まずは隣の手の届く範囲の山名/神保/結城等を攻めに行く」スタイルで行く事で前進出来たように感じている。

学習内容も同様で、最初からレベルの高い内容、背伸びした内容を狙い過ぎず、まずは学部レベルの基本から学び、後半で修士らしい内容を学ぶ、と言ったステップを踏み始めた頃から円滑に理転移行が可能になったように振り返ってみると感じる。

*自分の側で備えておく事で時流を上手く捉えられた。

シンガポールでは、IT人材の育成、ドメイン知識+ITスキルのある人材のニーズが丁度高まっていた所であり、シンガポールのフラッグシップの大学であるNUSがそうした「非コンピュータサイエンスバックグラウンドの人材のCS人材化」のためのGraduate Certificate、後にMaster of Computing (General Track)と言う正規の修士課程を創設し始めた初期のタイミングでその波に乗れたのは幸運であったと思う。

初期の波に乗るにはその前から仕込み、自身の場合はPythonを独学したり修士に出願して落ちる等の前段階があってこその面はあったと感じている。

準備をすれば成功する訳ではないし空振りも多いが、準備をしている所に幸運は訪れると言う面はあったように感じている。

○自身の活動の反省点

*一足飛びを狙いに行き過ぎると一歩も進まないと言う局面も多かった。

今考えると当初の文系状態からイキナリ理系修士転向と言うのはあまりに無理があったように思うし、2回不合格にしてGraduate Certificateからやる事を勧めたアドミッションオフィス側の判断は正しかったように思う。

加えて、Graduate Certificateの初期に機械学習の理論/数学面の講座を受講してFailになったのも手痛い洗礼であった。今思うと、理系の修士で理論的です、数学が重たいですと言う際には本当に理論的で重たいのであり、特に文系では非常に重たいし無理があったと感じている。

この手の一足飛び、ショートカットをしようとすると一歩も進まない事も多いように感じた。出来る所からやって行き、徐々に外堀を埋めるように攻める方が物事進みやすい、中年のキャリア移行は実践し易いように感じた。

*当初から「正規軍」としての教育を受けようとしなかった。

その他、毛色はやや異なるが「オンラインのプログラミングスクールの類で何とかしようとする」類のショートカットを初期に試みたのも今思えば「近道のようで遠回り」であったと感じている。

プログラミングスクールやらオンライン独学の類で修了証を幾ら集めても実際にキャリア/仕事面にインパクトが出る程の変化は起きづらいように感じた(と言うか自身の場合は全く起きなかった)。

また知識やスキル面でも土台、Body of knowledgeと言うべき部分が上記の独学寄せ集めでは中々確立しづらいように思われ、独学では自身の場合はスキル面でも比較的早期に頭打ちした。

独学で天才ハッカーに...等と言うのは天才の話であり、凡人は正規兵としての訓練をきちんとした大学でその分野の専門家から受けた方が遠回りなようで近道だ、と言う事を痛感した。

自身の場合は、上述のGraduate Certificateの社会人講座がNUSで創設されたのが2019年であり自身が第1期生であった。このため上述のスケジュールになったのは仕方ない面もあった。しかしながらこれを読んでいる皆様におかれては、可能な限り最初から正規兵として一定以上のレベルの大学/大学院できちんと学ぶ事を優先した方が、結果として遠回りなようで近道になるのではと個人的に感じている。

○修士課程へのチャレンジで学んだ事

今回の修士理転プロジェクトで学んだ事、得た事については以下の通りである。

*英語力の改善

今までシンガポールに住んでいたと言っても、日株職人、ジャパンデスク職人であり、英語を使う機会は少ない時で仕事の1−2割、多くても3−4割内外がせいぜいであった。

それが日本人ゼロ、全部英語でコンピュータサイエンスの内容を学び、グループワークやプレゼンも全部英語の環境に置く事で、英語力はノンネイティブなりにだいぶ改善した。

当初はプレゼン等はスクリプトを用意する必要があったが、後半に行くにつれスクリプトなし、パワポだけでアドリブでやれるようになった。採用面接等も英語面の事前準備は殆どなしでこなせるようになった。

そうは言っても自身の英語は一生ネイティブにはならないな、Janglishのままだろうとは思うけれども、だいぶ改善したのは確かである。

*大学学部レベルのコンピュータサイエンスの基礎、Body of knowledge

この点については、以下に詳細はまとめてある。

大雑把にまとめれば、プログラミングのきほん、ブール代数やパタヘネ本の内容、アルゴリズムとデータ構造、UMLを中心としたシステム構築のいろは、データアナリティクスの基本から学部後半又は一部修士入口位まで、Javascript/Node.js/React等を用いたウェブアプリ開発基本、位の学部レベルから一部修士入口位までの内容をIT5xxxのEssential moduleにてしっかり身につける事が出来た。これらの土台、基礎をしっかり作る事が出来たのは非常に大きな収穫で、下に述べる修士らしい修士課程の内容を学ぶ際にも重要な基礎となった。

*機械学習周りの内容を中心に、学部後半から修士相応のコンピュータサイエンスの土台

上記の基本を踏まえて、以下の応用とまでは行かないが「学部後半から修士に相応しいコンピュータサイエンスの内容」を身につける事が出来た。

ざっとまとめると、以下のような感じである。

-IS5152でディープラーニング以前の基本的な機械学習を数学的背景、最適化の観点から学習、一部ベイズや不確実性下の意思決定の基礎も習得。

-CS5242でディープラーニングらしい内容(CNN,RNN,GAN,BERT等まで)について理論と実践の中間位のスタイルで学習、講座内Kaggleコンペで上位入賞を狙う等も経験。

-IS5006では金融データに実際に機械学習やらデータ分析やらを適用して自動売買システム(実際は国立大学の授業という制約もあり仮想売買レベルで実弾ではないので自動売買システム「的なもの」)を作成する、PowerBI等を用いたデータビジュアライゼーションやZapier(今はPower Automateで教えているようだし個人的にはZapierよりPower Automateの方が使い勝手が良いように思う)を用いたRPA言うと大袈裟だが会社での実務の自動化の実践をハンズオンで体験。

-CS5340ではベイズやPGMの観点からの機械学習のやや数学重めな内容、参考書で言えばPRML+α的な内容の理論面重視の学習+コード課題による地に足の付いた理解の獲得。

-その他、Capstone ProjectとしてSparkとAmazon AWSを用いた分散コンピューティング、モンテカルロVaRの実装、PySparkを用いた基本的な機械学習の実装等を学んだ上で、4ヶ月のフルタイムインターンシップでIS5006の授業内容の続編的な内容を実装。

...と言った具合である。非CS出自の人が「ドメイン知識のあるコンピュータサイエンス方面の専門家」にシフトすると言った色合いの強いGeneral Trackと言うカリキュラム上、「修士相応の修士」の授業は4講座(CS専業の既存のCS修士は10講座)しか受講できないと言う制約があったので、上記の通りで機械学習とその実装、と言った面にフォーカスした受講の仕方をした。

この辺はもう少し多く受講出来る方が「よりガチな理系」になれたようにも思うが、「後は独学でも自己成長可能な段階」に一気に大学に引き上げて頂いたように感じている。

また、General Trackのみに課されているインターンシップは非常に良い経験となった。四十路でインターンシップ、いきなり高いタイトルでマネジャー的な立場になる前にインターンシップで現場の人として作業する、学んだ事を実際に実装すると言う機会が頂けたのは大変に良い助走、学んだ知識を実地で使えるものにして行くプロセスとして良かったと感じている。給与は会社員時代と比べてしまうとまあなんと言うのだろうか学生のお小遣い程度であったが、金銭面とは別の意味で大変に貴重で贅沢な経験を積ませて頂いたと感じている。

○スキルや知識以外の修士課程で体験した気づきや価値観の変化

*チームで働く事の素晴らしさ、若い人と一緒に仕事する事の楽しさを肌身に感じる

加えて、単に知識やスキルを身に付けましたと言う以上の価値観の変化も体験した。具体的には、チームで働く事の素晴らしさ、若い人と一緒に仕事する事の楽しさを知った面が大きい。

従前の自身は一匹狼、個人商店的な仕事の仕方が多かったし職種的にもそうした仕事を選んで来た面がある。そうしているうちに相場の仕事でも壁にぶつかりコンピュータサイエンスの学習も独学では頭打ちが来てしまったという面がある。それが大学と言うリソースを活用させて頂いた事で文化や価値観の根底から大きく変わる体験をしたように感じている。

困った時や行き詰まった時に大学の先生=専門家に質問すれば行き詰まりを打開出来るようなコメントが頂けた事で自身の成長スピードが大幅に加速された面が大きい。専門家と一緒にやる事の素晴らしさを痛感した。

加えて、社会に出た際にコミュ力、コラボする力が発揮できるようにと言う実践的な方針によるものと思われるが、講座の過半にグループワークのプロジェクトが課されていた。これも非常に良かった。2−5名程度のチームを組んで20代の若い学生達と一緒に作業する訳だが、この過程で学ぶことは非常に多かった。

例えば、昨今の若い人は本当にオンラインでコラボが完結するようになっているのだなと言うことを実感し、この点面白かった。コロナになる以前よりgithubやGoogle Colabでコードを共有し、チャットで議論し、最終レポートはLaTeXでオンライン上でシェアしながら共著するスタイル。コロナ後はこれに加えて対面での定期的なミーティングをzoomでミーティングする事で殆ど完結するスタイルであり、若いエンジニア達は(少なくとも日々の作業においては)コロナの影響は殆どないように見受けられたのも、これがデジタルネイティブの世代なのかと興味深かった。

(注:一方でネットワーキング等についてはやはり対面がないと広がりがないと指摘する声が若者でも多く、自身も確かにそうですわなと感じていた面もありこの点もポストコロナの仕事/コミュニケーションスタイルを示唆する所があり興味深かった。)

加えて、金融業界の文化はどちらかと言うと「どれだけブラックボックス、情報の非対称性を作りぼったく...失礼超過収益を上げるか」と言う文化が強いように平素感じていた一方で、若いエンジニアの文化は「どんどんシェアしてwin-winして行く」スタイルであり、そのギャップ、新文明との遭遇的な面白さもあった。

分からない事をチームメンバーに聞けば分かる人が答えてくれる。プロジェクトの内容や進捗に応じて、フレキシブルにその時その場で一番リーダーシップを取れる人がリーダーシップを取り、状況が変われば作業メンバーの一人として作業に戻ったりする。その時で時間リソースを割ける人が先導的に作業を進め、その人が忙しくなったら別の人がバトンタッチして先導的な役割をする。

学生内には学部からそのまま修士課程に上がる人(そこそこいる)、社会人経験を数年してから修士課程の人(この辺がマス層)、自身のような中年(滅多にいないが)、と言った形でバックグラウンドは様々なのだが、それで上下関係が出来る事はなく、フラットな関係性。

そうしているうちに問題点が解消して行きモノが完成して行く。最後に提出した時には皆でおおおーっやったー!みんなありがとう!と言って解散する。

こう言うのがアジャイルなのだろうが、ピザ1枚をシェア出来る位の人数でグループを組んで何でもシェアしながらフラットな関係性で老若関係なくフレキシブルにプロジェクトを進めて行き、皆で一つの最終成果物が出来て、うわーやった!と言う喜びを共有する仕事スタイルと言うのは自身には非常に新鮮であった。チームでやる事で個人商店でぶつかりがちな行き詰まりを打開でき、何より個人商店にはないやりがいと喜びがあった。

こうした体験で自身の価値観の変容を自覚して行く事になった。修士課程を卒業した後はこう言うチームで仕事する楽しさを体感できる職場が良いなと感じるようになり、進路を決める際等にも応分に影響する事となった。

*自分自身に失望する事もあったが、謙虚な自信がついた面

加えてこちらである。修士課程においては、自身よりも圧倒的に優秀な人、数理的能力やアルゴリズムやコーディングのセンス自体が自分とは比べようもない、先方がUFOに乗ってきた宇宙人、自身が洞窟でウッホッホ言って生活してやっと火を起こせるようになりました位の段階みたいな気分になる事が結構あった。

自分が数日かけて出来なかった事が彼/彼女には2時間位で出来る、そうした事に直面するうちに段々と卑屈になる面は正直あった。スポーツや芸術と同じで、コンピュータサイエンスやエンジニアの世界にも本当に優れている人と言うのはいる。自身は優れている側ではない。そうした事が現実として認識される事になり、これは中々しんどかった。ああ、相場の世界でも自身は突き抜けられなかったし、コンピュータサイエンスの分野でもそうなんだな、自分は平凡の凡人側だ。そうした事を相場でも自覚し、他の分野でも自覚するのはしんどい面もあった。

一方で、自身が持ち味を発揮出来る局面や土俵はどこか、と言う事を客観的に把握出来た面、凡人でも努力でここまでは行けそうだと言うのが見えて来た面もあった。

例えば金融市場系のドメイン知識が必要な局面になれば優秀なエンジニアのグループ内でも自身がリーダーシップを取る事になる面があった。

またデータアナリティクス系の講座は成績が良く、Pythonや機械学習を使っていない時期も長かったにせよやはりアナリストや運用者時代からデータを分析して株を売るか買うかと言うシンプルで収益に直結する判断に結びつけて来た経験はツールが変わっても生きるものなのかも知れないと感じる面もあった。

加えて、自身はそう才能がある部類ではないがプログラミングやテクノロジーとの相性が悪い訳ではなく、修士課程終盤では頑張れば良い成績が出る、進捗遅れ気味のグループプロジェクトで劣勢を巻き返せる等のリーダーシップを取り得る局面も節々である事等も確認できた。

何より四十路のおっさんになっても才気ある中国、インド、ASEAN等を中心としたアジアの若者、欧州等からの留学生とも落ちこぼれずに一緒にやって行ける、何歳でも新しい事は学べると言う事を体感出来た。

結果として、「才能の無さに落ち込む事も応分にあるにせよ、そんなに捨てたものでもない的な謙虚な自信」が得られたように感じている。

○終わりに

他にも細かい事を書けば色々あるが、上記の通りで大変に有意義な経験をしたと感じている。スキル、知識もさることながら、中年になり価値観から変わるような体験が出来ると言うのはそうそうない貴重な体験であったと感じている。

率直に言って全然楽ではない、はっきり言ってしんどい、中年になってからこの手の事をすると復職時のキャリアリスクも小さくないと感じた面もある(注)ので、万人にお勧め出来る事ではない。

(注:この辺りの事情は以下のnoteも参照)


特に日本在住のかたが四十路越えて中年になり仕事を辞めて海外修士の挑戦等するのはリスクも高く、その後の仕事探しで詰む可能性も小さくないようにも感じている。特に短期的な金銭面のリスクリターンだけを考えると必ずしも報われるとも言えないように思う。万人向けではない事は添えておきたい。

しかしながら、年齢的に若い、海外移住も視野に入れている、仕事を続けながらこの手の挑戦をする機会がある、専門分野を増やしたい、その他諸々の状況的に比較的自然にこの手の挑戦をする金銭面、時間面、キャリア形成面での余裕/余白/必要性があると言うかたについては、中年でも不可能ではない、大変に有意義で面白い経験が出来る、と言う事はお伝え出来ると感じている。

また、人生100年時代を考えた時に70−75歳位まで働く事になる可能性も高いと言う状況を加味すれば、10−20年に1回位大学での「自分自身の大規模ソフトウェアアップデート」をして知識、スキル、思考行動様式等を時代に合う形にアップデートしながらキャリア形成をして行く、と言う事が一般的になる「可能性」は感じたように思う(何しろ楽じゃないし万人向けだとは思わないので必ずそうなるとは断言できないものの)。

長くなったが、こんな所だろうか。何かしらのご参考になればこれ幸いであります。

○(ご参考:今回のプロジェクトの戦歴)

*大学のランキング:QS 4位(2021年、Computer Science,Information System分野、MIT, Stanford, CMUの次、これには正直びっくりしたし教官でもびっくりしているかたがいた)、THE 8位(2022年、Computer Science分野、UCBと同順位)。受験開始の2017年時点では10-15位内外と記憶しており、大学の追い風に自身が幸運にも乗れた形。

*TOEFL:96点(足切りラインは90点)、GMAT:650点ぎりぎりでの出願(足切りラインは650点)。MBA等であれば多分有名な大学には全く入れていないと思うが、このスコアでアジアトップ校、グローバルでもコンピュータサイエンスはトップ10以内に入っている大学学科の修士課程に第一期生として入れたのが「カリキュラム創設初期の波に乗れた幸運」であり、今後は難化も予想されるので留意。

*成績の見方:成績は原則として正規分布前提での相対評価、少人数で相対評価しづらい場合等は絶対評価の授業も有。対応する%tileは目安程度である点に留意。A+(上位3%)/A(上位3-10%)=5.0, A-(10-25%)=4.5、B+(25%-40又は45%位)=4.0、B(40又は45%-60%位)=3.5、B-(60-80%tile位)=3.0、C+以下(下位2割のイメージ)=2.5-0。全部A+/AだとCAP(GPAに相当)は5.0、卒業要件はCAP3.0以上でありC+以下は実質として落第点。幾つか有名海外大学の博士課程の募集要項を参照した所足切りはNUS/NTU出身者で4.0以上の所を幾つか発見、自身的には平均B+=4.0以上を目標としていた。

IT5001 (プログラミングのきほん): A-

IT5002(パタヘネ本、MIPSによるアセンブリ言語基本、ブール代数):B+

IT5003(データ構造とアルゴリズム):B-

IT5004(システム開発メソドロジー、UML等):B+

IT5006(データアナリティクス):A+

IT5007(アジャイルウェブアプリ開発):A-

IS5152(ディープラーニング以前の機械学習、最適化、ベイズ基礎):A-

CS5242(ディープラーニング):B+

IS5006(機械学習/システム開発実務編):B+

CS5340(ベイズ機械学習、PGM):A

Capstone Project(SparkとAmazon AWSによる分散コンピューティング、モンテカルロVaRや機械学習実装、4ヶ月インターン):A+

合計CAP:4.42、平均A-弱、上位2割内外と言った所。



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