中卒30歳実務未経験駆け出しがエンジニアになって１年たった。

:::note alert
合併による変化で福利厚生&研修制度が変わってしまいました。
記事内容の大手経営コンサルティング会社は2024年6月に退職しました。
:::

:::note warn
2024年4月から会社合併に伴って福利厚生&研修制度が変わるみたいです。
:::

# はじめに
去年の6月に入社して、1年たったので転職から1年間やってきたことを振り返りたいと思います。
自分は運がよかっただけなのかもしれませんが、未経験のころに抱いていた未経験エンジニア転職と違ったので、これからエンジニア目指す未経験の方の1つの事例としてケーススタディになればと思います。

## 転職が決まった！
転職が決まった時、エンジニアの友人と喜び合ったのを今でも覚えています。

私「転職きまったよ～」

友人「おーおめでとう」

私「フルリモートで未経験は1年研修があるらしいよ～」

友人「研修長くない！？有給プログラミングスクールじゃん」

私「提示年収これぐらいだった。1日7時半労働らしいよ～」

友人「！？」

～4か月後～

私「フルフレックスになった～」

友人「ファッ！？」

実際、今年の4月半ばごろまで研修をやっていました。(10ヶ月半ぐらい)
最初、「あ～これは、実際は3ヶ月ぐらい研修で現場に出て、OJTみたいな感じかな～」と思っていましたが全然違いましたね...疑ってすみませんでした...

自分は進みが少し早かったので1年以内に終わりましたが、未経験新卒の方なんかは1年みっちりやっています。(手厚い)
未経験エンジニア転職ってかなり年収が下がると思っていましたが、新卒の初任給とか見るとうちは結構いいなと思います。
この前SESで働いている方と話す機会があったのですが、自分の年収を聞いてびっくりしていました。
入って4か月ぐらいで就業規則が変わりフルフレックスが選べるようになりました。

## 転職を振り返る
2022年11月半ばぐらいから転職活動を始めて、4月末に今の会社に運よく内定をもらって転職活動を終えました。(5ヶ月間ぐらい)
面接を受けたのは4社(内定は1社のみ)、勉強時間は約500時間で、ポートフォリオは無し(作りかけの未完)　Paiza Aランクでした。


### スペック
高校1年の時に高卒認定をとって中退、3年間遊んで過ごした後、大学行くつもりでしたが、やりたいことが決まらず、勉強のやる気もなかったので働き始めました。(高卒認定だけだと卒業資格がないので高校中退で、最終学歴が中卒になります。)
19歳から30歳の転職するまでの11年間、製造業で働いていました。(現場仕事やったり、事務やったり、生産管理やったりしました。)
結構マジメに働いていましたが、笑っちゃうほど仕事が面白くありませんでした。ただ無暗に転職するのもなんか違うな～と考えていたので、やりたいことが決まるまでじっとしていました。(じっとしすぎた…)

趣味が読書だったので友人が教えてくれた技術書とか興味のある技術書を買いあさっていて、面接に受かるころには50冊ぐらい持っていました。(未経験だとかなり持ってる方だと思います。全部は読めていませんが…順調に増えていき現在だと120冊ぐらいあります。)

あとはプログラミングの勉強をPaizaからはじめ、なんとかＡランクまで取れました。

まとめると
* 中卒
* 製造業で11年間勤務
* 30歳
* 業界未経験
* 技術書50冊所持
* Paiza　Aランク
になります。

## 転職活動
転職媒体はPaizaを使いました。(Greenも登録していましたが、未経験なのであんまりいい感じのスカウト来なかったので使うことがありませんでした。)

Paizaは本当にいいので未経験者には超おススメしたいです。(Paizaの回し者ではないです。)
ランクB以上取れば、そこそこスカウト来るし、ランク以上なら書類選考なしでカジュアル面談が受けられます。
自分みたいな、人生ドロップアウトランキング上位者は普通の媒体だと書類ではじかれると思っていたので、いきなり面接から受けれるのはすごくうれしかったですね。
面接後、フィードバックを頂けるので自分の足りない部分がわかってよかったです。

https://paiza.jp/

2022月11月半ばくらいから現役エンジニアの友人にメンターしてもらって独学でPHPの勉強を始めました。
今まで、プログラミングはキチンと勉強したことがなく、Javaやpythonの本は買ってみたものの作りたいものが漠然としていたため本を読んでもコードすら書かず、すぐ挫折していました。

勉強を軌道に乗せてくれた友人のおかげと転職をするという目的ができたことで勉強がはかどり、1週間でＣランクを取って、2週間ぐらいでＢランクを取ることができました。
すぐAランクに挑戦するもなかなか取れずじまいでした。
それから、ポートフォリオを作り始めて、（結局、完成せず転職で使うことはありませんでしたが）どうせやるならモダンな技術でやろうと`Docker + Nginx + Laravel + Next.js(Typescript) + MySQL + TailwindCSS`でECサイトを作っていました。商品蘭ぐらいしか作れず、エンジニアの友人にはサクラダ・ファミリアといわれていましたが…(いつまでも完成しないポートフォリオと…)
そんなこんなで勉強を続けていたら、Paizaからいい感じのスカウトが来て面接を受けることになります。

## 面接対策
面接を受けることになったのですが、困りました。自分はまともに面接を受けたことがありません。
なんたって就職活動をやってないんですから！というわけで、Youtubeの面接対策動画を100本ほど見て、面接対策を考えました。(最近のYoutubeすごいなんでも学べる！)
#### 面接で意識していた5つのこと
* 自分軸を持つ。
    * なぜエンジニアになりたいのか？エンジニアになって何がしたいのかなどを話の筋が通るように軸を持っていました。軸を持っていればどんな質問が来ても筋の通った回答ができて、面接官も納得してくれると思っていました。
* 自分軸と会社のカルチャーを合わせる。
    * 自分軸がいかに会社のカルチャーにフィットするかを考え、会社のことを徹底的に調べていました。会社はカルチャーがフィットする人が欲しいと思うので摺合せは大事だと思います。併せて、自分ならこういうことで会社に貢献できると言えるように準備していました。
    
* 相手の質問にキチンと答える。
    * まず相手の質問をキチンと聞いて、結論から答えるようにしていました。
    * 質問の意図がわからない場合は必ず聞き返して質問に答えてから、話を広げるようにしていました。
   
* 頑張るって言わない。
    * 面接官の方は未経験駆け出しが「頑張ります！」っていうのを聞き飽きていると思っていたので、口が裂けても言わないように気をつけていました。それに20代前半の初々しい方なら「頑張ります！」でもいいかもしれませんが、30代の自分がいうのはかなり痛いなと思ったので、かなり意識して、頑張るではなく、「こういうのをやります。こういう風にしていきます。」と行動を述べるようにしていました。 

* 面接を最大限活用する。
    * 普段なかなかお会いすることのできない経験豊かなエンジニアの方が面接官だったりするので、「これはまたとないチャンスだ」と思って、技術的な質問やおススメの書籍を教えてもらいました。これには一石五鳥ぐらいのメリットがありました。
        * 経験豊富なエンジニアの知見を得られる
            * 未経験からでは何年もかかるそのエンジニアの方の経験や知恵を凝縮した一滴がおススメの技術書に詰まっていたりするので、聞かない手はないです。
        * 本気なら相手も悪い気はしないはず
            * エンジニアの方ってみなさん面倒見のいいひとが多い気がします。素直に学ぶ姿勢はプラスになると思います。
            * 本気で聞いているのに親身に答えてくれないなら入社しても苦労するかもしれないので、入社しなくてもいいかもです。エンジニアの方が面接官の場合、直上の上司になる可能性が高いので、入社後の雰囲気も掴みやすいと思います。
        * 相手に喜んでもらえる
            * 面接で教えてもらった技術書はすべてその場で購入してフィードバックに「すべて購入しました。ありがとうございます。」と書いて、次の面接の時に技術書の感想をいってたので、かなり喜んでもらえました。win‐winです。わざわざ未経験のために面談の時間を取っていただいたわけなのでなにかお返ししたいですよね。

        * 自分の成長につながる。
            * 純粋に成長につながると思います。
            * 次の面接の話の種になる。絶対面接では他の選考の話のとかでるはずなので、前回の面接で「こういうことを教えて頂いたんですけど...」とか「この本を教えて頂いて...」と話を広げやすくなりました。

あたりまえのことを書いているような気がしますけど、自分はほとんど面接を受けたことがないのでこれぐらいの転職の軸を持っておいた方がいいのかなと思い意識して臨みました。

他には、オンライン面接が主だったので音声にはかなり気を使っていました。
また、オンラインという事を利用して本棚をバックにして、持っていた技術書50冊が見えるように配置していました。面接官のかなり印象に残る未経験駆け出しだったと思います。
面接中は、質問に答えつつ、技術書やモノづくりの話をしていたような気がします。
しっかりと準備しましたがやはり緊張しました。
面接で何を言われるかビクビクしていましたが、面接官の方々はどなたも丁寧で、カジュアル面談はどこも穏やかな感じだったので、ビクビクする必要はなかったです。

### 選考
4社受けて1社内定を頂きました。
はじめて受けた1社目は母体が飲食店事業をやっている自社/受託の会社でした。
* カジュアル面談　→　一次面接　→　二次面接　→　落選
    * 初めての面接という事を伝えると驚かれたのでしっかり準備できていたようです。面談のフィードバックはよかったのですが、技術的に実力不足という事でお見送りになりました。

1社目を落ちた後、すぐ流行り病にかかってしまい３週間ほど会社を休むことになります。
前職は忙しく(肉体的にも精神的にも)勉強する時間がなかなか取れなかったので、「この時間に実力不足を補うぞ、この期を逃すものか」と思い、咳と高熱でうなされながら勉強してなんとかPaiza　Aランクを取りました。
友人にはポートフォリオ作った方がいいと言われましたが時間的余裕(早く転職したい)と単純にAランク取れないのが悔しかったのでランク上げをしました。結果的には、Aランクを取りにいってよかったです。

少しすぎてから二社目を受けることになります。
2社目はセキュリティを扱っている自社開発の会社でした。
* カジュアル面談　→　落選
    * QAエンジニアの求人だったと思うのですが聞いてみると自分の思ってたQAエンジニアと違うという事でカルチャーフィットせず、面談のフィードバックは良好でしたがお見送りになりました。(社内のQAやってた人にこれってQAなんですか？と聞いたら「違うね～」って言ってたので音楽性の違いって奴だと思います。)
 
3社目はECサイトの自社開発の会社でした。
* カジュアル面談　→　落選
    * 面接のはじめにレコメンド機能の質問をされたのですが、ここでうまく答えられませんでした。また、相手側の音声環境が悪くてかなり聞き取りにくかったので「終わったな...」と思っていました。結果、その通りお見送りになりました。

4社目は自社なのですが、当時はまだ合併前で、グループ会社なんだ、研修制度がかなり充実しているなぐらいの認識でいました。
* カジュアル面談(一次面接）　→　最終面接　→　内定
(※現在は選考フローが違っていると思います。）
    * すごくテンポよく会話できて、「あーこれが相性があった時の面接なのか」と面接後、すごいさわやかな気持ちだったのを覚えています。もちろん、良いフィードバックももらえました。
    * 最終面接では絶対に受かりたかったので入念に何を話すかとか準備していましたが、準備した10分の1ぐらいしかしゃべることができませんでした。受かってよかったです。
    * 4月中旬にカジュアル面談を受けて、4月末に内定を頂きました。

実は、ポートフォリオを作りきるまでは面接を受けるつもりはありませんでした。
やっぱりドロップアウトしたことがネックだと思っていたので、「実力を形にできるまでは...」と考えていました。
しかし、「いっぱい会社あるんだから、いいスカウトが来たらとりあえず受けてみれば？」と友人の助言もあり、怖い気持ちを抑えつつ「エイヤ！」と面接を受けてみました。
本当に実力不足の段階で受けてみてよかったです。
自分の足りない部分が浮き彫りになったので、もっと勉強しないとと転職活動に力が入りました。

未経験の方で**もし、チャンスがあったら準備が少しぐらい足りなくても面接を受けてみてください！**
(Paiza Bランク以上ならポートフォリオを作るのと並行してやった方がいいと思います。）
これは、**声を大にして言いたい！**

なぜなら、自分が転職活動を始めたタイミングでもう一人20代の仲間がいたんです。
彼はBランク取った後しばらくして、いい感じのスカウトや自社のスカウトももらっていました。
自分の経験から自分と友人は「面接受けてみた方がいいよ」と勧めたのですが、頑なに「ポートフォリオを作るまでは...」と拒み続けました。
彼も大学院を中退しており、面接に恐怖心があったようです。
「カジュアル面談は普通の面接より緩いよ」と説得したものの彼の耳には届きませんでした。
結局、彼はその恐怖心に勝てず、せっかくBランクを取ってスカウトが来ていてのに、チャンスを生かせず、勉強もやめてしまい、消えるようにいなくなってしまいました。
そもそもエンジニアになろうとする覚悟が足りなかったのかもしれませんが、自分と友人はそのことを悔いています。
だから、チャンスがあったら面接を受けてみてください。
あたりまえのことではあるのですが、宝くじも買わないと当たらないように面接も受けないと始まらないのです。

## 研修
前職をやめる時に紆余曲折ありましたが、晴れて6月に入社して、研修をスタートすることになります。

**※今年から研修内容が一新されてTypeScript(バックエンド) + React を中心に基礎的なことを学んで終わったら好きな分野(GoとかJavaとか)を学んでいくようになりました。**
研修は基礎(共通)　→　応用(共通）　→　応用(各分野）という感じでした。
(公式の採用ページの会社説明資料にのってたりします。）
* 基礎(共通) 
    * Git Java Linux HTML&CSS JavaScript SQL
* 応用(共通)
    * ネットワーク基礎知識　Docker
* 応用(選択制)
    * インフラ
    * バックエンド
    * フロントエンド(デザイン)
    * フロントエンド開発

自分はフロントエンド開発をやりたかったのですが、カリキュラムになかったのでメンターの方と相談しながらカリキュラムを作りました。
TypeScriptにVueとReactどちらかを主に学べるようなカリキュラムを立てました。(自分はどちらもやりたかったのでどちらもやりました。)
研修の中にお披露目会というものが組み込まれていました。
研修で学んだ内容を元に自主制作をしてみんなの前でお披露目をするというものです。
このお披露目会は限られた時間の中(ちょっとぐらいオーバーしてもいい)で作るので、実装力がかなりつきました。


### お披露目会
研修で5つのお披露目会プログラムを作成したので、それをベースに研修でやってきたことをお伝えしたいと思います。
#### 単語並び替えゲーム
１つ目は、Javaを学んだのでそれを生かして何かプログラムを作るような感じでした。
対象の単語がランダムで提示され、正しい単語に並び替えて入力して成否を見るようなプログラムをコンソールとSwingを使ったGUIで同じゲームを5日で作成しました。
GUIは使ってみたかったので作ってみたのですが、はじめうまくいかなかったので大変苦労しました。(うまくいかずに時間外でも調べてた。)
MiroでつくったGUIのフロー図
![java_anagram.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819639/b7ebdbef-a69e-cd97-0f74-64df51b32bff.jpeg)

#### 弾幕ゲーム
2つ目は、HTML、CSS、Javascriptを生かしたプログラムを作るような感じでした。
入って2か月ぐらいだったと思います。
特に勉強に縛りはなかったのでどうしても作ってみたかったシューティングゲームをつくるため教本を追加しました。

https://gihyo.jp/book/2020/978-4-297-11085-7

上の本を参考にCanvasをつかって二次利用okな素材を使って某同人ゲームを10日で作りました。(素材元様ありがとうございます。)
これを作ってる期間は、本当に大変で寝ても覚めてもゲームを作ることを考えていました。
```タイトル画面　→　ローディング画面　→　キャラ同士の対話　→　戦闘　→　戦闘終了の対話→　終わり```
BGMの追加、HPによって攻撃パターンの変更、画面切り替えのステート管理、シナリオ導入でキャラとの会話や立ち絵の選択、いろいろ考えて作成したのでゲームってこんなに作るの大変なんだなと思いましたね。
ボムとか低速移動とか実装できなかったので、いずれ立ち絵なんかもオリジナルで作って作り直してみたい感じがあります。
別に誰にも求められていませんが、かなり完成度の高いものが作れたと自信がつきました。
ちなみに難しく作りすぎて一度もノーコンクリアできていません...うまい人ならクリアできるかもしれないですね…
![danmaku.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819639/f1a84dd6-89ea-7a08-2be6-832e6d1a6133.gif)

#### 読書管理アプリ(デスクトップ版)
3つ目はSQLを学習後、BDとJavaをつなぎ合わせるプログラムを作るように言われました。
Swingを使ってGUIで読書管理アプリを12日で作りました。(期間的には10日、Swingはやってみたかったのでやっただけで本来GUIで作る必要性はなかったりします。)
DAO/DTOパターンがよくわからず苦戦しました。Swingもレイアウトがうまくできず苦戦。予定より時間オーバーしてしまいました。
MiroでつくったGUIのフロー図
![sql_project1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819639/925d7304-a903-c5e0-ffe1-b5989acd8d6a.jpeg)
![sql_project2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819639/2c263f8b-c17f-ceaf-c0c8-f009a327777f.jpeg)


#### 読書管理アプリ(Web版)
ここから応用フロントエンド開発のカリキュラムにはいっています。
3つ目はTypeScriptとVueを学んだあとに自主制作をしました。

https://gihyo.jp/book/2022/978-4-297-12747-3

https://gihyo.jp/book/2022/978-4-297-13072-5

前回作ったWeb版をモダンな構成で作ってみたかったので、Vuetify3やGraphQLを使って自主制作に取り組みました。
10日ほどで作成しました。
clientにurqlを使用しましたが公式ドキュメントの書き方がVue2の書き方で非常に苦労しました。。。
英語ができないのでDeepLやgoogle翻訳をフルに使い英語のサイトや公式ドキュメント、issueを読んでまわったりしたのでかなり調べる力がつきました。。。
APIをつかってISBNで書籍を検索できるように実装もしていました。
CypressのDockerコンテナを使ってみたのですが、localhostにアクセスできないとか他にもいろいろエラーにぶち当たり、エラー耐性もついたように思います。

システム構成
```Vue3 + Vuetify3 + TypeScript + GraphQL + Apollo server + Prisma + MySQL + Cypress + Dockercompose```
![vue_project.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819639/a18e2eb9-0ff3-2de7-7039-c3cff7c70db8.jpeg)

#### ECサイト
最後は5つ目はReactとNext.jsを学んで自主制作に取り組みました。
12日ほどで作成しました。

https://oukayuka.booth.pm/items/2368045

https://oukayuka.booth.pm/items/2368019

https://oukayuka.booth.pm/items/2367992

https://gihyo.jp/book/2022/978-4-297-12916-3

上の本で学びましたが
App Directoryを使って自主制作に取り組んだので非常に苦労しました。
あとバックエンド側に(これまたやってみたかったので）Go言語を使ってNext.js apiとgrpc通信を実装しました。
はじめにprotoからコードがうまく生成できずかなり詰まりました。(調べまくって何とか解決できましたが...)
ここらへんの記事を参考にTypeScript　→　Goを実装しました。

https://zenn.dev/hsaki/books/golang-grpc-starting

https://numb86-tech.hatenablog.com/entry/2022/02/12/154459

実践的な実装にしたかったのでStripeを用いてカード決済(テスト)ができるようにしたりgoogle APIを叩いてメールが送れるようにしてみたりもしました。
後は、JWT認証やDevcontainerも使ってみました。
時間的に間に合わずユーザー情報が購入と紐づいてなかったりと課題もありましたが、最後の自主制作で転職前に作ることができず、心残りだったECサイトをそれっぽい形にすることができて本当に良かったです。

システム構成
``Next.js(App router使用)+ React + Golang + gRPC + Gorm + MySQL + OAuth2.0(Gmail apiを使ってメール送信) + JWT認証 + Stripe(クレジット決済、商品リスト管理) + Docker compose + devcontainer``

![Next.js.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819639/037e3c78-fc94-4774-2498-3b70c8a395b7.jpeg)

#### 研修後
研修で様々なことに挑戦し、いろいろ学びました。
その後、社内の人材管理ツールの開発にアサインします。
やはり、当たり前ですが、研修と実務は違うなと感じました。
研修は一人で開発をやってきたので、チームで開発する難しさ、アジャイルという考え方に戸惑う事ばかりでした。
テストのやり方とか全然わかってなくていろいろ教えていただきました。
無能感を楽しみつつ、自分で手を挙げてデザインのたたき台をFigmaで作ったりもしました。
2スプリント回したぐらいで他の案件を手伝ってほしいといわれ、現在は社内で使われるAIプログラムの開発にフロントエンジニアとして参画しています。``Next.js＋Nest.js``などを使って開発しています。
今後は、うちの会社がAzure推しなので、Azureを含めインフラの知識もつけていきたいなと考えています。
TerraformとかAzure DevOpsとか今使っていますが、まだ全然わかっていないのでここらへんも理解できるようになりたいですね。

### エンジニアに大切だと気付いたもの
エンジニアになってみて大切だと感じたものは、技術力よりも「**日本語力**」だと感じました。（技術力も大事だと思っています。）
別に日本語でなく、英語でもいいのですが、要は、探したいものを見つけられる検索ワード選ぶ「語彙力」だったり、チーム開発で必要な「コミュニケーション能力」だったり、公式ドキュメントを読み込む「読解力」だったり、Qiitaやドキュメントをまとめる「文章構成力」だったりと、言い換えれば、**言語をうまく操る能力**が思ったよりも必要だなと感じました。(自分に足りないものばかりだったので余計に痛感しています。)

## 終わり
エンジニアになって人生変わりました。
すべては、きっかけをくれたエンジニアの友人おかげです。
彼には、足を向けて寝ることができません。
彼があんなに毎日楽しいそうにエンジニア人生を謳歌していなければ、エンジニアにならなかったと思います。
会社やメンターをしてくれた先輩たちのおかげで1年でかなり成長できました。すごくいいエンジニア人生のスタートを切ることができたと思っています。
環境が人を作るというのは本当で、毎日穏やかに過ごせています。
前職では、毎日殺伐としていましたから…
心理的安全性についても書いているのでよかったら読んでみてください。

https://qiita.com/sun33/items/c5a946f7dac3bcceb9c0

最後に、未経験がエンジニアになるために必要なことは「**あきらめの悪さ**」だと思います。
エラーが出ても、わからなくても、めげずに調べるあきらめの悪さだったり、何度面接に落ちても、次はこうしようと改善していくあきらめの悪さだったすると思います。
自分は運がよかっただけなのかもしれませんが、あきらめていった彼のように掴まなかったら、掴めるものもつかめません。
未経験駆け出しさんへ、あきらめないで、応援しています。
長くなりましたが、おしまいです。