フランスで未経験+キャリアチェンジしてフロントエンドエンジニアになるまで 【学習編】
日本での仕事を辞めプログラミングの勉強を始めてから1年2ヶ月、2022年6月にフランス企業にFrontend Developerとして採用されました。
まずは、未経験からエンジニア+海外就職という道のきっかけを与えてくれたゆかさんに大大大感謝です!そしてコミュニティーPortでもたくさん支えてもらい、おかげで仕事を見つけることができました。
たくさんの方が経験談とアドバイスをシェアしてくださったおかげで今こうしてエンジニアとして働けているので、"Pay it forward"の気持ちで、同じように海外でエンジニア職を目指す方の助けに少しでもなればと思い、キャリアチェンジするまでの道のりをシェアします。
長くなっちゃったので学習編と就活編の2部に分けました。興味があるところを読んでみてください。この記事ではどのようにプログラミングを学習したのかについてフォーカスをしたいと思います(就活編はこちら)。
私の経歴
前職は日系メーカーでマーケティング職をしていました。昔バイトでHTMLを一瞬触ったことがあるくらいでプログラミングはほぼ未経験です。
昔からいずれは海外(どこの国がいいとは決めてなかった)で働きたいと思っていて、どこでも働ける専門性が欲しいなとずっと思っていました。それで最初は興味のあったマーケティングを選択したのですが、マーケティング職は海外だと現地の言語や文化理解に依存する部分もあって厳しいだろうな~と思ったり、何より自分の性格に合ってない気がしてキャリアチェンジしたいなと考えていました。そんな中、ゆかさんのブログに出会い、未経験でしかも海外でキャリアチェンジをしてるなんてと衝撃を受けました。それがエンジニアという職種を考え始めたきっかけです。
それからちょくちょく仕事の合間にHTML、CSSの勉強を始めてみたら結構楽しくて、自分に合ってるかもと思えました。でもすぐにキャリアチェンジを決断したわけではなく、コロナで人生計画が変更になったり、国境が閉じてパートナーとも先の見えない遠距離になるなどしてやっと決断することになります。
今になって「思い切ってキャリアチェンジしてよかった!」と思えていますが、正直仕事を見つけられる保証はなかったし結構不安でした。でも最終的には「例えエンジニアの仕事が合わなくても、マーケティングとエンジニア、2つの職種を経験してることは将来プラスになる」「しない後悔よりもする後悔」と思ってやってみることにしました。
そうしてエンジニアにキャリアチェンジしようと決め、日本の会社をコロナ禍で退職し、プログラミングの勉強に専念しました。そして退職してから1年2ヶ月経ったタイミングでフランス企業からFrontend Developerとしてのオファーをもらいました。
海外でのキャリアチェンジをするにあたって考えるべきこと
人によってスキルや状況、資源が異なるので、自分で調べながら以下をじっくりと考えてから決断するのでも遅くないと思います。
目標決め(いつまでにどこでどのようなエンジニアになるのか)
計画と戦略立て(いつ何の勉強をするのか。自分の何を売りにして就活で競争していくのか)
プランB/Cの用意(自分が想定していた計画やビザが上手くいかなかったらどうするのか、現地に残るのか or 他の国・都市に行くのか or 日本に帰るのか、自分の計画をどこまで柔軟に変更できるのか)
時系列の学習内容
前提としてこの期間英語の勉強はしていません(なので英語力に関してのアドバイスはできません)。英語で働くことを想定していたため、プログラミングの勉強はほとんど英語の教材を使っています。
以下は大まかな勉強した内容と使った教材になります。勉強内容やロードマップはかなりゆかさんのブログ内容を参考にしました。
仕事をやめる前:HTML/ CSS/ JavaScript基礎
プログラミングに興味があって「自分に向いてるのかな?」と思っていた時期に、とりあえず基礎をやってみようとProgateから開始(HTML, CSS, JavaScriptの基礎を2周)。まったくの初心者だったので最初のステップとしては難しすぎずちょうどよかった。仕事としてやりたいか・できるのかが分からない方はひとまず少しでも勉強してみるのがおすすめ。
4-6月:JavaScript
HTMLとCSSの基礎は仕事を辞める前にある程度終えていたので(もちろん完璧ではない)、仕事をやめてからはJavaScriptの勉強を始める。
UdemyでJonasの"The Complete JavaScript Course"を一通り終える。Jonasの教え方が丁寧で好きだったし、コードの裏側で何が起きているのかの仕組みも説明してくれるので分かりやすかった。結構ボリュームがあるのでちゃんと理解できたか不安になると思うけど、完璧を目指さず60%理解できたら次に進むことにしていた。
その後Wes BosのJavaScript30。毎回新しいプロジェクトを作るので「これもできるようになった!」という達成感が得られる。できそうなものはレクチャーを見ずに自分で作ってみて、分からなくなったらレクチャーを聞くというやり方が自分には合っていた。
JSのプロジェクトを作って実践練習がしたかったので、freeCodeCampの"40 JavaScript Projects for Beginners – Easy Ideas to Get Started Coding JS"や"Build 15 JavaScript Projects - Vanilla JavaScript Course"でベーシックなプロジェクトを作ることで理解を深める。
プロジェクトを作っているうちにCSSで分からないことが増えてきたので、CSS Grid Garden, Flexbox Froggy, Wes BosのCSS Grid, Flexboxのコースをやった。
7-9月:React & Redux
最初はUdemyの"React - The Complete Guide (incl Hooks, React Router, Redux)"をやる。Maxの説明が分かりやすかったし、内容も網羅されててよかった。最初のほうにJavaScript RefresherがついていてES6について復習できるのもよかった。
Udemyのコースでなんとなくわかったかなと思えたので、次はプロジェクト作成に移る。私は定番のweather app (React)とBug Trackerというダッシュボード形式のプロジェクト(React & Redux)を作った。Reactでパーソナルプロジェクトを2つ作った時点でポートフォリオに載せ就活を開始。
ちなみにパーソナルプロジェクトは、①APIやバックエンドサービスを使ったもの、②CRUD(Create, Read, Update, Delete)機能のあるプロジェクトを作ることをおすすめします。Reactのプロジェクトは検索すると色々なアイディアが出てくるのでその中から一つ選んで作ってみるといいかもしれません。
あとはマストではないけど、個人プロジェクトもこの後出てくるchinguのプロジェクトもFigmaを使ってデザインを作ったので、YouTubeのcrash courseを見て使い方を学んだ。
10-11月①:chingu
chinguという無料のチームコーディングプログラムに就活と同時進行で参加。私はヨーロッパやアフリカにいるチームメイトとリモートでプロジェクトを作った。チームメイトのコードレビューやgit・GitHubのチームでの使い方など学びが多かったし、新しいフレームワークもここで習得してCVに書けることが増えた。面接でよくこのチームプロジェクトについて聞かれたので、エンジニアの実務経験がない人は特に経験を積むのに役立つと思います。
10-11月②:Jest, React Testing Library, TypeScript, Sassなどなど
就活を始めたもののこのままでは書類が通らないと思い、chinguを終えたあとに新しい言語とフレームワークの勉強を始めた。
TypeScriptとJestの勉強で悩んでいたところ、ゆかさんから「testableなコードを書けるようになったほうがいい」とアドバイスをもらい、Jestを優先して勉強することに。まずはCode Academyの無料のコースやYouTubeの動画(これやこれ)で概要を掴む。それからUdemyの"Testing React with Jest and React Testing Library (RTL)"でJestとReact Testing Libraryの基礎を勉強した。教材を使って勉強したあとは過去のJavaScriptやReactのpersonal projectをテスト。
あとは、ポートフォリオを作り直そうとしていた時期なのでSassの勉強もしたのと、TypeScriptも勉強してCVに載せた。これらはマストじゃないと思うけど他の人と差別化するのに役立ったかな?という感じ。特にTypeScriptはjob descriptionに載せている会社が多かったので勉強してよかったと思う。
学んだことはたまに英語でブログ記事にしてました。実際に他の人に説明しようとすると、どこが曖昧なのかはっきりとして理解が進んだ気がする。サイトはHashnodeを使用。
独学してよかったこと
①「学び方」を学べた
独学に限らないかもしれないけど、プログラミングの独学をしてよかったなと思うことは「学び方」を学べたことです。何か新しいスキルを学びたいとき、どこをどうやって探せば情報が見つかるか、どの順序で何を学ぶか、スケジュールはどうするかなどを考えるようになり、結果的に新しいスキルを身に着けるハードルが下がったことがすごく大きな収穫でした。仕事で新しいフレームワークを習得する必要があった時も、焦らず限られた時間で効率よく勉強することができたのは独学したおかげかなと思います。
②費用を抑えられた
UdemyやYouTubeを中心に勉強したので、費用は全部で1万円かからないくらいだったと思います。無料もしくはあまりお金をかけず学べる良質な教材がネットにたくさんあるので、工夫すればお金をかけずに勉強できます。
独学で大事だと思ったこと
①就職のデッドラインとそこまでのロードマップを引く
独学だと誰かに決められた期限がないので気付くとだらだら勉強しちゃったり、「まだまだスキルが足りない…」と思って永遠に勉強しちゃうことがあるかと思うので、決め方はなんでもいいので自分なりに期限を決めて計画を立てるのがいいかなと思います。
私は「前職を退職してから1年以内に」という目標を設定して、そこから逆算して勉強・就活のスケジュールを引きました。自分で細かく目標を決めないとだらだら勉強しちゃうと思ったので、毎月何を勉強するか、さらには今週何を勉強するか、というようにどんどん目標を分解して行動目標を決めていきました。
②自分で一からプロジェクトを作ってみる
新しい言語やフレームワークを学ぶ時は必ず自分で一からプロジェクトを作れるようになってから次に進んでました。レクチャーだけを聞いてると分かった気になったりtutorial hellに陥りがちだけど、実際に手を動かしてみるとどこが分かっていなかったのかがクリアになるのでおすすめします。
③完璧を目指さない
勉強してるとあれもこれもまだ分かってないと焦るけど、私の場合、例えばオンラインのコースだったら60%わかっていたら次のセクションに進むようにしていました。後から分からないことが出てきたらその都度調べればいいと思います。
④自分のモチベーションの維持の仕方を知る
一人で勉強しているとモチベーション維持が難しくなることが多いと思いますが、自分なりのモチベーション維持の方法が見つかると勉強もスムーズにいくかと思います。私の場合は2つのことがモチベーション維持に役立ったと思います。
一つ目は、Twitterで#100DaysOfCodeのハッシュタグをつけて勉強内容をほぼ毎日ツイート(3周目突入で終了)。このハッシュタグは駆け出しのエンジニアがよく使うもので、時々同じように勉強してるエンジニアがいいねしたりコメントをくれたりするのでモチベーションになるし、他の人のツイートを見ると刺激になります。
二つ目は、月ごとの振り返り。毎月1回、前月の勉強内容を振り返ってツイートしてました(途中でやめちゃったけど)。振り返ると自分が思ってる以上に学んだことがたくさんあることに気付いてモチベーションが上がるのでおすすめです。
⑤コミュニティーに参加する
私はコミュニティーPortに、技術だけでなく精神的にもたくさん支えられました。独学初期から参加できたのは本当にありがたかったです。独学だと孤独になりがちなので、同じ目標を持った人たちの集まるコミュニティーに参加するのはすごくおすすめです。
参考にしたブログ
「キャリアチェンジしてフロントエンドエンジニアとして採用されるまでの記録。」。この記事にすでに何度も登場してるバイブル的ブログ。この記事がなかったら未経験でエンジニアとして独学で勉強しようと思わなかったので、本当に感謝してもしきれない。
「カナダで未経験から初めてのソフトウェアエンジニア職に就くための就活の記録」。同じコミュニティーのあすかさんのブログ。就活の体験が細かく書かれていて、就活が未知だった自分にとってありがたい情報ばかりだったし、「こういうこともしてみよう!」といろいろアイディアをもらった。
"Learn to code for free, get hired in 5 months, and have fun along the way"。この通りに勉強したわけではないけど、月ごとの勉強ロードマップが書かれていたので参考にした。
エンジニアとして就職するまでの勉強内容をこの記事ではシェアしました。最終的には独学という道を選びましたが、他にもカレッジやブートキャンプなど様々な選択肢があるので、自分にあっているやり方を探してみるといいと思います。
次の記事では就活の経験についてシェアしたいと思います。ここまで読んでくださりありがとうございました。
Photo by Damian Zaleski on Unsplash
この記事が気に入ったらサポートをしてみませんか?