しばらく投稿があいてしまいました。
かなり時間があきましたが、カナダにきて約2年が過ぎようとしています。
学業の方は3学期分を終え、成績優秀者の連絡をいただき、大学から給付型の奨学金をいただけるようになりました。だいたいのクラスでAをなんとか取れていればなんらかの奨学金をいただけることをこの一年で知りました。心理的にだいぶ楽になりました。
そして、転職を目指しているので、カナダでの就業経験ですが、2020年9月からCo-opプログラムというインターン制度を利用して、カナダのTech企業でインターンをさせていただけることになりました。会社は最先端の技術を使う企業で、よく雇ってくれたなと思っています。
具体的な業務内容はNDA(Non-disclosure agreement)で言えませんが、Java, Postgres, test Automation, Jenkins CI/CD Pipeline, Migration automation. docker/docker-composeなど本当にエンジニア一年目として色々な技術を学ばせてもらっています。
27才で理系に入り直し、1年たった28才でようやくエンジニア見習いとして働き始めることができて、色々綱渡りでしたが、とりあえずスタートラインに立てて良かったです。
このブログを書いていて、正直だれの役にも立ってないかもしれませんが、、いつか誰かの為になればいいなと思いとりあえず続けています。
エンジニアリングのCo-op/Internは新卒採用とプロセスはほとんど同じで、Resume Screen -> Phone Interview -> Zoom interviewを1,2回行ってようやくオファーが出ます。Zoom interviewでは、アルゴリズムとデータ構造のプログラム問題が出されて、30分程度の時間で問題を解き、自分のロジックをうまく説明する必要があります。
ここが特に難しく、過去問サイトであるleetcodeをひたすらときました。
2021年現在、解いた問題の数は274問ですが、2020年の面接を受けていた時点では確かEasyレベルを50~60問解いたようなレベルでした。
Co-opプログラム先の企業から内定をいただいたあとも自分のスキルのなさを埋めようと毎日leetcodeをひたすら続けてきました。
自分のこの一年程学んだ知識をYoutubeに毎日投稿しているので、面接準備の際はみていただければ何かの参考になれば幸いです。
https://www.youtube.com/channel/UCpa0EIrdETaR2gunXDEz-7A/featured
チャンネル登録いただけると嬉しいです。
自分も含め、北米のCS学生はどういう面接準備、対策をしているか?
面接で聞かれる内容は、ジュニアのうちはアルゴリズムとデータストラクチャーがメインです。たまにbehavioral questionsというこういう時が起きたらどうしますかという質問がきますが、おそらくメインはやはりアルゴリズムを理解して、コードをかけるかどうかです。やることは主に二つです。
1.みんなのバイブル、Cracking the coding interviewをまず一周読んで、問題のパターンと出題傾向を理解する。この本、実は日本語版がありました。この神本を日本語で学べるのは個人的には助けられました。この本の中で、アルゴリズム以外にも当日の面接がある日の前日の過ごし方や、当日のやることなど細かく書いていて、初めて面接に挑む時は参考にしました。
2.ひたすら過去問をとく。過去問はleetcodeかglassdoorで無料で見つけられるので、ターゲットの会社が決まったらひたすらその会社の過去問を解きまくります。
周りの友人は、200問を解いたあたりからスラスラ解ける様になったと行っていて、自分もだいたい200問あたらいから自信がつく様になりました。
自分はまだまだコーディングインタビューの腕も上げていきたいので、引き続きleetcodeを続けていきたいと思います。