バンクーバーでジュニアデベロッパーになるために必要なこと

バンクーバーで非英語ネイティブかつ業務経験なしの状況から私立カレッジであるCICCCWeb Development Coursesを利用して現地就職した経験をまとめました。正直なところ非英語ネイティブかつ業務経験なしと言っても個々のスタート時のスキルにバラツキがあり、就職できるかどうかもその時の景気やうまいこと知人に仕事を紹介してもらえるパターンなど運要素が多いのも事実です。そのため(特に私立カレッジ生が)就職できる確率を最大限高くするために目指すべきゴールはどこなのかに着目し、周りの成功した例や自分自身の反省点を踏まえた説明を心がけました。また、私が主にReactを使うWebのフロントエンドデベロッパーなので、基本的には似たようなポジションに特化した説明になっています。渡航直後、何から手をつけて良いか分からない期間が一番不安だったし時間の無駄だと感じたので、同じような状況の方々に届けばいいなと思います。

1. ジュニアデベロッパーとは

一般的に業務経験がない状態で目指すポジションがジュニアデベロッパーです。

1. 求められる能力

ジュニアデベロッパーに求められる能力を一言で表すなら「シニアデベロッパーの力を借りてタスクをやり切ることができる能力」と言えると思います。

つまり、全てを一人でやり切ることは期待されていない代わりに、「どこで詰まっているのか」「何が必要か」「何を試したか」などを的確に発信し必要であれば他のデベロッパーの助けを受け期日までに任されたタスクを完了できる力が求められ(ていると日々感じて)ます。求められているものがコミュニケーション能力とコーディングの総合力というところが鍵です。

ここで、非英語ネイティブ特有の課題として英語でのコミュニケーション能力が挙げられます。「どのくらい英語力が必要か?」「どのくらいコーディング力が必要か?」という疑問が話題になりますが、2つの能力の総合力としてみないと正しい判断ができません。

これは持論ですが、ジュニアデベロッパーになれた人の英語力とコーディング力を個別に比べるとかなりバラツキがあるものの2つの能力をそれぞれ縦の長さと横の長さと捉えた時の面積はある程度一定になるのではないかと思っています。

ジュニアデベロッパーに必要な総合力を4とした場合のタイプ別合格ラインイメージ

英語力もコーディング力も最低ラインはあるもののどっちの能力がより高くなるかはその人の得意不得意に依存するので、自分はどういうタイプなのか、参考にした成功例がどういうパターンなのかを見極めないと、見積もりを誤る危険性があります。例えば、プログラミング特化型を目指すべきなのに英語力特化型の人のプログラミングスキルを参考にした場合、必要な総合力を1と見誤るかもしれないということです。

最低ラインについては諸説ありますが、個人的には英語は面接の質疑応答で聞き返すことがあるものの相手の質問が理解でき、流暢でなくてもいいから自分の考えを相手に伝えられるレベル、コーディングはThe Complete Web Developer in 2023: Zero to Masteryの内容を一通り触った状態なのではないかと思います。

ちなみに私の場合は、コーディング特化型でした。理由はシンプルでコニュニケーション能力を伸ばすよりコーディングのスキルを頑張ってつける方が自分の場合はより早くストレスなく上の図でいう四角の面積を大きくできると思ったからです。

2. ライバルたち

ここで「就活したのちジュニアデベロッパーという肩書きがつけれる人たちはどんな人たちか?」から見る、1年の準備期間で仕事を得ようとしていることの難しさを共有したいと思います。

以下の表はバンクーバー留学センターカレッジ・大学留学というページのデータを拝借、一部抜粋したものです。

一般的に学費も、必要な英語力も、現地就職の可能性も全て大学>公立カレッジ>私立カレッジと考えて差し支えないでしょう。しかも大学生の場合、学生のうちに一定の期間インターンで職業経験を積んだのち、就職というパターンが多いように感じます。北米圏ではこんなミームが生まれるほど、理不尽に職歴を要求される傾向にあることを考えると本格的に就職する前に、就業経験を積めることはとても有利です。

また、大学では私が省かざるを得なかった理論的な内容も勉強できるので、プログラミングに対する理解が深く結果的に大企業への就職や昇進に有利と言われています。

もしお金と英語力に余裕があり、何がなんでも現地就職したいと思っているなら、私立カレッジではなく公立カレッジ、もっと余裕があるなら大学を選ぶべきです。

とは言っても私を含め私立カレッジからうまいこと就職できた人はたくさんいて、そこにたどり着くにはいくつかコツがあると思っているので、この記事で共有したいと思っています。

2. 学習計画

CICCCのWeb Development Coursesを受講した場合の例で説明してきます。

本題に入る前に軽くコースの説明をします。1年目はアカデミックタームと呼ばれ、1日4時間×週5日の講義を受講します。2年目はコープタームと呼ばれ、一定時間以上働くことでDiplomaを取得します。

つまり、就職するための準備期間はおよそ1年ということです。さらに、仮にアカデミックターム終了直後から仕事を始めたい場合、就活期間を1年の中に入れなければいけないので、1年まるまる勉強に充てられるわけではありません。

さらに先ほど説明した通り1年という準備期間は他のライバルに比べてとても短いので、同じ成果を出すならより短い期間で、同じ期間をかけるならならより良い成果を出せるように工夫する必要があると思います。また、なるべく不必要な勉強に時間をかけないようにうまく取捨選択する必要があります。

以上の2点を深掘りしていきます。

1. 就活に要する期間と準備すべきもの

期間
就活の時期は早ければ早い方が有利ですが、必要なものも多いので、未経験者であれば4ヶ月を目安にするとちょうど良いと思います。私の場合も大体4ヶ月くらいかかりました。

準備すべきもの
以下の表がカテゴリー別私が感じた就活に必要なものです。

直前に準備できるものは1−2週間あれば揃えられると思います(GitHubのプロフィールとはについてはこちら)。

ポートフォリオに載せるプロジェクト、GitHubのREADME、技術的な記事等はセットとして考えて、プロジェクトをやった時に、プロジェクトの概要をREADMEに、特に苦労した点や新しく学んだスキルなどを記事などにまとめておくとあとで楽だと思います。(参考になるREADMEテンプレートはこちら

職歴は有給インターン>ボランティア>個人依頼の順に有効と言われています。職歴を作る努力は最大限するべきですが、できなくても諦めるのは早いです。企業が職歴を重視するのが主に以下2つの能力が保証されるためだと考えています。

  1. チームで働く能力

  2. 履歴書やポートフォリオで記載されているスキルの信憑性

裏を返せばこの2つを証明できれば職歴がないというディスアドバンテージをかなり小さくできるということです。具体的には、チームで働く能力の証明方法は

  • オープンソースプロジェクトの参加

  • チームプロジェクト

の2つが挙げられます。詳しくは「参考にした教材」の中で説明しますが、自分の場合はThe Complete Web Developer in 2023: Zero to Masteryの2022年バージョンの中で紹介されていたオープンソースプロジェクトに参加しました。

また、自分の場合はインターンも日本でのバイトも全滅に終わったので、クラスメイトに協力してもらってチームプロジェクトをしました(その時のプロジェクト)。これが履歴書的な意味でどのくらい意味があったかは正直わかりませんが、会社で働くためのスキルとしてチームでレポジトリを管理するのために必要なGit操作の理解は必須だと思うのでどこかのタイミングで練習することをおすすめします。また、地味にこの時のエピソードは面接でうけたので、チームプロジェクトは時間がかかりますがやる価値があると思います。ただし今振り返ると、もっと余裕があるうちに何かしらのCRUD appをチームで作れたらもっとよかったかなと思っています。それが無理なら何かしらAPI fetchが必要なサイトでもよかったと思います。何が言いたいかというと、これを読んでまだチャンスがある人はもっといいものを作ってくださいということです。

スキルの証明に有効な方法としては

  • ブログ執筆(もしくは動画投稿)

が挙げられます。内容は自分が身につけたスキルの説明や、躓いた点の解決方法などで十分です。仮に「CSSのボタンをどうやって真ん中に配置するか?」という内容でも書けばあなたがCSSのいくつかのプロパティの性質を理解している証明になるので書く価値があります。参考までに私のmediumのリンクを載せておきます(https://medium.com/@lada496)。2022年5月末までに書かれたものまでが就職前に書いたものです。
※今からアカウントを作る方はmediumではなくdev.toをおすすめします。

2. トレンドの把握

ここまできてようやく、具体的に何をどのタイミングで勉強すべきか?という話に入ります。前置きが長くてすみません。前述の通り、1年後に就職しようとすると、勉強に費やせる期間は長くても8ヶ月、本就職の前にインターンやバイトをしようなどと考えると半年くらいになってしまいます。

2年あればもっと楽だったという感想を抱く人が一定数いる理由はここだと思います。技術の習得は日本にいてもできますが、現地でのインターンは現地でしかできないので、日本にいる間にある程度技術を身につけ、現地に来てからは履歴書を充実させることと、現地人とのコネクションに重点を置くという作戦はかなり有効でしょう。

今回はそういうことはなかったという体で説明していきます。また、好きな技術や、やりたいことがはっきりしてる場合は読み飛ばしてもください。今回はなるべく就活を成功させる確率を上げるならどうすべきか?に焦点を合わせているので以下身も蓋もない話が続きます。

就活はある意味マッチングみたいなものなので、企業と相性が良ければ受かるし悪ければ落ちます。相性には、持ってるスキルや性格などが含まれます。その時のチームメイトと性格が合う合わないなどはぼほ運だと思いますが、スキルはある程度対策できます。感覚的に考えて、100社に1社マッチするスキルを持っている人と、10社に1社マッチするスキルを持ってる人だったら後者の方が早く決まりそうですよね?つまり求人が多いスキルを優先的に勉強すれば、企業とマッチしやすくなるという考えです。自分が主に参考にしたのは

の2つです。自分の場合は最初はhttps://roadmap.sh/frontendを参考にし、途中からReactポジション以外のにつきたくないと思ったので、https://roadmap.sh/reactに載ってる技術と、実際の求人でよく見かけるものを照らし合わせてUdemyのコースを選んだり、ポートフォリオに載せるプロジェクトのテックスタックを決めてました。ちなみにここは、1年でも違いが出てくるところなので、先輩などの例を参考にするのではなく現在のデータをもとに判断することをおすすめします。

これをもとにうまいこと6- 8ヶ月以内に必要な知識を詰め込みます。PMがひっくりかえるであろうデッドラインから決める学習計画を立てます。

例えば受ける必要のあるレクチャーの合計が180hだとしたら、1ヶ月を30日として6ヶ月で終わらせたかったら大体1日1時間分のレクチャーはこなさないといけないな、みたいは目安をたてます。実際には自分でプロジェクトをやったりする時間も考えるのでもう少し複雑になります。たいていの場合エラーで訳わからないくらい時間が溶けるのでゆとりを持って計画を立てることをお勧めします。

こうなりたくなかったらもっと早くから準備してください。

3.その他Tips

1. 活用した教材

特におすすめなものを所感とともに列挙していきます。

Udemy編

基本的には1万人以上レビュアーがいて星が4.5以上であれば、ある一定以上のクオリティは保証されていると思います。

  1. The Complete Web Developer in 2022: Zero to Mastery(現在は2023verに更新されています):特にこだわりがなければこれから、スタートすればいいのではないかと思います。ウェブの仕組みから始まり、よくあるHTML/CSS/JavaScript/React以外にもGitHubの使い方や.envファイルの使い方、npmとは?、就活でのTipsまでウェブデベロッパーになるために必要な要素が網羅されています。ただし基礎的な内容が多い分、内容のアップデートが甘いのが欠点です。未だにReduxの章でconnectの説明が入ってます(そもそもこのコースにおいてReduxがオプショナル扱いなので仕方ないかもしれませんが)。

  2. React - The Complete Guide (incl Hooks, React Router, Redux):上だけでは足りないReactの知識をカバーできます。(もっと気合が入っているなら、内容的にはおそらくジュニアの域を超えていますがComplete React Developer in 2023 (w/ Redux, Hooks, GraphQL)もおすすめです。ちなみに私は就職してからこのコースを完了しました。)

  3. The Complete JavaScript Course 2022: From Zero to Expert! (現在は2023verに更新されています):もし、他のジュニアデベロッパーと差をつけたいと思うならおすすめです。ただし時間は取られます。そして、このコースの内容全てを理解するまでReactをやってはいけないなどと思わないでください。少し古い記事ですがおおよそJavaScript to Know for Reactに上げられてる項目を理解していれば、Reactの勉強に移っていいと思います。

記事・ブログ・動画編

おもに就活の情報です。

  1. Frontend Interview Questions:簡単にまとまってて参考になりました。もっと勉強したい方は10 Useful GitHub Repositories to Prepare for JavaScript Interviewsに載ってるサイトを参考にするといいと思います。

  2. How to Create a Portfolio Website – A Beginner Developer's Guide:ポートフォリオの作り方のイロハが載っています。

  3. Traversy Media:crush courseシリーズが便利でした。

  4. How to Contribute to an Open Source Project on GitHub

英語編

  1. Ohanashi Kagawa:無料で参加できるオンライン言語交換イベントです。会話の練習をしていました。今はインパーソンのイベントもたくさんあるのでこれじゃなきゃだめとかでは全くないです。

  2. Udemyでの勉強中に重要だと思うところをディクテーションしてメモに残してました。等倍だとリアリティのあるスピードにならないので1.5倍にするといいと思います。リスニング力強化と技術的な表現の勉強が同時にできます。

2. 私が思う学校の有効的な活用方法

前提として未経験かつ事前準備がない状態で1日4時間×週5日の学習時間は不十分なので、授業以外でも勉強していました。学校側もオリエンテーションの時点で未経験なら授業以外で1日4時間は勉強するべきと言っていたので妥当だと思います。その上でどう活用していたかを説明します。

  1. 復習:授業内容自体はジュニアデベロッパーとして十分な知識を与えられていたと思います。しかし、カリキュラム上自分が就活を始めたいタイミングでまだ授業をやってたので、自分はマイペースに学習を進めて授業は復習に使っていました。

  2. チームプロジェクト:学校に行くメリットの1つだと思っていたので、なるべくクラスメートとペアワークやチームのプロジェクトをするようにしていました。

  3. 就活のサポート:特に履歴書とカバーレターの添削で献身的にサポートしてもらいました。担当の事前の就活準備のレクチャーでの発言内容を覚えてくれていて、この人はサポートする価値があると思ってもらえたのも良かったと思います。学校側も実績を作りたいので、この人優秀かもしれないという印象を与えると手厚いサポートが得られると思います。なので積極的に発言しましょう。

3. コネの重要性について

referalという言葉があるのですが、北米では内部のデベロッパーが新しいデベロッパーを推薦できる仕組みがあまりに不平等なのではというほど主な就職手段になっています。

実際企業に履歴書を送るより、デベロッパーにポートフォリオなどをみてもらって、HRに話をつないでもらったり、CTOに募集しているポジションに興味があることDMしたりなどというやり方のほうが就職できる確率は高いと言われています(詳しい内容はThe Complete Web Developer in 2023: Zero to Mastery内のコラムに載っています)。今はインパーソンのイベントも増えたので積極的に参加してコネクションを作れるといいと思います。私はそこをめんどくさがったのでとても不利な戦いになってしまいました。

4. おわりに

今回は「1年で未経験の状態からジュニアデベロッパーになる確率を高めるにはどうしたらいいか?」というテーマにしたので、割と無機質でテクニカルな話が多くなってしまいましたが、個人的には何年かかってもやりたいと思ったことが実現出来れば素晴らしいことだと思うし、そもそもスタートダッシュの速さなどその人のキャリアを語る上でそこまで重要ではなく、キャリアの最後にどこまで辿り着けたかの方がよっぽど大事だと思うので、これをみて自分は遠回りしたなどとは思わないでほしいです。

また、テーマ的にどちらかというと十分条件よりの話なので、成功例にはここで説明するよりも苦労しなかったという例もたくさんあると思います。

これから新しくデベロッパーを目指そうと思っている方々にとってこの記事が少しでも具体的な課題を見つける手助けになれば幸いです。

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