この記事について
24歳(2019年末)でWebエンジニアの転職を決意し、未経験から自社開発企業への転職を成功させた道筋を書いた記事となります。
私と同じように技術力のない未経験エンジニアの方に先にお伝えしますが、毎回志望理由を考えて200社近く応募して受かったのが1社のみです。それくらい現在の未経験からエンジニアへの転職活動は厳しいものとなっております。
追記
記事を評価してくださった皆さんありがとうございました。
目次
1.僕のスペック
3.転職活動に使用した自作のポートフォリオ&GitHubのリポジトリ
4.学習したこと一覧
6.転職活動方法
7.面接対策
10.最後に
僕のスペック
・阪神淡路大震災が起こった年に関西で生まれた男の子
・小学生時にイジメられたこともあり、自己肯定感が地獄の底に着くぐらい低い
・関西のTHEそこそこの大学(産近甲龍)
・海外勤務に憧れて商社に新卒で入社する
・商社マンのくせに口下手
・その商社を8ヶ月で退社
・退職から転職成功まで約10ヶ月間無職のクソニートでした
内定をもらうまでのざっくりとした流れ
2020年2月~4月:某プログラミングスクールで勉強を始める。
↓
2020年5月〜6月:転職サポートを受けながら転職活動をするが、内定を貰えたのはSESのみ。
↓
2020年6月〜8月:モダンな技術を独学で学習し、ポートフォリオを1から作成し直す。
↓
2020年9月〜10月:200社近く応募してようやく1社から内定を頂く。
転職活動に使用した自作のポートフォリオ&GitHubのリポジトリ
https://fantra.net (公開停止しました)
学習したこと一覧
ポートフォリオに導入したもの
・Ruby 2.6.6, Rails 6.0.3.2
・Javascript・jQuery
・Docker,Docker-compose(開発環境)
・AWS/本番環境(EC2, RDS, VPC, EIP, Route53, IAM, S3)
・CircleCI(テスト・デプロイ)
・Amazon Linux
・RSpec(テストフレームワーク)
ポートフォリオに導入できなかったが、勉強したこと
・APIモードでの開発
・Vue.js
どのように勉強をしたのか
Rails・Ruby
①スクールのカリキュラム
愚直に一生懸命カリキュラムを1日に何時間もやっていました。反省としては1周した後はもっと他のことにチャレンジすれば良かったと思います。
②プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで
プログラム初心者が中級者、上級者になりたいときに読む本とあり、どのようにしてrubyのコードを書く事ができるのか分かり易く書かれており、progateの学習を終えているような方にオススメです。
③codewars・paiza
一定の確率で自社開発企業の転職にあたってコーディングテストがありましたので、その対策として学習しました。
Javascript・jQuery
①スクールのカリキュラム
②スラスラ読める JavaScript ふりがなプログラミング
Javascriptの基礎中の基礎を学ぶために、コードについてどのように記述されているのかバカ丁寧に書かれた本です。
③JavaScript学習ロードマップ
JSの歴史〜実際のコーディング〜さらなる発展まで動画形式で順序よく学べて頭に入りやすいです。
Docker,Docker-compose(開発環境)
①【Rails】Rails 6.0 x Docker x MySQLで環境構築
色んな記事を参考にして、やっと上手く行けたのがこちらの記事でした
②Docker/Kubernetes 実践コンテナ開発入門
最初は「訳も分からずできちゃった」状態だったので、色んな記事でお勧めされていた書籍を購入。手を動かしながら学んで、薄ら理解した上でポートフォリオに導入するようにしました。
③Docker ドキュメント日本語化プロジェクト
困ったときの公式ドキュメント
AWS
①スクールのカリキュラム
スクールのカリキュラムは淡々と「AWSの導入の仕方」というHOWの部分でしか学習できずに、なぜEC2が必要なのか?などのWHYの部分を理解していませんでした。
②キタミ式イラストIT塾 基本情報技術者 令和02年 (情報処理技術者試験)
インフラあたりの勉強にあたって調べても用語が理解できなかったので、Web知識の基礎の基礎を学ぶためにざっくり読みました。
③図解即戦力 Amazon Web Servicesのしくみと技術がこれ1冊でしっかりわかる教科書
②のキタミ式イラストIT塾 基本情報技術者 令和02年を読んだおかげで、理解が早く進んでそれぞれのサービスの役割を理解できるようになりました。
CircleCI
①Qiitaの色んな記事
すでに導入された方の記事を真似しまくってとりあえず動くものを作ることを目指してクソほどエラーを出しながらやりました。
②CircleCIのドキュメント
困ったときのドキュメント
③自動テスト〜デプロイ
こちらは私が書いた記事となりますが、色んな方の記事を参考にした上でようやく成功した記事となっております。
Linux
新しいLinuxの教科書
ウェブサーバーやアプリケーションサーバー、データベースサーバーはLinuxで動いており、それらを使用する上である程度Linuxを分かっておいた方がいいと思って 「新しいLinuxの教科書」 で勉強を始めました。おかげでVimの操作に慣れたり、自作のシェルスクリプトを書く事ができて開発の効率をあげる事ができました。
便利なキーボード操作
開発を進める上で開発効率を上げれくれたLinuxのキーボード操作をまとめましたので、ぜひ参考にしてみてください。
WebAPI
Qiitaの記事を参考
こちらどの記事を参考にしたのか忘れてしまいましたが、以下のような感じで検索すると色々出てきたと思います。きっかけは転職の選考においてWebAPIの作成をコーディングテストとして出してきた企業があり、全く分からなかったので焦って勉強を始めました。
Restful api の概念
Railsでのapi作成方法
Vue.js
Vue.jsのツボとコツがゼッタイにわかる
これでざっくりとVue.jsの理解を深めました。今後の課題はRailsでの開発。
転職活動方法
①スクール経由
スクールから紹介された企業をひたすらに受けるような形で、面接の練習程度にしか思っていませんでした。
②wantedly
未経験エンジニアの方が転職活動において最も使われているサービスでは無いでしょうか?
有料登録をして企業へ毎回志望理由を書いてメッセージを送っていましたが、全くダメでした。恐らく企業も応募が多すぎていちいち見てられないようなところもあると思います。
③Green
wantedlyで見つけられなかった企業もよく掲載されており、恐らく10社程応募して書類が通ったのは2社のみでした。
④ホームページから直接エントリー(オススメ)
当たり前ですが、これが一番返信率が高かったです。私の場合はこれで内定を頂く事ができました。
毎回志望理由を考えるのは時間がかかってしまいますが、やはり直接応募するのは効果的だと思います。
やり方としてはwantedyやGreenで見つけた企業のホームページから応募するような形です。
※追記(2020/10/07)
@koji9412 さんからのコメントで以下のように教えて頂きました。
採用側もするのでこれはとても分かりますね。
エンジニア採用に予算的に前向きではなくても人は欲しい、という会社さんも結構あると思うので。
ホームページからの直接エントリーは予算がかからず、転職エージェント経由で応募した人と同じ実力で天秤に測られた時にだいぶ有利になりそうですね。
ご教示ありがとうございました!
面接対策
①面接で聞かれる質問
こちらに関しては調べたらいくらでも出てくるので、ググってそれぞれの質問に対して答えられるように準備をするのが大切です。
雑食系エンジニアサロンをやられている勝又さんが教えてくださる対策方法を参考にするのもオススメですが、 丸々同じことを真似されている方が何人もいらっしゃるようなので、しっかり自分の考えをまとめた上で面接に望まれるのがいい と思います。
②面接が苦手な人へ(私は苦手です)
面接に対して苦手意識がある方は、色んな企業を受けて面接慣れしていくだけではなく、転職エージェントやMENTAというサービスを使って、実務で人事をやられているような方に模擬面接をしてもらい、客観的な視点からの評価・アドバイスを頂くのも大切だと思います。
③「○○って知ってる?」系質問
これに関しては「文字だけ見たことある」では説明する事ができないので、「自分の言葉で薄くでもいいので説明できる」 ことが大切だと思います。
幸いにもこーいう質問のためにコツコツとWeb関連やRailsに関連する言葉などをQiitaにまとめていました。
以下がその記事のURLになりますので、参考にしてみてください。
選考において評価された点
①自走力
スクール卒業後も独学で学習を続け、 Qiitaで継続的に学んだことを投稿して60以上の記事を書いていました。 学んだことを積極的にアウトプットする姿勢を評価してもらい学習意欲がある人間だと思ってもらえました。
②モダンな技術への挑戦
AWS,Docker,CircleCI,Railsの最新バージョンを使用している点です。現場でも使用されているような技術を独学で学んでポートフォリオに導入しているのを評価されました。
③印象的なUIデザイン
直感的に使用する事ができて、ユーザのことを考えながら実装している点を評価してもらいました。
ちなみに美術的な才能もないのになぜこんな評価をいただけたのかというと、実際に運用されていて使いやすい様々なWebサイトのデザインを模倣したからです。
ポートフォリオのトップ画面での第1印象も重要な要素みたいなので、美的センスに自信がない人はドンドン模倣してポートフォリオのデザインをカッコよくしてください。
転職活動や勉強での反省点
①ポートフォリオのブラッシュアップ
ポートフォリオを完成させたことに満足してしまい、リファクタリングや機能の追加を全くできませんでした。
ほとんど見られませんでしたがGitHubでコーディングを細かく見てくる企業もあり、汚いコードのままであったり、更新頻度が低い点でマイナス評価をもらうこともありました。
なので、 繰り返しで記述しているところはないか?もっと効率的に記述できないか? など、ポートフォリオ更新を心がけるべきでした。
②自分が書いたコードの理解
ポートフォリオのブラッシュアップをサボったこともあり、長い時間それぞれの機能のコードを見ないと自分でもどのように記述して動作しているのか忘れてしまっている事がありました。エンジニアとして再現性も大事になってくると思うので、自分で書いたコードはどのようにして動いているのかしっかり理解するようにしましょう。
③退職してからプログラミングの勉強を始めてしまった事
収入が0になった状態での不安感は精神面にかなり響きます。退職する前からそもそもプログラミングに向いているか、勉強のモチベーションが続きそうか、などを確認するためにも職がある段階から勉強をしましょう。
スクールでの勉強だけでインスタント方式に「なんちゃってエンジニア」として転職活動をしなければよかった。
④コーディング力不足
ある一定の確率で選考にコーディングテストがあります。その対策を怠ってしまった事です。
対策としてはpaizaやcadewarでコーディングを学ぶのをオススメします。codewarでは他に書かれた方のコーディングを閲覧する事ができて、かなり参考になります。
⑤大量生産型の未経験エンジニアとなってしまった
転職活動においてはいかに 他の未経験エンジニアと違うのかをアピールする事が大切だと思います。 私の場合であればQiitaのアウトプット数がそれに当たると思います。
ただ単にポートフォリオを完成させて転職活動を始めるのではなく、自らが主導となって勉強会を開催したり、もくもく会に潜入して横の繋がりを増やしたり、SNSに毛の生えたポートフォリオではなくて自分が感じた問題を本気で解決しようと思って作成したポートフォリオであったり、他の未経験エンジニアとは異なる経験やアウトプットを通じて、企業へアピールすると目に止まりやすくて本気度が伺えるのだと思います。
やはり違ったことをしてアピールしていかないと、ただの未経験エンジニアAさんとして埋もれてしまい、面接にすら辿り着かないのだと思います。今後転職活動をされる方はぜひ色んな行動をとるようにしてもらいたいです。
最後に
私はやっぱりそもそもの能力もそんなに高くないので、転職活動では苦労した分類に入ると思います。
落とされてまくると疑心暗鬼になってしまい、不安になって寝付けも段々悪くなりました。そんな時は日常的に運動をされていないような方でもランニングや筋トレを始めてみてください。本当にストレス発散になります。
あとは瞑想ですね。意外とこれにハマり、頭をすっきりさせる事ができました(笑)
この記事の冒頭に伝えた通り、私は自己肯定感が低くてかなりネガティブ体質です。「なぜかいつも自分だけタイミングが悪い」「何かしらのトラブルに巻き込まれやすい」などなど。。。数えたらキリがないですよね(笑) そんな時は 「ネガティブ体質」 ではなくて、 「主人公体質」 であると思えば目の前にある事象が変わって見えるかもしれません。マインドの部分に関しては人それぞれだと思うので、自分に合った方法で鼓舞してあげてください。
コロナ禍での転職活動は厳しいとは思いますが、本当にエンジニアになりたい方は技術向上をさせながら目標を叶えてください。心の底から応援しております。