セビチェロブログ/ プログラミング/ 文系でニートだったぼくがWeb系エンジニアとしてカナダで海外就職するまでの全記録

文系でニートだったぼくがWeb系エンジニアとしてカナダで海外就職するまでの全記録


カナダのバンクーバーでフロントエンドエンジニアとして働いて約1年が過ぎたので、そろそろこんな感じの記事を書いても良いかなと思い今までの軌跡を書いていこうと思う。

海外でエンジニアをしているというと、コンピューターサイエンスを大学で学んで日本で数年エンジニアとして働いて、まさにバリバリの理系で賢いタイプの人間を思い浮かべる人がいるかもしれないが、僕は全くそのタイプに当てはまらないというところが今回の記事のポイントになるだろう。

もともとエリートエンジニアだった人が海外でエンジニアとして就職する話なんて大多数の人にとっては関係のない話になるわけだが、僕のように27歳になるまでプログラミングに一切触れたことがなくて、しかもニート旅人生活を1年ほどしていた僕がプログラミングを学び始めて約4年で海外で日本人が一人もいない企業にエンジニアとして就職するまでのサクセスストーリーは結構みんなが興味のある内容になるはずである。

今すでにエンジニアとして経験を積んでいて海外で働いてみたいと考えている人は、「こいつが海外で働けるなら俺でも絶対働けるやん」と思ってもらえるだろうし、プログラミングを今から始めて後々は海外でコードを書いて暮らしたいという人にもまあまあ夢を与えられる記事にはなるはず。。。たぶん。

で、あなたは何してるの?

過去の僕の歴史をさかのぼる前に、とりあえずは簡単に自己紹介をしておこう。

現在はLogitechの社員である。Logitechというと日本人には馴染みがないかもしれないが、日本法人の名前はLogicool(ロジクール)である。パソコンのマウスやヘッドホンなどはまあまあ有名なはず。

日本に既にロジテックという企業が存在していたというわけで日本法人だけLogicoolという名称になったらしい。

LogitechのCEOは、僕が日本人だと気づくと「おー、ロジクールの国から来たんだな!笑」みたいな感じだったので、Logitechの社員からすると結構面白いあるあるネタなのかもしれない。

ちなみに僕はもともとStreamlabsというアメリカのサンフランシスコに本社を置くスタートアップ企業に就職したが、その後StreamlabsがLogitechに買収されたというわけで僕はいつの間にかLogitechの社員になったという次第だ。

サンフランシスコの企業に採用されるとは思わなかったし、そもそもその企業が世界的に有名なLogitechに買収されるとも全く思わなかった。

というか、自分がプログラミングを仕事にするなんてキューバやメキシコを放浪していた27歳の時は全く思いもしなかった。人生は何が起こるか分からない。だからこそ人生は楽しいのだろうと身をもっていつも感じている。

というわけで前置きはこの辺にして僕がいかにしてプログラミングの世界に身を投じるようになったのかについて時系列で書き記していくことにする。

大学ではなぜか法律を学んだ

時はさかのぼること、僕の大学時代のことを少しだけ。

今になってもなぜなのか全く思い出せないが、大学では法学部で法律を学んだ。まさにこの4年間は大卒という称号を得るためだけの全く無駄だった期間であった。

取り調べの可視化が未だに義務付けられていない日本の法曹システムはやばいとか、死刑制度はこのまま続けるべきなのか、とか確かにそういうことを考えるのは知的好奇心をくすぐるのでありかなしかで言えばありだけど、人生の大半をその時間に費やしたいかというと僕は全力でノーと答える。

ちなみにこの頃パソコンでコードを書くなんてことは全くなかったし、何ならパソコン自体大して触っていなかった。そういうのに詳しいのは全員理系の人なんだと勝手に決めつけていた。

というわけで、これ以上大学時代の話を掘り下げるのは時間の無駄なので、大学の5年間(1年間休学してカナダに語学留学していたことを今思い出した、なので4年+1年休学で計5年大学に在籍した)は今の僕につながる出来事は何も起こらなかったということだけ伝わればと思う。

新卒で入った会社がつまらなすぎて2年で辞めた

その後、自動車関連の企業に就職してそこで約2年ほど働いた。まさにこの期間は大学時代の数倍もぼくの中の暗黒時代であったと言える。

そもそも仕事内容がつまらなすぎたし、社員の人も年配の人は高圧的で横柄な人が多かった。まさに昔ながらの日本の悪い慣習そのままの企業だった。

当時ぼくには何もやりたいことがなくて、将来自分がどんな仕事をしていくのかなんて全く想像もできなかった。こういう社会人1、2年目の人はたくさんいると思う。

やりたいことが見つからない場合は、やりたいことを見つけようと頑張るのではなくとりあえずやりたくないことをやめるのが一番、というのがぼくの哲学なので、2年ほどで辞めた。

なぜか中南米を放浪する、くっそ楽しかった

なぜ2年もつまらない会社で働いていたのかというと、その時はとにかくキューバをはじめとしてラテンアメリカの国々へ行ってみたくて、その際の滞在費を貯めるためだけに働いていた。

旅を終えた後のことなど全く考えていなかったわけで、当時の自分はまさに最強に能天気だったんだなと思う。ただ、過去に戻ってもまた同じことをするはずなので全くもって後悔はしていない。

この時の放浪ニートの旅は今までの人生でも一番人生観が変わったし、全く異なる文化に触れあう楽しさを知った。

ちなみにキューバについての記事はいくつかあるので過去の記事を読んでもらえればと思う。

ぼくの自信作を2記事貼っておく。

プログラミングを始めたきっかけ

約1年半の放浪ニート旅を終えて満を持して日本へ帰国。ニートなので特にやることのない日常に戻った。といっても、旅してた時もマジで何もしていなかったので暮らす国が変わったくらいのことだ。

帰国して割とすぐにプログラミングを学ぶことを決めた。旅をしている時にブログをWordPressで書いていて多少HTML、CSSをいじっていたこともあり、プログラミングが出来ればもっとお洒落なデザインのページが作れるはずだという理由でプログラミングを学び始めた。

この時はプログラミング楽しそうというよりも、旅を1年してもなおやりたいことなんて全く見つからなかったので消去法でとりあえず挑戦してみようという軽いノリだった。

やりたいことについて言えることはたったひとつ、旅しても考えてもやりたいことが突然頭に降ってくることは200%ないので行動あるのみである。これは本当に心から思う。

デジタルハリウッドでWebデザインを学ぶ

いざプログラミングを学ぼうと思っても何から始めればいいのかが分からなかったので、Webページが一番オシャレだったデジタルハリウッドにて4カ月ほどほぼ毎日のように通ってHTML、CSSの基礎的なことを習得した。

HTML、CSSなんてスクールに通うまでもなくYouTubeのチュートリアルを見て手を動かすだけで大体分かるわけだが、当時のぼくはフロントエンドとバックエンドの違いすら大して理解していなかったのでしょうがない。

プログラミングスクールには通うべきか?について

現在は以前よりも多くのプログラミングスクールが乱立しているが、実際に未経験からスクールに通った経験から言えることは、まずは強制的に毎日手を動かすのが大事なので、プログラミングが全く分からない人はお金を払ってでも通う価値はある。

なぜなら、人間の意志というのは全くもって信用できないから。

自分一人でプログラミングという訳の分からない領域に踏み込んでキャリアを構築していくのは相当な努力が必要。

おそらくメンターみたいな人がいない状態で未経験からプログラマーとして仕事に就くことができる人は相当に運が良いか相当にセンスのある人以外にはいないだろう。

また、エラーをググって解決するということがほぼ不可能な人にとっては、エラー地獄から抜け出す術は経験者に聞く以外にはないということ。

プログラミングを仕事にしている人にとっては、エラーなんて毎日見るものだしビビることもほぼ皆無なんだが、プログラミングを始めたばかりの人はエラーが出ただけで憂鬱になって、一つのエラーにハマって数時間も無駄にするということが往々にしてある。ぼくもあった。

正直エラーでハマってる時間はかなり無駄なので、経験者に原因と解決策を教えてもらってそれを自分の知識にするほうが断然良いし成長スピードも間違いなく早い。ただただハマってる時間はマジで時間の無駄でしかない。

というわけで、天才的なプログラミングの才能があると自負する人以外は、まずはプラグラミングを経験者に教えてもらうのが業界に入るためには圧倒的に効率が良いし可能性も高いと考えている。 

デザイン系の制作会社で1年半働く

デジタルハリウッドのWebデザインコースを終えた僕は、その後いくつかの企業に応募してみた。GreenFind Job!という求人サイトで応募していたのを覚えている。

今ではもっとたくさん求人サイトはあるのかもしれないが、日本の企業に応募したのはこれが最後なので現在のことはよく分からない。

当時の僕は年齢27歳。それでいて文系。しかもHTMLとCSSが多少分かるだけで実務経験ゼロ。自分が経営者でもまずこんな人は採用しないだろうというくらいに何の魅力もない存在だった。

しかしながら、いくつかの企業は面接に呼んでくれたり技術テストをしてくれたりした。そんな中、デザイン系の会社に運よく採用してもらえることができた。

いつも思うが、日本の企業は未経験の人にかなり優しい。これはカナダで就職活動をして一番に思ったことだ。

当時の僕のレベルのカナダ人がカナダで就職活動をした場合おそらくどこの企業にも採用されないはずだ。それくらいこちらではもともとのポテンシャルありきでの採用なので、育てるという概念は全くない。

採用してくれたデザイン系の制作会社での僕の業務は多くの場合はHTML、CSSを使ったマークアップだった。いわゆるマークアップエンジニアの業務だ。

世界的に超有名な企業のWebサイトを更新したり、政府関係の仕事にも携わることができてやりがいは結構あった。

JavaScriptすら書けなかった

ちなみにJavaScriptすら大して理解していなかった当時のぼくは、JavaScriptが書ける人はものすごく賢い人だと思い込んでいたくらいには、全くもってプログラマーと呼べるものではなかった。

当時のぼくはただのマークアップエンジニアであってプログラミングを論理立てて書くという仕事をしていなかった。というか、そこらへんの違いすら曖昧で理解していなかったので、いかに自分がエンジニアの端くれにすらなれていなかったのがよく分かる。

こんな僕でもその4年後にはアメリカの企業でフロントエンドエンジニアとして働くことができているので、自分はダメダメだと考えている人はもしJavaScirptが書けるならば当時のぼくよりは上なのでそのままコードを書き続ければ世界中どこでも働ける可能性はいくらでもある。

カナダでエンジニアをすることを考える

デザイン系の会社で働いている間も、もともと海外で働くというのが昔からの目標だったので、その可能性をインターネットでひたすら調べて模索していた。調べれば調べるほど世界は遠いと感じたし、僕なんかでは不可能なのではと、ほぼ諦めていた。

そんな時にひょんなことからカナダでエンジニアとして働いている日本人のブログを見つけて読んでいくと、僕でも不可能ではないのではと思わせてくれる内容が書いてあった。

カナダといえば大学生の時に6か月間語学留学をしていたこともあり、多民族国家で移民にめちゃくちゃ寛容という印象だった。

それからカナダでエンジニアとして働くための作戦を考えていくことになる。

留学エージェントFrog

その後、いろいろな人のブログやインターネットの情報を調べたところ、Frogという留学エージェントがカナダでのエンジニア就職に詳しいということが分かった。

すぐさま連絡を取って相談をしてみたところ、いい感じのプランを提示してくれた。

多くの日本人がカナダで働き始める場合、30歳以下の人ならばワーキングホリデービザを利用することが多いが、ぼくの場合はすでに30歳ギリギリだったのでリスクが高いというわけで、1年学校で学んだ後で1年Coopビザを取得して働くという作戦を取ることに決めた。

この方法はこちらでエンジニアを目指す人からすればもはや当たり前の方法なので何ら真新しいものではないが、日本でエンジニアをしている人からすれば思いつかない人も多いと思うので、いずれカナダで働きたいという人はそういう作戦もあるということは知っておいて損はないはずだ。

バンクーバーで専門学校に通う

29歳の時にカナダのバンクーバーに降り立つ。

カナダの専門学校というとカナダ人と一緒に勉強すると考えるかもしれないが、ぼくが通った学校は日本人を含む外国人しかいないような学校だった。

学校そのものの魅力というよりは1年後にビザを取得してカナダで働くということを目的に通っている人がほとんどだったはずだ。

中にはエンジニアの経験年数が5年以上という人もいたが、そういう人でも就労ビザがなければそもそも海外では働けないという当たり前を知ると、いかにビザを取得するかが何よりも大切なんだなと改めて思った。

どんな勉強をしたか?

Java、Swift、JavaScriptなどを学んだ。もともとプログラミングの基礎が全く抜け落ちていたぼくにとっては基礎的なことを反復的に学べたのでこの専門学校での1年間は良かった。

特にJavaについて学べたことはプログラミングの当たり前を理解する上ではかなり為になった。プログラミングは確かにどの言語から入っても別に大差はないわけではあるけど、JavaScriptだけ書ける人とJavaも書ける人だったら後者のほうがやはり基礎的な考え方が優れている人が多いのではと感じる。

学校の授業とは別に毎日のように図書館でコードを書いたり、プログラミングの動画を見たり、スキルを徐々に伸ばしていったのがつい昨日のようである。

1年間ひたすらプログラミングと向き合ったことで、プログラミングは毎日のように向き合っても全く苦ではないものだと自分の中で確信することができたこともこの1年間の無職期間がもたらしてくれた良い点ではないだろうか。

それにしても記事を書いていて思ったが、ぼくは大学を卒業してから計3年くらい無職をしていたようだ。まさに無職への違和感がこの頃は全くなくなっていた。

バンクーバーでの就職活動はどんな感じだった?

1年間専門学校生活を終えてようやくCoopビザを手に入れることが出来たので、ひたすらに求人に応募し始めた。

行きたい企業とか企業分析などは英語圏でエンジニアとして働いたことがない人にとってはほぼ無意味。

とにかく数打てば当たるという教えを信じてFrontend Developer職種の求人は全て応募した。利用した求人サイトは主にIndeedAngelList。他に求人サイトではないがLinkedInでも応募した。

ちなみにLinkedInではリクルーターと呼ばれる人たちが「こんな仕事あるけど受けてみないか?」とメッセージを送ってくることがよくあるが、基本的には頼りにしないほうが良い。

リクルーターは紹介した人が無事に就職した場合にインセンティブとして給料の何パーセントかをゲットできるということで、ほぼ無作為にメールを送りまくっているし突然連絡がなくなることも多々ある。

60社に応募して1社だけ受かった

実際に応募した数は60社くらい。そのうちたしか10社くらいは電話面接まで進み、2社だけコーディング面接まで進み、1社にかろうじて合格した。それが今働いているStreamlabsである。

周りを見ていると何だかんだで日本で少しでもエンジニアとしての職歴がある人はほぼ就職先が決まっている一方、当たり前のことだが未経験から専門学校でのみプログラミングを学んだ人は就職先が決まらずに日本に戻ることが多い印象だ。

ただエンジニアとしての経験が僕よりもずっと長い人も苦戦している一方で、未経験の人がすんなりと就職先が決まることもあるので、正直なところ最終的に職にありつけるかは運の部分がかなり大きいのではと思う。

しかしながら、日本にいるうちに経験を積んだエンジニアであれば就職できる可能性はかなり高いことは確かなので、やはり職歴というのはビザステータスの次に大事になると個人的には考えている。

採用の流れはどんな感じ?

北米のエンジニアの採用パターンとしては、

  1. レジュメの審査
  2. 電話面接
  3. コーディングテスト
  4. 最終面接

会社によっては3と4の間に何度か面接があるかもしれないが、基本的には上記が一般的なのではと思う。電話面接を除けば日本とそこまで変わらないはずだ。

日本人にとっては電話面接がかなり壁になってくるように思う。特に英語に自信がない人からすれば英語でうまく自分をアピールすることができないと、もしプログラミング能力が優れていてもそれを見せる前にジ・エンドである。

電話面接で英語力はどれくらい必要か?

「TOEICで何点以上あれば大丈夫」みたいな軽々しいことは言えないというのが実際のところ。ちなみにぼくのTOEICの最高点は900点くらい。5年前くらいに受けた気がする。

当たり前のことだがほとんどの場合カナダ人もしくは英語ネイティブとの会話になるので、まずは普通の日常会話をネイティブの人とできるくらいの英語力があれば一応は何とかなるはずだ。

体感としてはTOEIC900点あったとしても英語ネイティブとの会話というのはまず慣れが大切だ。耳が慣れていないと理解できないこともあるし、そもそも自分をアピールするスピーキング力というのは一夜漬けで何とかなるものではなかったりする。

ただ忘れてはいけないのが、ぼくたちはエンジニアとして採用されるかどうかのテストを受けているのであって、英語テストを受けているのではないということ。

発音うんぬん、文法うんぬん、アクセントうんぬんなど英語というのは完璧を目指したらキリがない。というか20歳を過ぎてから英語と親しみだしたぼくのような人間は一生かかっても無理だろう。

面接官はそんなことを見ているのではなくて、その人がどんな人か、チームに溶け込めるか、エンジニアとして能力があるか、それらを見ているのだ。

だからいい感じの性格でプログラミング能力も十分にあるということを自信たっぷりに見せつけてあげるというのがぼくたちがやるべきことである。

あと、プログラミングの技術的な話をしている際は、固有名詞がよく出てくるのでもし完璧に質問内容が分からない場合も推測できることが多いと感じる。分からなければ聞き返せば問題ない。

コーディングテストはどんな感じ?

これに関しては職種ごと会社ごとにそもそも全然違うと思うので一概には言えないが、フロントエンドエンジニア職を受けたぼくがやった対策としては下記のようなことをした。

  • HackarRankLeetCodeなどでコーディングの問題を解きまくる
  • 「Frontend Interview Question」とググってひたすら問題を解きまくる
  • You Don’t Know JSを読む
  • JavaScriptのコアの部分を理解する(Scope、Closure、Prototype、Promise、DOM etc)
  • CSSのコアの部分を理解する

かなり長いが、You Don’t Know JSを全て理解出来ればJavaScriptという言語をマスターしたも同然なのでぜひフロントエンドエンジニアの人は一読することをおすすめする。

また、僕はプログラミングの動画を見るのが趣味なので、下記のチャンネルはほとんど見尽くした。説明がかなり上手いのでJavaScriptについての知識を深めるのにかなり助かった。

バンクーバーのエンジニアの給料は?

給料については誰もが一番興味のあることだと思うのでここで一応書いておくことにする。と言っても、これもググれば分かることなので「frontend developer salary」「backend developer salary」などとググれば平均給与を調べることができる。

大体65Kから70Kが平均と出てくるがたしかにそのくらいが妥当な数字だろう。カナダドルは弱すぎるので日本円にすると600万くらいになる。アメリカのシリコンバレーで働くエンジニアと比べると同じ北米でも夢がなかったりするが、同じ能力の場合は日本よりも稼げるのではといった感じだ。

経験年数がかなり長い人を除けば、大抵の人はこちらで働くことで給料は上がることが多くなるとは思う。

プログラミングを愛するすべての人へ、プログラミングを愛するであろうすべての人へ

ここまで長ったらしくぼくの個人的すぎる経験について書いてきた。正直なところこの記事を通して何が言いたいのかは自分でもよく分かっていない。

ぼくはプログラミングに出会うまで仕事は退屈なことだと本気で思っていた。ずっと遊んで暮らせれば最高なのになあ、と日々空想するくらいには仕事をしたくない人間だった。

ただ、実際に仕事をしないで遊んで過ごす日々を1年続けてみたら、何も目標のない人生がいかに空虚なものであるのかが分かったし、「自分の仕事はこれだ」と胸を張って言える自分の核となるものを渇望するようになった。

そんな時にふとしたことでプログラミングを始めた。初めは全く理解不能だったし、何が面白いのかが全く掴めなかった。

ただ、今までやってきた仕事と比べて全く違ったのが、自分ができるようになったことが明確に分かることだった。

努力に比例してレベルを上げていくことができるのがプログラミングの魅力の一部だし、レベルが上がっていくにつれてできることも増えていくから仕事自体が楽しくなるという風に循環していく。

それに加えて、論理的な課題を解決できた時の爽快感はプログラミングをやっている人にしかわからない気持ち良いものだ。

プログラミングは仕事という感じではなくもはや趣味になっているし、日々自分のレベル上げをしているという感覚である。

プログラミングと出会わなければ今頃ぼくは好きでもない仕事を嫌々こなしていただけかもしれない。それくらいにぼくは感謝している、プログラミングを仕事にできる今の時代に。いや、プログラミングというものに。

長文を読んでくれてありがとうございます。

この記事が新たなプログラマー誕生にコントリビュートできたり、プログラミング愛に溢れた人とつながるきっかけになればそれ以上嬉しいことはないです。


「文系でニートだったぼくがWeb系エンジニアとしてカナダで海外就職するまでの全記録」への1件のフィードバック

  1. 初めまして、現在29歳でweb制作会社に勤めています。カナダ就職を調べていたらセビチェさんのブログに辿り着きました。
    この年齢でも海外就職できるんだなと勇気を貰いました。

    来年ワーホリでカナダに入ろうと思ってるのですが、coopも視野に入れています。
    留学に関してお話をお伺いできたらと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください