見出し画像

「未経験から独学3ヶ月でエンジニア転職した話」

1.自己紹介

初めまして、オムライス大好きと申します。26歳です。
私は現在、事務系のお仕事をしながらプログラミングを勉強しており、11月よりフロントエンドのエンジニアとして入社することが決定しております。
再現性があるかは分かりませんが、同じようにエンジニアを目指されている方への一つのロードマップとして参考にしていただければと思います。

①なぜエンジニアになろうと思ったのか

そもそもなぜエンジニアになろうと思ったのかですが、
ある時、今の職場から転職をしようと考えたときに自分には転職で強いスキルが一つもないということに気づきました。
現在、事務職をしているのですが、事務職は言っちゃえば誰にもできる仕事なのです。働いている時は毎年出来ることが少しずつ増えていく実感はあったのですが、それはその会社の中での話し。
私のような誰にでもできるスキルを持った人なんて世の中ごまんといる、ということを転職活動をする中で知りました。
これはまずい…市場価値の高いスキルを身に着けないとこの先やっていけない…そう思ってプログラミングという道を選びました。
もともとプログラミングには興味がありました。PC自体が好きだったので、そこまで始めることに抵抗感はなかったです。
そしてクリエイティブなことも好きなので、サービスを自分で作れるということに高揚感を抱きました。
勉強していく中で、こうゆうサービスを作ってみたい!とか日常で普通に使っているものもこうゆう仕組みで出来ているだろうと想像することが出来て楽しかったです。
なにより、プログラミングの勉強がまったく苦にならなかったのも大きいです。知らないことが知れて、できなかったことができるようになる。こんなうれしいことはないなと思いました。
いつか自分の作ったサービスを世の中の人に使ってもらいたい。そう思って勉強に励みました。

では具体的にどうやったのか、踏み込んだ話をしていきます。れっつごー


2.結論から…転職活動0日で内定をいただいた


はい。まず結論からお話しすると、エンジニアとしての転職活動自体はしておりません。
詳しくは後述しますが、Twitterから直接スカウトいただいたという形になります。
もともとTwitterはエンジニア同士の横のつながりを作る目的と、エンジニア採用の方の目に留まればいいなという思惑で始めたのもありました。
(あくまで目に留まればラッキーくらいの認識でしたので、転職活動する気満々で企業を調べたりなどはしていました)
結果として、Twitter運用から3週間ほどで内定をいただくことができ、転職活動することなくエンジニアへ転職することが出来て本当に良かったと思います。
あの時お声がけしていただいた会社様には本当に感謝しております。是非とも入社後、1日でも早く戦力となって恩返ししたいものですね。
とは言え、ただ無目的にTwitterで呟いているだけではこのようなチャンスもあまりないと思います。
3週間で内定をいただいたと言いましたが、本当は転職成功するには早くとも4か月~半年はかかると見積もっていました。
私としては嬉しい誤算でしたが、正直たまたま自分の理想に近い企業にお声がけいただいただけで本当に運が良かったなと思います。

では、私のやったことを順序だてて書いていきます。

3.まず最初に最終目標の設定


まず何よりも重要なのは最終目標の設定だと思います。
ゴールがどこなのか分からない状態で進むと、余計な回り道をしてしまいます。
自社開発に就職したいのか、受託なのかSESなのか、はたまたフリーランスなのか。言語はどうするのかなどなど…。
私の場合は開発をしてみたいというのが最終目標であったので、それができるのは必然的に受託かSESになるなと思いました。
そしてウォンテッドリーでもGreenでもなんでもいいんですが、まず求人情報を見に行きました。
今どんな技術や言語が求められているのか。未経験でもはいれる企業は何を欲しているのか。
など、入りたい企業をゴールに設定し、そこに入るにはどうすればいいのかを逆算して組み立てて行きました。
私の場合、フロントエンドエンジニアとして経験を積みたいというのがまずあったので、その条件で探していくと
どうやらReact.Vue.typescriptあたりが求められているということが分かりました。
そうと分かればそれらの技術をインプット→アウトプット→PFへ落とし込みをすればいいという道筋が立ちますね。

4.スクールではなく独学の理由


タイトルが若干ネタバレになってますが…気にせず行きましょう。
まず私のした勉強方法ですが、初心者みんな大好きprogateですね。
progateは本当に分かりやすく教えてくれるので、足を踏み入れるには本当に優秀な教材だなと感心しました。
レベルが上がっていく感じもゲーム感覚で攻略出来て楽しかったですね。
これは他の方々も散々言われていることですが、progate何周もするなんてことはやめましょうね。
理解度が100%じゃない状態で進むのは何かむず痒い気持ちもわかりますが…ググって分かる理解度で充分です。プログラミンは暗記じゃないですからね!
とりあえず私はWebアプリ開発コースを一通りやりました。内容としてはHTML.CSS.JS.React.SQL.node.js.git辺りだったと思います。
さすがにprogateだけでは浅すぎると思ったので、ドットインストールやyoutubeで実際にアプリを作りながらハンズオン形式でアプリってこんな風に作るんだってことを学びました。
それに加えて本でもっと深いところの理解をすすめました。特に就職先で使うであろうJSや、そのフレームワークであるReactに関する本を読みながら深堀しました。
以下私がお世話になった本です。

やはり本で学ぶと深いところまで学ぶことができるので、「あ、こうゆう記述もできるんだ」とか「この記述ってよく見るけどこうゆう意味だったんだ」など本当に多くの発見がありました。

ここでこの章のタイトルにもある「スクールではなく独学の理由」について触れてみます。
おそらくプログラミングを勉強される方のほとんどが「スクールに通う」か「独学で勉強する」の究極の二択に悩まれると思います。
Twitterで知り合った方もほとんどの方がスクールどうしようと言ってました…w
私も結構迷ったのですが、最終的には独学で頑張ろうと決断しました。
それにはいくつか理由があって、そもそもスクールに通うメリットは大きく

メンターがついてくれるので挫折しにくい
ロードマップが明確なので迷走しない
困ったらすぐに聞ける。悩みも相談しやすい。

などがあると思います。
特に挫折率については大きく影響があるのではないでしょうか。
いろんなところで聞きますよね…独学での挫折率は9割もある、みたいな話し…(事実その数字通りなのかは疑問ですがそれは置いといて)
実際一人でモチベーションを維持するのは大変だと思います。
それでも独学を選んだ理由は大きく以下の3点です。

自走力の証明
独学でも挫折しないと思った
結局人それぞれ学習ロードマップは違う。自分でやった方が早いと思った。

①自走力の証明

まず一つ目の「自走力の証明」です。
ぶっちゃけこれが一番大きいです。Twitterを始めて予想外だったのが、エンジニアになりたくて勉強している方が思った以上に多いという事実でした。
その方たちは、同じ志を持つ同士でもあり、競争相手であるライバルでもあると思っています。
所詮未経験者なのでどんぐりの背比べかもしれませんが、より良い企業に内定をもらうには彼らより抜きんでるものであったり、自分にしかないものを証明しないと内定は頂けないと思いました。
じゃあそれをどう証明するか?と考えたときに、多くの方がスクールに入るのであれば、自分はスクールに頼ることなくポートフォリオを作れたらそれは「自分で走り切れる」という自走力の証明になるのでは、という考えに辿り着きました。
スクール自体はお金を払って自分の意志で能動的に入るものだと思いますが、入ってからは基本的には与えられたカリキュラムに沿って学習していくことになる思います。
そうではなく、自分には何が最適かを考えながら自分なりのロードマップを作り、必要な情報は自分で取りに行き、適時軌道修正をしながら目標に向かって進んでいく。
そうすることで、就活する際に「自分には自走力がある」と証明できるのではないかと思います。
エンジニアの方の記事を読んでいても、必要な素質として「自走力」というのはエンジニアには必須のスキルというふうに言われていますよね。
実際に、面接で上記のように自走力の証明としてあえてスクールに頼らず独学で勉強していることを伝えると感心してくださっていた気がします。

②独学でも挫折しないと思った

そして2つ目の「独学でも挫折しないと思った」ですが、
これは勉強し始めて感じたことですが、プログラミングの勉強をしていて純粋にすごく楽しかったんですよね。
挫折する方の多くは、勉強が楽しくないであったり、難しくて理解できない、モチベがなくなってきたなどがあると思います。
しかし私の場合はそれらがあまりなかったように思います。
JSに最初入った時は急にレベルが上がったので「なんだこれは!?引数…?戻り値…?ナニソレオイシイノ?」状態でしたが…w
それも勉強を進めていく中で、最初は分からなかったことも段々と理解を深めていって成長を実感できるその過程が楽しかったです。
仕事終わって帰ってから勉強していたのですが、気づいたら朝の5時くらいまでやってた…なんてこともありました…w

③結局人それぞれ学習ロードマップは違う。自分でやった方が早いと思った。

これはもう本当にタイトルの通りですw
私は最終目標を考えたときにReactやtypescriptが学べる環境が絶対条件だったように、ある人にはPHPが必要な人もいるでしょう。
またある人にはRubyが必要な人や、pythonが必要な人もいるでしょう。お話しさせていただいた方の中には基本情報技術者検定が必要な方もいました。
言語や技術に限らず、勉強方法も動画を見るほうが覚えやすいのか、本の方が好きな人もいるでしょう。
勉強する時間だって日中勉強できる人もいれば、仕事終わりの夜に勉強する人もいますよね。(スクールは質問できる時間が決まっているので、実はこれ結構重要です)
そんな風に人の数だけやり方は違うと思います。
これがエンジニアになる最速のロードマップだ!!!なんて言う人も多いと思いますが、それがまるっきり自分に当てはまる訳ではありません。
スクールのカリキュラムに沿って勉強するのもいいですが、結局人それぞれ学習ロードマップは違うので、自分でやった方が早いなと思いました。
(自分のことは自分が一番理解していますしね)

なのでもし今これを見られている方の中にスクールどうしようかと迷っている方がいて、上記のやり方に納得できればやってみてもいいかもしれません。
でもやってみて少しでも違うなと思ったらスクールを選んでもいいと思います。
独学に向いている人、スクールが向いている人もいるでしょう。スクールが悪だとは全く思いません。
大事なのは、自分に合った道を自分の意志で選択することだと思います。

5.ロードマップの作成(適時修正)


はい、ではそのロードマップについてです。
私の場合は下記のような形で進めました。

①HTML.CSS(progate)
②1冊ですべて身につくHTML & CSSとWebデザイン入門講座
③JS(progate)
④サイト模写
⑤改訂新版JavaScript本格入門
⑥React.SQL.git.nodejs(progate)
⑦ドットインストールでJS.React.typescriptなど
⑧React実践の教科書(最新ReactHooks対応)
⑨はじめてつくるReactアプリ(React入門シリーズ)
⑩Udemy React(v18)完全入門ガイド|Hooks、Next.js、Redux、TypeScript
11.Udemy もう怖くないGit!チーム開発で必要なGitを完全マスター

ここまでで約1か月ちょっとです。基本的にはインプットの期間という風に決めてたのですが、できる限りハンズオン形式で手を動かしながらやるように意識しました。
もっと時間をかけて~とか、もっとこの本読んだ方がいいとか色々あると思いますが、
実務に勝る経験はないと思っていて、インプットは必要最低限にして早くポートフォリオに移りたかった、というのがあります。
この後はこれら学んだことの集大成として、ポートフォリオを作成して完成となります。
ちなみにこのロードマップは、youtubeや実際に転職に成功された方がnoteなどで公開されている情報を自分用にカスタマイズしたものになります。
もちろんこれを一番最初に全部決めるのは難しいでしょう。なので最初は何となくこんな感じで進めたいというふうにふわっとした感じで大丈夫だと思います。
実際にやってみないと分からないことの方が多いでしょう。大事なのは行動しながら考えることです。
常に自分にとっての最適解は何かを考えながら動くことで、自ずと最適解に近づけると思います。

6.やったこと、日々の学習時間


①学習時間

具体的に何をしたのかは上記のロードマップの通りですが、学習時間を聞かれることがあるので記しておきます。
基本的に平日は仕事があるので、仕事終わりの4~5時間。休日は1日中やって大体8~10時間くらいやってたと思います。
正直仕事終わりは眠さの戦いでもありましたが、やってて本当に楽しかったので、自然と身体が机に向かっていた感じでした。

②Twitter運用について

上記でも少し触れていますが、Twitterは基本的にはエンジニア同士の横のつながりを作る目的と、エンジニア採用の方の目に留まればいいなという思惑で始めたています。
なのでプライベートなことを呟くというよりは、日々の学習状況などを呟いていました。

こんな感じですね。
こうすることで自分でもサボりづらくなるし、自分の努力が可視化されるのは良かったです。
自分で思っていた以上にエンジニア界隈の方は人も多くて、毎日勉強されている方も多く本当にエネルギーを貰えました。
ほぼ学習ログの自己満ツイートしかしてないんですが…1000人以上の方にフォローいただいて、有難い限りです…本当に。
ただ、当初の目的の横のつながりを、ですが自分の勉強に集中しすぎてその辺りを疎かにしてしまっていたので、次回はそちらの方にも力を入れていきたいですね。
本題とはズレますが、毎日自分の勉強状況を記録しておくことで、同じような初学者さんから
「めちゃくちゃ参考になりました、私も試してみます」といったリプやDMをいただくことが意外にも多くて驚きました。
自分用に記録していただけとはいえ、こうやって誰かの役に立つことが出来て、お礼を言ってもらえるのは有難いことですね。

③モチベの維持

もう一つモチベーションの維持は、多くの方が悩まれるのではないでしょうか。
前述していますが私の場合は、Twitterでモチベーションの維持をしていました。
やはり同じように頑張っている人たちをみると、自分もさぼってられない!頑張ろう!という気持ちにさせてくれますね。うん、素晴らしい。
あとはたまに体調が悪かったりだとか、どうしてもやる気が出ない…なんて時があると思います。
そんな時はしっかり息抜きしましょう!しんどい時に頑張り続けるのは長い目で見たときにマイナスになります。
私の場合はゲームで息抜きしたりだとか、好きなアニメを見たりだとか、何も考えずにTikTokを見たりだとか…
そんな風に適度にガス抜きしながらやってました。そうするとメンタルも安定して、次の日にはまた頑張ろう!と思えてきます。
そんなこんなで独学の最中に「挫折しそう…」と思ったことは一度もありませんでした。(…よかった。)


7.開始3週間ほどで良い会社さんと巡り会う


はい、ここを詳しく知りたいという方も多いのではないでしょうか。
そもそもTwitterは企業様の目に留まればいいという思惑で始めたと言いましたが、あくまで声がかかればラッキーくらいに考えておりました。
ですが、意外とエンジニア採用担当の企業アカウントが多いという事実に驚きました。
そして今回入社を決めた会社様以外にもカジュアル面談からお話だけでもしませんか?というお誘いは結構多くいただいておりました。
これにはエンジニアが不足しているというのも大きな要因なんだと思いますが、私たちのような未経験にとっては本当に有難い状況でした。
そして何社かお話しさせていただいた中で、自分の理想とする企業さんに巡り合えました。
そもそも、独学で学習したとして現場に入ってすぐに即戦力として活躍できる人は少ないでしょう。
なので未経験でも安心してステップアップしていける教育体制が整っているところに行きたいというのが一つ大きな会社選びの軸でした。
そしてもう一つですが、これはあればいいくらいに思っていたのですが、フルリモートで就業可能かという点です。
私は地方の方に住んでいるということもあり、エンジニアとして就職するのであれば引っ越さないとダメだな…と思っていました。
なので引越しをする覚悟はしていたのですが、その会社様はフルリモートでもいい、とのことで…これが結構嬉しかったのを覚えてます。
あと、ReactとTypeScriptで開発したいと伝えたときに、可能であると言ってくれたのも嬉しかったです。
ゆくゆくはいろんな言語に触れていくにせよ、最初は自分の好きな言語でやってみたかったからですね。

面接の際には、会社の説明や企業理念、どういった業務内容になるのかや、どんな方が在籍しているのかなどなど聞かせていただきました。
私が話したことはエンジニアになろうと思った理由・学習状況・勉強している言語・会社選びの軸…etcでした。
この頃はまだ勉強を始めて3週間ほどしかたっていなかったこともあり、自分の中の軸をまだ決め切れていない部分もありました。
それでもこの会社様に魅力を感じていたので、自分なりに精一杯熱い思いを伝えさせていただいた記憶があります。
特に独学の理由にちゃんと意味があるということを伝えたときには感心してくださり、頑張ってきてよかったと思いました。

そして無事に内定をいただき、私としてもこの会社様の戦力となり貢献したいと思い、入社を決意しました。
会社様の迷惑になってしまうとよくないのであまり詳しくは書けませんが、分類でいうとSES企業になります。
ネットやyoutubeで調べるとSES企業はやめとけ、みたいな話しをよく聞くと思います。
ただ、それらの情報の中身を見てみるとコードが全然かけない雑用をやらされたりだとか、ヘルプデスクのようなことをやらされる…などが多いみたいです。
その会社様はそのようなことは絶対にさせない、とのことで安心できました。
また、もし将来独立してフリーランスで働くとなった場合、ほとんどがSESのようなものという話も聞いていたので、SESで働くことは自分にとって大きな経験となるとも思いました。
あと実際に現場で活躍されているエンジニアさんに直接お話を聞けたのも大きかったです。これがあったから不安を払しょくでき、入社を決断できたというのもありますね。

そんなこんなで最終目標であるエンジニア転職が約1か月で達成できました…(予想外に早い…!)
嬉しい誤算ではありましたが、同時に焦りもありました。ようやくインプットが終わった段階だったのですが、今のまま入社しても到底使い物にならない…!
とは言え入社日が2か月先に決まったので、それまでに何としてでもPFを作ろうと思い、残りの2か月はPF制作に全力を注ぎます。

8.ポートフォリオの作成


入社前課題としてPFの作成が義務付けられていたので、課題内容とこれまで学んできたことをPFに落とし込むように考えました。
課題としては、以下の内容でした。

フロントエンド
 ・React+Next.js+TypeScriptでの開発。Reduxの導入。
バックエンド
 ・express+typeORMでの開発。
DB
 ・mySQLでの開発。(migration+リレーション)



さて、ここで問題が発生します。
私はこの1か月、フロントエンドに全力を注いでいました。
バックエンドはもちろん、DBに関する勉強もする余裕がありませんでした…。
しかしPFにはバックエンドもDBも必須…!
……………
…やばい!!!!!!!!(この時の私はORマッパーてなんやねん!!!!レベルの人です)
そう思い、急いで関連の勉強をし始めます…w
1つの言語で基本的なものを勉強していたら、言語が変わっても本質的には変わらないのでまだいいのですが
私の場合は基本的なことすら勉強していなかったため、これにはめちゃくちゃ焦りました…w
とは言え、焦りすぎも良くないのでまずはフロント部分を作りながら合間にバックエンドとDBの勉強を進めていきました。

アプリの内容は「WineChecker」というアプリに決定しました。
私がワインが好きということもあり、思いっきりPFに趣味を反映させましたw
どんなアプリかと言われると、自分に合ったワインを診断してくれるというアプリです。
診断機能以外にもおすすめ一覧を見れるようにしたり、今後実装予定にはなりますがDBを活かした検索機能なども導入する予定です。

詳しい実装方法に関してはまた後日、記事を上げていますので、気になる方はそちらもチェックしてみてください。
一応イメージとしてはこんな感じです。

このアプリの作成には約1か月半程かかりました。思っていたよりは早く出来ました。
内訳としては大体フロント部分に2.5週間、DBに1.5週間、バックエンドに3週間ほどです。
それでもまだ機能不足なところや改善しないとな、と思うところも見つけたので、今後ブラッシュアップしていく予定です。
問題のバックエンドとDBに関してですが、これはもう本当に実装しながら学んでいきました。
そもそもの基本的な理解から、じゃあこれらを自分のPFに落とし込むにはどうしたらいいんだろう?とめちゃくちゃ奮闘したのを覚えてます…。
特にORマッパーであるtypeORMに関しては日本語の文献が少なかったので、理解するだけでも時間がかかりました。
最終的に英語ですが公式ドキュメントを見るのが一番分かりやすいと気づきました(ただ他の公式ドキュメントと比べてめちゃ分かりにくい…!!)

まあそんなこんなで紆余曲折を重ねてなんとか1か月半で形にすることが出来ました。
勉強し始めた中でこの期間がいちばん体力的にしんどかったです…w(特に後半)
もちろん大変な部分も多くありましたが、それでも一番成長できた期間であったと強く思います。
分からないことを自分なりに考え、実装していく中で学びを深めていく。その過程が何よりも人を成長させるものだと思いました。
ドラゴンボールのサイヤ人も死に直面した時にさらに強くなる!!!…それと同じようなことがエンジニアにもいえると思います(なにいってんだ)


ちなみにですが、これらを全部一人でやったわけではないです。
フロントエンドの部分だけであればそれでよかったのですが、さすがに無知の状態でDBやバックエンドまでを一人でやるのは不可能だと感じました。
とは言え、今更スクールに通う時間もない…。そこでMENTAというサービスを利用させてもらいました。
このサービスは自分に合ったメンターを雇えるというもので、スクールなどに通わなくても自分の分からない個所など質問がし放題なのです(なんと素晴らしいサービス…!)

エンジニア初学者にとってメンターがいるというのは本当に心強かったです。
自分一人ではこのPF作成も途中で挫折していたかもしれません…そのくらい助けていただきました。本当に感謝しかないですね。
とは言え全部答えを教わるのではなく、自分なりのやり方で実装していき、分からないことやどうしても解決できないエラーにぶち当たった時に質問する、という風なやり方で利用させてもらいました。
その他、エラーが出たときの原因の切り分け方や、実際の開発手順、エンジニアとしての心構えなど、思考方法なども教えていただいて勉強になりました。

9.費用の合計

はい、それでは費用の合計です。ざっくりですが
progate=1000円
ドットインストール=1000円
HTML・CSS教科書本=2,500円
JavaScript本格入門=3,300円
React実践の教科書=2,500円
Udemy React講座=1,800円
Udemy Git講座=1,800円
メンター=20,000円

計 33,900円という結果でした。

スクールに通うと40~50万普通に飛ぶことを考えると。かなり節約できたのではないでしょうか?
もちろん独学故の粗削りなところがあるのは十分理解していますが、それは今後十分に補える部分だと思っております。
浮いたお金で良いMacなり、さらに学習を深めるための書籍を買うなど、有効に使っていきたいと思います!

10.振り返り


さて、ここまでを振り返ってですが
正直、本業の後に4.5時間やって、休みの日には10時間勉強するというのを3か月ずっと続けるというのは割と体力的にしんどい部分はありました。
特に後半の方は本業の方で引継ぎや今持ってる仕事を全部片づけないといけないということもあり、なかなかハードでした。
それでも、ここまで走りきることが出来て、ポートフォリオも無事完成し、エンジニアとしての第一歩を踏み出せるのだと思うと本当に頑張ってよかったなと心から思います。
とはいえ、毎日パソコンに向かうことができたのはやはりプログラミングが楽しくて仕方がなかったからなんだと実感しています。
どんなにお金をもらえて、どんなに自由な働き方が出来ても、好きという好奇心を持っていないとエンジニアはやっていけないのだとも思います。一生学び続ける職業ですからね。
それでも、こうやって時間を忘れて没頭できる仕事に巡り合えて幸せだと思っています。
あくまでこれはゴールではなく、ここからエンジニア人生が始まるというスタートです。
自分らしく、自由に生きるために頑張っていきたいと思います!!!!!!!

11.エンジニアを目指して勉強している方へ


最後にエンジニアになりたくて勉強している初学者さんにも書いておこうと思います。
そもそも私がこの記事を書こうと思ったのは、頑張って努力している私と同じような初学者様の力になりたいと思ったからです。
どんなエンジニアになりたいのか、どんな会社で働きたいのか、みんないろいろな理想と夢を持って頑張ってると思います。
それぞれなりたいものが違うからこそ、そこにたどり着く道筋も人それぞれでしょう。
情報収集は大切ですが、インターネットに溢れているあらゆる情報に惑わされないでください。
しっかり自分の軸を持ち、なりたい自分に一直線に努力してください。

もし困っていることがあればTwitterからDMしてください。
皆さんにも素敵なエンジニアライフが送れることを心より願っております。


いいなと思ったら応援しよう!