はじめまして
初めまして!未経験からエンジニア転職を目指して無事内定をいただけたので自分の行ってきたことや反省点などを共有できればと思います。
先に結果や事前準備していたポートフォリオや資格、面接で聞かれた内容などをざっくりまとめてから経緯等をお話できればと思います。
結果を述べますと
- 書類選考は10社ほど
- 通ったのは5社
- 内定が3社(SIerとSES)、決まったので一次面接で辞退が1社という内訳です
ポートフォリオと資格
ポートフォリオ
今回作成したのはタイピングゲームとLPサイト、記憶力ゲームです!
バックエンドでAPI実装もしましたが公開したくないためprivateに(笑)
こちら経緯等を纏めると記事がとても長くなるのでそれぞれのリンクを貼っておきます
README以外にドキュメントも纏めておりますので詳しく見たい方はそちらを参照してください!
- タイピングゲームURL: https://typing-game-eta-lime.vercel.app/
- LPサイト: https://criticaltyping.com/
- GitHubURL: https://github.com/mori-3-desu/
現在も公開中です!こだわりの機能を搭載したタイピングゲームになっておりますので一度遊んでみてください!
資格
- 基本情報技術者
- OSSDB Silver
- AWS SAA
- HTML5プロフェッショナルレベル1と2
計五つ取得しました。基本情報は去年の12月中に取れなかったらエンジニアは目指さないという足切り的な感じで取得し、それ以外はどれも使ってみたいという好奇心から取得しました。
条件面に関して
今回かなり高評価をいただけて年収面は残業代(固定もなし)無しで400万超えです
予想より高くて自分でも驚きました。未経験の中では高い方なのかな?
自発的に学習されている点や主にポートフォリオの点で高評価をいただけました。
未経験から目指す方は事前準備と面接等の対策が重要かなと思います。
面接内容
今回は退職していたのもありますがほぼ聞かれた内容についてざっくり載せておきます。
- 志望動機や転職理由、なぜITを目指そうと思ったのか
- 前職の業務内容
- チームで業務を行った経験
- 苦労した経験とどう乗り越えたか
- AIは活用しているか、どう活用したか
- 資格は何のために取得したか
- ポートフォリオにて技術選定の理由、こだわった機能、経緯等
技術質問はあまりなかったのですが技術選定の理由等は聞かれるので準備する方は説明できるようにしておいた方がいいと思います。
自己紹介
軽く自己紹介します
- 2017年に造園科の高校を卒業し、新卒として自動車業界の製造業に入社
- もともと音楽ゲーム等メインでゲームが好き
- 入社後も怠惰な生活を送っていました(おい
といった感じでプログラミング学習とは無縁な生活を送っておりました。
目指そうとしたきっかけ
もともとゲームが好きで私もユーザーを楽しませれるような、心が躍ったり感動させれるようなゲームを作成したいと思ったのが目指す理由になったのが経緯です。
高校時代にとあるゲームにて全国ランカーになり、同時にいつかのめりこめるようなゲームや達成感を味わえたり感動させられるようなゲームを作りたいと思いましたがこの時はハードルが高いと感じていた為諦めていました。
そのままだらだらと過ごしていましたが家族の病気をきっかけに自分のキャリアを見つめなおすことになりました。やりたいこともやれずに人生を終えてもいいのかという結論に至り、高校時代に諦めていた目標にめがけて走ることを決めました。
今回挑戦でゲーム会社に書類選考を送りましたが見事に落選したのでまずはエンジニアとして実務経験を詰みながら個人でゲームに必要な技術を学ぶという方針を固めました。いきなりC++入るのは難しいと感じたためWeb技術をメインに進めてたからまあ仕方ないなーと思う反面実際悔しかったので現在はC++から勉強しております💦
主な学習ステップ
8~12月まで
目指すと決めたのは去年の8月からなのでまずはIT全般の知識を網羅的に身に付けようと思い、基本情報を学習しました。それと同時に12月までに合格出来なかったらエンジニア適性ではないかなと思い期限を決めて学習を行いました。無事11月に合格し、12月に正式に合格と認められました。
実際に二進数とかアルゴリズムはほんとに難しく、そもそもの数学の知識が殆ど抜けていた為基本情報ではなく数学から学びなおす次第...(笑)
詳しい内容はこちらに書いておりますのでよろしければ参照してください!
この際にあらかたタイピングゲームの設計図が出来上がり、実装に移りました。同時にこの際はバックエンドの開発を省略化するにあたりSupabaseを活用する為にPostgresQLを学びました。OSSDB Silverも学びましたがあまり使わなかったのとすでに構文を忘れてるのは内緒(笑)
というより文法を全部覚えるのはほぼ無理なので調べたり現在はAIに聞いたらよいと思います。どう書けばいいかは想像ついてて理解してるなら迷う時間をスキップ出来るのはでかいので!ただ全部コピーではなく、コードが正しいか設計原則等に沿って実装するとよいかと思います。私は苦労したので1~4月の話に持っていきます。(ほぼコピーでタイピングゲーム進めて現在進行形で苦労してるので設計原則はある程度把握しておくとよいです💦
1~4月(現在)まで
ここで先ほどのほぼコピーで進めた弊害として現在進行形で苦労している話に繋がります。
先ずは一月上旬に無事タイピングゲームを完成させ、公開することが出来ました。ほぼバイブコーディング(AIに任せきりで動くものを作るやり方)で進めたのでAIの力が進化してると同時に基礎力が無いと大変なことになるという事を身をもって感じました。
この時はコードを気にせず動くものを完成させるという優先が働いてしまい、God関数が生まれたりdead codeだらけ、保守性皆無のコードが出来上がったので皆さんは気を付けてください。
この時期にフロントエンドとバックエンド、三層アーキテクチャやMVCなどの設計パターンに少し踏み入れました。その際にフロントで堂々とSQLを書いていた為このあたりでバックエンドも意識し始めました。一つの言語を極めてから別の言語を触ろうと思っていましたが目的を解決するために自然と触ることになるんですよね...
詳しい知見を得るためにUdemyや書籍を活用するのはありかなと思いつつ情報が古い場合もあるので悩みどころ
この時期にチーム開発で必須になってくるGitやGitHub、CI/CD、Docker、Linux辺りを触りですが学びました。こちらは入社までにある程度触れるようにしておきたい。
AIの弊害についての具体的な話はこちらに載せてありますのでよろしければ参照してください!
このあたりでただ動くコードではなく保守性の高いコードを書くことを目指し、ブラウザの挙動を理解した書き方も意識しました。この原則を身に付けていれば新しい言語を学ぶ時でも差分のみ学んで応用できるなーといった感じでした。またCSの知識を学んだ方がいいというのをこの段階で初めて理解した気がします。
学んでよかったこと、後悔したこと
良かったこと
AIを活用しながら作品を作り上げるのはよかったと思います。
また少しですが基本情報の知識が少しだけつながった瞬間もあったのでそこもよかったかなと。
後悔したこと
ここで感じたのは動けばいいやで済ませず、なぜ動くのかの深堀や単語の意味、技術選定等でなぜこれを使うのかのWhyを突き詰める事が大事だなと思いました。
また突き詰めた後に説明するならどうするかまで把握しておけばと思いました。理解をスキップした結果は後々に降ってくるので説明するところまで突き詰めたらよかったなと。(現在も苦しんでます
CS等の裏側の知識は身に付ければ言語使用に縛られずどの分野でも生かせると感じたため、プログラミング言語を学ぶためにまずCSをある程度身に付けて土台を作るべきだなとも感じました。
終わりに
現在AIの発達が速いので情報がすぐに古くなったり勉強法が変わるけど変化に楽しめるかが重要だなと思いました。勉強しなきゃではなく好奇心が働くかといったマインドが無ければこの先キャッチアップもかなり厳しくなってくるかなとも思いました。
自分は変化を楽しめるタイプなのでこのまま目標に向かって走っていきたいと思います。
ここまで読んでいただきありがとうございました!