オーストラリア国立大学のCS修士で過ごした1年を振り返る
どうも、オーストラリア国立大学(ANU)に留学中のみしゅめです。
光陰矢の如しどころかタキオンの如しで、Master of Computingの一年目が終わりました。
この記事では、第二セメスターを振り返った後、一年間学んでみた所感を共有します。第一セメスターの振り返りに関しては、下記記事を参照ください。
受講したコース
第二セメスターでは、下記のコースを受講しました。
当初受講しようと息巻いていたOSコースは、担当教授に「Systemsを終わらせから出直してこい」とアドバイスされたので、来年に持ち越しました。ちょっと焦りすぎた。
評判悪い、Professional Practice 2
前セメスターで取った、Professional Practiceの続きで、必修コースです。このコースはWinter Sessionといって、通常のコースの半分くらいの期間で終わります。
Design Thinkingとは何か学び、グループで社会問題を解決するハッカソンに参加しました。
前回と同様に、このコースの評判は悪いです。自分も必修でなければ受講しなかった。周囲の友達から聞く(自分もそう思う)悪い要因は、非CS科目で受講できるコースのスロットが埋まることと、わざわざ大金叩いて学ぶことでもないことって感じです。
最終試験がないことと、早く終わることしか良い噂を聞かないです(かなしい
グループ課題頑張った、Software Construction
前セメスターにとったStructured Programmingの続き的な立ち位置の必修コースです。
一言で言えば、変更に強いソフトウェア作りとCSトピックいろいろ詰め合わせ in Javaです。
主には、デザインパターン、Tokenizer/Parser、Binary Search Treeあたりを学びました。その他には、アジャイル、TDD、知的財産に関して学びました。
主な課題は、グループで検索機能のあるAndroidアプリを作ることでした。自分のグループは、ANUのコースに関して忌憚なきレビューを無名で投稿・検索できるアプリ「Course++」を作りました。結果として、我々はトップの評価をもらえました。嬉しい!!!
一方で、4人グループのリーダーを務めたものの、メンバーをまとめ上げる手腕に課題が山積みだなと思いました。メンバーの遅れを全部自分で肩代わりしてしまったり、自分に自信がない所為か、はっきり方針を決められなかったり。。自信欲しい😇。
最終試験は、完全に過去分より難化していて、冷や汗かきながらなんとか解きました。試験後の会場付近では葬式ムードが漂っており、友達数人と傷を舐め合いながら、ラーメンを啜って帰りました。
(後に、強気な留学生たちの猛抗議で、担当教授は40%から20%に赤点ラインを修正しました。「このコースの所為で俺のアカデミックサクセスに影響が出る」とまで書かれてたんですけど、もう言いがかりでは。。)
セオリーづくし、Relational Database
Relational Databaseの基礎にあるセオリーを中心に扱うコースです。システム面に興味があって取ったので、ミスマッチだと最初は思いましたが、セオリーなしにシステムはない訳なので、受講して良かったです。システム面はこっちで勝手に勉強しやす。
最終試験では、計算過程やらセオリーの説明やら求められる筆記量が多いので、要注意です。自分は時間切れでいくつか解けませんでした。
噂のSystems, Networks and Concurrency
一言でいえば、Computer Systems: Programmer’s Perspectiveと教授の研究分野詰め合わせ in Cです。
担当教授は、前セメスターに受講したComputer Organisationと同じ人で、それはそれは大変厳しいお方です。
第1回目のスライドに彼の厳しさが現れておりますので、ご参照ください。
しかし、コンピュータの仕組みを知りたい自分にとっては、ピッタリのコースなので、今セメスターはこのコースに全力で喰らいつくことに決めました。
最初の課題は、mallocとのgarbage collectorの自作です。課題公開日から全力で取り組んだ結果、最高評価をもらいました!ちなみに、この課題である事件にあったので、別記事で共有します。しかし、生きた心地がしなかったぞっ☆
次の課題では、検索エンジン(e.g. Elasticsearch)のインデックスやら分散ノードやらの仕組みを、簡易的に実装しました。この課題も最高評価をもらえました!
後半は、最終筆記試験の準備に明け暮れました。何度もテキスト・スライドを読み直したり、テキストの練習問題を解きまくったり。ANUで無料で読めたのがComputer Systems: A Programmer's Perspectiveのグローバル版だったんですけど、練習問題の誤植が多すぎました。その所為で確認のためにテキスト読むので、逆に理解が深まったかもしれないです😇。購入を検討されてる方は気をつけてください(北米版は誤植少ないらしいです)。
結果的に、最終筆記試験では、全受講者中最高得点を取れました!嬉しい!
だからか、後日、教授から研究室へ呼び出しをくらいました。震えながら赴いた詳細は、別記事で書こうと思います。
成績発表
そんなこんなな第2セメスターの結果が、以下です。
SystemsでHDとれた事が一番嬉しい!!前セメスターでComputer OrganisationがCRだった分をリベンジできました。頑張って良かった。
ミートアップに参加した
前セメスターの目標に掲げた「大学外のコミュニティに参加する」と「ネットワーキングに挑戦する」を達成するため、いくつかのミートアップに参加してみました。
中でも、Canberra BevOps and BevSecOps という、DevOps関連のミートアップには毎月参加して、大学外の知り合いを増やそうと試みました。このミートアップの趣旨は、下図のように、ソフトウェアエンジニアリングに関する発表を聞くことと、その後の参加者同士の交流です。
何度か参加するうちに、主催や常連の方に顔を覚えていただけて、嬉しいです。彼らとの話で、キャンベラにどういう仕事が多いかとか色々教えてもらえています。大変ありがたい。。
コミュニティに参加するからには、自分からも何か有益な情報を提供してお互いにWin-Winな関係を築きたいので、近いうちに何か自分の取り組むプロジェクト関連で発表しようと画策しています。主催の方からは是非いつでもとお返事いただいたので、あとはやるだけだっ。
学んだこと
ぼくはやればできる子だっ!ということ
Systemsのコースでトップの成績を取れたことで、割と努力すれば自分って目標達成できるんだなと自信が少しつきました。
元来自己評価がとてつもなく低い事が自分の悩みだったので、勉強という些細なことですけど、このような成功体験を積めたのは案外人生の財産になるかもしれないです。
OSは来年や
Systemsのコースをやってみて、自分が焦りすぎてことがよくわかりました。受講を止めてくれたOSコースの教授に感謝です。来年の第2セメスターで頑張ります。
反省点
リーダー力足りねえ
前述した通り、グループを牽引する力が自分になりなあと思いました。自信の部分は引き続き成功体験を何がしか積み上げていくしかないですが、一方でテクニカルなリーダー力もあると思うので、本読むなり他のことでリーダーを買って出るなり、どうにかしたい。
不安なこと
やっぱ、卒業後に仕事なくない?
引き続き前セメスターに感じてた、生成AIの波に対する不安とか焦りは絶賛抱えてます。
加えて、色々なミートアップ参加を通して改めてわかったことは、キャンベラに外国人がつける仕事が少ないということです。役所か役所がクライアントの会社ばかりなので、セキュリティ要件が外国人にはパスできないんです。ほんとつらいのだが?
次セメスターの目標
プレゼンスヲアゲテク
今セメスターでは、ミートアップに参加するだけで終わってしまった感がありました。参加するだけじゃ存在感は出ないんだ。
次セメスターでは、もう一歩踏み込んで、コミュニティ内でのプレゼンスってやつを高めたいと思います。具体的には、前述のミートアップで一度発表したいです。
留学の発信を続ける
引き続き、自分の留学体験を情報として残し、思い出とANUに留学する人の参考になれば良いなと思ってます。
1年学んでみて
社会人になってから大学に入り、主体的に学べている自分に気がつきました。去年エンジニアをやってみて、自分よりよっぽどすごいエンジニアに出会い、趣味をプログラミングとか言ってのける自分が恥ずかしくなったからだと思います。
だからこそ、学士の時とは比べものにならないくらい、今は全力で勉強しています。Vinland Sagaで言えば、「本当のエンジニアになれ!」的な気持ち。
つまり、社会ってものを知ってから、大学入り直すのも悪くないですぜ。
ありがとうございます!
流石に書きすぎた。。もしここまで読んでくださった方がいたとしたならば、、ありがとうございます!!!!!