コロナ禍でコード未経験のアラサーがWEB系自社開発企業のオファーをゲットするまで(勉強内容編)
はじめまして!
都内のWEB系企業でソフトウェアエンジニアとして働いているすずきと申します。
主な業務はモバイルアプリ開発で、たまにバックエンド、フロントエンド開発も行っています。
2020年7月にエンジニアになってはや6ヶ月。
こんな私も1年前までは、スーツに身を固め、カタログがパンパンに詰まった紙袋を両手に持ち、凍える寒さの中始発の新幹線に乗って全国に製品を売り歩くバリバリの営業マンでした。
それが今では私服で快適な部屋の中で自由な時間に働くエンジニア。
自分でも信じられないくらいの仕事環境の変化に、既婚のアラサーでもたった1年で人生を変えられるもんなんだな…と驚いています。
今回初めてnoteで記事を書くのですが、執筆に至ったのは、この記事を書いた日(2021/1/9)の朝に届いた、オンラインスクールでお世話になったメンターからの1通のDMでした。
「コロナの影響もあり、まわりで30代のエンジニアへの転職希望が増えています。すずきさんが体験談を書けばきっとその人達の役に立つと思います!」
そんな体験談巷に溢れかえってるやん…と一瞬思ったのですが、よく考えたら自分が参考にしていた転職成功体験談はほとんどバックエンドエンジニアに関するものだったなと思いました。しかも大体はテックキャンプやポテパンなど、転職を見据えたガチのスクール出身。
自分のようにReactでポートフォリオを作って転職活動していた人の体験談はみたことがなかったので、フロントエンドエンジニアとしての就職を考えている人にとってはもしかしたら役に立つのかもと思いました。
こんな感じで、たまには人の役にたちたい!と思ったのが執筆の動機です。
自分語りして自己顕示欲を満たしたい!とか、いずれ有料化して小金を稼ぎたいなんて微塵も思っていません!嘘です。思ってます。
異業種からの転職をなぜ考えたのか?転職が決まってから業務開始までにやった勉強は?などについては別の記事に書こうと思います。
また、こういうブログみたいなものを書き慣れていないので、読みにくかったらすんません。一応保険をかけておこう。
オファーをゲットするまでにやった勉強内容
○ 11月中旬-12月初旬 (3週間)
TechAcademyのフロントエンドコースを受講。
ここでHTML / CSS / BootStrap / JavaScript / jQuery / Vue.js / Firebaseの基礎を学習。
カリキュラムは各章の課題とオリジナルサイト制作で、学習サポートにチャットメンターとオンラインメンターがいた。
約3週間で課題をすべて完了。この時点では、なんとなく概要はつかめたけど、サイト制作をやるとなるとどこから手をつけたらいいかよくわからんという状態だった。
一通り課題を終えたところでふとJavaScriptについて調べていたところ、JavaScriptにはモダンなフレームワークが3つあり、その中でも世界で一番流行っているのがReact.jsであるということを知る。
将来的に海外の企業で働くことも視野にいれていたので、Reactを学習することを決心。TechAcademy講座を一旦中断する。
○ 12月中旬 - 12月末 (2週間)
Reactについて調べていくと、日本語教材がほとんどなく、英語教材の方が情報が新しいことを知る。また、ここで動画教材のUdemyに出会う。
そしてUdemyで評価の高かった、Andrew Mead氏のThe Complete React Developer CourseとStephen Grider氏のModern React with Reduxを購入する。
最初にAndrewの講座を受講し、Webpack、React基礎、React-Routerなどを学習する。
Andrewの教え方はとても上手でわかりやすく、順調に学習が進んだ。
そんな中で調子に乗っていたところ、Reduxの章に入ったところで内容を全く理解できずに挫折する。
ここでStephenの講座に切り替える。
Andrewよりも英語のスピードが早かったものの、彼はReduxの概念を実際の保険会社の仕組みに置き換えて説明してくれ、そのおかげで理解することができた。
Stephen氏は複雑な概念を図を使って説明してくれるので、React以外の講座もおすすめできる。
○ 1月初旬 - 1月中旬 (2週間)
TechAcademyの講座に戻り、転職用のポートフォリオを兼ねたオリジナルサイト制作を開始する。
Google map APIやその他いろんな機能を組み込みたいという気持ちがあり、オンラインメンターの助言を元にテーマを美容室サイトにした。
サイト制作と並行してテスト(Jest)を勉強したが、この時点で理解できず結局サイトには組み込まなかった。
かなりカツカツのスケジュールだったのだが、途中勉強に疲れて出張の後に徳島へ旅行に行った。ジビエ美味しかったよ。
ちなみに年明けにMac book pro 13が壊れたので16インチに買い換えた。PCが使えない間はサイトの画面設計を手書きしていた。
○ 1月中旬 - 1月末 (2週間)
サイト制作と並行してWes BosのJavaScript30とWhat The Flexbox?!を受講する(なんとこれらの講座は無料!)。
これらの講座でDOM操作とFlexboxの使い方に慣れることができた。
1月末頃にサイトが完成する。
○ 2月初旬 - 2月中旬 (2週間)
Wantedlyに登録して転職活動開始。この頃から日々の学習記録のためにTwitterも開始する。
Twitter APIを使ってポートフォリオ2つ目(自己紹介サイト)を作成する。Andrewの講座でReact Hooks(useState, useReducer, useEffect)を学んで、ポートフォリオをリファクタリングする。
○ 2月中旬-2月末 (2週間)
1次選考は通るものの2次選考のコーディングテストで落ちまくる。
また、この頃からコロナ襲来によってカジュアル面談にさえ呼ばれなくなる。
現実は厳しいな...と感じて1回心が折れかけるが、なんとブロックチェーン系のベンチャー企業から最初のカジュアル面談でオファーをいただくという奇跡が起きる。
ただ、以下のオファー内容が家庭持ちには厳しいものがあり、とりあえず4月までは転職活動を継続することを決める。
・エンジニアと営業をどっちもやる。
・試用期間中(3ヶ月)の雇用形態は業務委託。
とはいっても、世間のコロナ騒ぎで他の会社からオファーをいただける気が全くしなかったので、オファー企業で使っているTypeScriptの学習を始める。
Udemyでよしぴー氏の超TypeScript入門完全パックを受講する。しかし、よしぴー氏の講義が概念図から入るStephen式ではなく、コードをみながら説明する形式で全く肌にあわなかった。なんとか1周したものの、何にも身についた気がしなかった。今思うと、よしぴー氏の講座が悪いのではなく、JavaScriptさえまともに書けないレベルで受講した自分に問題があったように感じる。TypeScriptの学習はこの段階ではまだ早かった。
一応、コーディングテスト対策のためにAndrew氏の新しい講座The Modern JavaScript Bootcampを受講する。JavaScriptの基礎講義が150個ほどあり、講義のあとにchallenging timeというコーディングテストがついているのだが、これが学習理解度を高めるのに非常によかった!
受講後に受けたコーディングテストをパスしたのはこの講座のおかげといっても過言じゃないというくらい素晴らしい講座だった。JS始めた人全員にやってもらいたい!
そして、Reactを使えてもJS基礎がしっかりしてないと全く意味なかったんだったんだな...と反省。
○ 3月初旬 - 3月中旬 (2週間)
Bootcampを並行しながら、転職活動を継続する。
なかなか面談のお声がかからないなか、とある自社+受託開発企業の1次面談を通過する。
我ながら面談はうまくいったものの、ポートフォリオがあまり響かなかったからなのか、本来なかったはずの技術選考が追加される。
技術選考の内容は、仕様通りにReactで1つの画面をつくるというもの。
詳細は書けないが、JSONサーバを立てたりHooks縛りだったりなど、当時の自分にはなかなかカロリーが高かった…!
期限は2週間だったのだが、根性で2日で提出。
2回ほどラリーがあったものの、なんとか1週間で選考を通過。社長面談に進み晴れて正社員オファーをいただく。
現在働いているのがこの会社です。
このときの課題を解いていたときが一番Reactの勉強になった。
以下では、これを読んだみなさんが疑問に思うであろうことへ回答します。
効率よく学習できたの?
できませんでした。
学習開始から転職が決まるまでそんなに時間はかかりませんでしたが、正直これはやらなくてよかったかな?というものがいくつかあります。
特にJestはポートフォリオ作成時には全く勉強する必要はありませんでした。実務で使うことになったときに勉強すれば十分だと思います。
また、TypeScriptについても勉強する順番を間違えました。JavaScriptが大体書けるかな?というレベル(The Modern JavaScript Bootcampの内容を理解できるレベル)に達した後に学習するべきでしたし、転職が決まる前に手をつけるべきじゃなかったかなと思います。
スクールは行く必要ある?
人によります。
私はスクールが挫折防止のための保険だと考えているので、毎日学習の仕組みづくりができてエラーを最初から独力で解決できる自信がある方なら入る必要はないと思っています。
ただ、そのような自信が少しでもない方はスクールに入るのが賢明だと思います。なぜなら、メンターの存在が非常に重要だからです。
エラーにぶち当たったときにすぐに質問できる相手がいるだけで安心できますし、実際のエンジニア業務について聞くことで学習のモチベーションを高めることもできます。
教材の内容自体は確かに普通だったのですが、メンターの存在だけで私はスクールに入ってよかったと思います。
メンターのS氏は今でも私の最高の相談相手です。
勉強開始から転職決まるまでの勉強期間は?
オファー1社目:約3ヶ月
オファー2社目:約4ヶ月
1日の勉強時間は?
平日:約3-4時間 (営業中の隙間時間も含む)
休日:約8時間
どこで勉強してたの?
ほとんど自宅。
コロナ前は営業中の隙間時間でいろんなところで勉強していました(新幹線、SA/PA、社用車の中、客先の食堂、フードコート、カフェ、公園のベンチ)。
和光市駅のミスタードーナツと豊橋駅のタリーズには特にお世話になりました。
英語教材に手を出した理由は?
Reactについては最新の情報が英語でしか手に入らなかったからです。一見敷居が高く感じますが、動画教材によっては日本語字幕がでますし、スライドをみれば説明もなんとなくわかります。
あとこれはあくまで自分の感覚ですが、外国人講師の方がスライドや図を使って説明してくれるので、概念のイメージがしやすいです。
いくら日本語で説明されても、よくわからないコードの画面をみながらだと混乱しますよね?私だけ?
学習のモチベーションをどうやって保ったの?
絶対転職してやるという気持ちでやっていたのでサボることはありませんでした。とはいえ食事と睡眠以外全部勉強!みたいなことはなく、Amazon PrimeとかNetflixでドラマ10本くらい観たと思います。大事なのはメリハリ。
ポートフォリオのレベルは高い方がいい?
高いに越したことはありませんが、エンジニア系のインフルエンサーが最近おっしゃっているような、「AWS, Docker, Circle CIの導入は必須!」みたいなのは言い過ぎなように感じます。コロナ禍で未経験者の採用が減っていたとはいえ、ハイレベルなポートフォリオが求められた感じはありませんでした(AWSどころかHerokuにデプロイしたし...)。むしろ技術はコーディングテストでみられた印象があります。
学習時の作業環境は?
Mac book Pro 16 (2019)とiPad Pro 12.9をSidecarで接続してデュアルディスプレイにしていました。
現在の業務ではどんな技術を使っているの?
業務で使用しているスキルは以下です。
HTML / CSS / JavaScript / TypeScript / jQuery / React Native / PHP / Laravel / AWS / GraphQL
React Native (TypeScript)とLaravel (PHP)をメインで使うことが多いですね。
こんな感じで初めての記事執筆は終了です。
変な文章を見つけたら都度修正していきます。
会社の同僚以外のエンジニアとつながりがないので、誰か仲良くしてください!
それでは!