未経験からWebエンジニアになるまでにやったこと

<h1>1.はじめに</h1>
今回、Web業界未経験からWebエンジニア（バックエンド）として自社開発企業から内定を頂けたので振り返りとして、

①どのように学習したのか
②どのように転職活動を行なったのか
③面接対策で行っていたこと

といったポイントで書きます。

私のように0からエンジニアを志している方に対してお伝えしますが、<b>私は30社ほど選考を受けて自社開発企業から内定を頂けたので、未経験やコロナ渦であってもしっかりとアピールできる材料を整えれば転職は可能</b>だと思います。

<h1>2.私について</h1>
少しだけ私について書きます。

・アラサー男性
・コーディング経験は実務でほぼなく、サーバー構築やインフラ周りの知識もない状態
・Sierで3年、小売業で1年、SESで1年という異色の経歴


<h1>3.学習開始から内定までの流れ</h1>
2021年9月~2021年10月:独学でポートフォリオ作成
↓
2021年10月末:SESを退職し、転職活動へ切り替え
↓
2021年11月~2022年1月:ポートフォリオを用いながら転職活動
↓
2022年1月中旬:内定

<h1>4.ポートフォリオやGitHub</h1>
下記の記事でまとめているので良ければ読んでみてください。
使用技術やインフラ構成図の記載もあります。

https://qiita.com/t_komiya/items/951eee6a57c76e4bf54b

<h1>5.学習方法</h1>
前提として、私の場合はプログラミングスクールを使用しないで学習を行なっていたので独学になります。

<b>Docker</b>
Qiitaや技術ブログで実際に構築されているものを参考にしていました。
ただ、全量コピーして動かすだけですと理解できないので書籍等で補完した方がいいと思います。

・構築例の記事
https://qiita.com/Kyou13/items/be9cdc10c54d39cded15

・Docker日本語ドキュメント
https://docs.docker.jp/

<b>Ruby,Rails</b>
基本的には公式の情報を用いて学習を進めていました。
個人の技術ブログも参考になるものも多いのですが環境やバージョンの違いによっては使えないこともあるので公式が最強だと思っています。

・Railsドキュメント
https://railsdoc.com/

・Railsガイド
https://railsguides.jp/

<b>AWS</b>
AWSは機能がかなり多岐にわたるのでとりあえず触って感触をつかんでいました。
また、AWSは無料使用枠が設けられているので結構、ガチャガチャいじっても問題ないです。

・AWSハンズオン
https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-hands-on/

・Udemy
https://www.udemy.com/share/101WKk3@u9sFXV65F_-a2xSUGky3qiySR3zcnMAXRfRAxoMlaRnEsRF-LEXXZwQi1XHSXs4z1w==/

<b>CircleCI</b>
Qiitaでわかりやすい記事を書かれている方がいたのでそちらを読んだ後に、
公式リファレンスなどを読んで実装しました。

・CircleCI説明
https://qiita.com/gold-kou/items/4c7e62434af455e977c2

・CircleCI Docs
https://circleci.com/docs/ja/2.0/getting-started/

<b>コーディング</b>
これらはコーディングテスト対策で利用していました。
企業によって入社時にコードを書くこともあるのでアルゴリズムの考え方を鍛えるにはちょうどいいです。
ただ、AtCoderでは数学的な知識を求められる事があるためpaizaの方がとっつきやすいとはお思います。

・paiza
https://paiza.jp/challenges

・AtCoder
https://atcoder.jp/?lang=ja

<h1>6.プログラミングスクールは利用するべき？</h1>
結果から言うと、<b>「利用してもいい」</b>と思っています。
というのも<b>お金を払えば環境を買える</b>からです。

プログラムを独学で進める場合には「モチベーションの維持」、「学習方法や順序」といった技術以外の部分を自分でなんとかするしかなく時間もかかりますし正直、ハードだと思います。

ただ、プログラミングスクールに入れば近い目標を持った人たちが既に集まっていて、学習する環境が整っているので始めやすい状態になっています。

一例として下記に独学を通して私の感じた【メリット】、【デメリット】という形で記載してみました。

【メリット】
・カリキュラムが用意されている為、何をすればいいかわからない状態になりにくい
・周りの受講生がいる為、モチベーションの維持がしやすい
・メンターがつくため質問が比較的しやすい

【デメリット】
・メンターのレベルが担保されていない
・金銭的にかなり負担が大きい
・オリジナルサービスを作成する際にスクールの教材をベースとすると量産型になりやすい

<h4>結論</h4>
「今すぐに学習する環境が欲しい方」や「一人ではモチベーションの維持がしにくい」、「エラーが出た時にどうすればいいかわからない、考え方がわからない」という状態であれば0を1にすることは出来ると思うのでプログラミングスクールは利用してもいいと思っています。

<h1>7.ポートフォリオは必要？</h1>
結果から言うと<h4>必要です！</h4>

理由としては、
・未経験でいくらやる気をアピールされても物がないので企業側として信用できない。
・ポートフォリオを通してある程度は技術レベルが測れる。
・自走能力のアピールになる。

といったように<b>未経験でもポテンシャルを示す材料になります。</b>
ポートフォリオがないとそもそも自社開発企業のような人気の企業に入る事が難しいので、
自社開発を志す場合はほぼ必須となります。

<h1>8.転職活動で利用したサービス</h1>
転職活動をする上でいくつかサービスを利用していたので紹介して行きます。

<b>①Wantedly</b>
自分の経歴や思考性、作成したポートフォリオを掲載するのに適していると判断したので使用していました。
スカウトも誰もが知っているような大手企業からきたりするのでプロフィールを充実させておけばチャンスはあります。
なにより、「話を聞きに行きたい」ボタンを押すだけで応募できるので気軽に利用できます。

また、自分から申し込んだ場合の結果としては<b>返信率は35%程度</b>でしたので未経験、微経験の方がメインで使用するのは厳しいと思います。

<b>paiza転職</b>
これはpaizaのスキルチェックを使用していた結果、スカウトが来るようになったので使用していました。
スキルチェックがBランク以上になると企業からのアクションが増え、スカウト件数も激増したのでwantedlyと合わせると転職活動としては十分な求人の量が確保できていました。

コードベースで企業が判断してスカウトをくれるので内定につながるチャンスは多いと感じます。

<b>ワークポート</b>
今回、転職サイトは使用する気はなかったのですがエージェントを経由した方が求人情報の収集は効率的だと考え、条件を絞って紹介してもらっていました。

私は今回、「Web未経験」、「バックエンド志望」の条件で求人紹介をお願いしていましたが、
<b>未経験でのバックエンド側の取り扱いはそこまで多くないのとSESや受託が多くなってしまう</b>ことは説明をされていましたので問題ない方は利用してもいいかと思います。

エージェント対応としてはネットに書かれているほど悪くはないですし、求人内容も中小が多いので大手志望でなければ問題ないです。

ただ、求人内容から明らかにブラックそうだなというところはあるのでそこは気をつけてください。

<b>vorkers</b>
転職サイトではないのですが在職中、離職済みの方の企業への口コミが掲載されているので判断材料として使用していました。

<h1>9.面接対策</h1>
私が実際に面接対策として行っていたことを記載しておきます。

<b>①自分の考えを説明できるようにする</b>
中途採用となると新卒採用のような形式的な質問は少ないです。
その為、質問単位で回答を用意しても企業によって求められるものが違うので回答のテンプレートを作成するといったことはしていませんでした。
私の場合は<b>どのような質問が来ても回答できるように「私ならこう考えます、こう解決します」と言う考え方を鍛え、説明出来る</b>ようにしていました。

<b>②逆質問を考える</b>
面接に望むにあたって、逆質問の時間は必ずあると思いますがこれが思いつかないことがあります。
そんな時に私の考え方として下記を軸に考えています。

<b>・その会社の何を知りたいのか</b>

私としては「会社として何がしたいのか」、「上層部の考え方はどうなのか」という部分をかなり重視していたためそこをクリアにするための質問を多く用意して面接に臨んでいました。

<b>③企業の現状を把握する</b>
求人を出しているということは何かしらの課題がある、または今後、何かしらの課題が発生し得る状況だと考えられます。
なので現在、企業がどういう課題を抱えているかを考え、それを自分が入社することでどのように解決できるのかを説明できるようにしていました。

例えば、「ユーザーからの要望でサービスのUIを改善したいけど、出来る人がいない」場合
・ユーザーがどの部分に対して不満を持っているかを確認。
↓
・現状の技術と工数からどのような実装を行うかを考える。
↓
・実装後にどのように課題が解決されるかを想定する。

私ならこうしますということをサービスで伝えて、具体的な話まで出来るとかなり印象が良かったように思えます。

<b>※面接が苦手な方へ</b>
それなりに面接の回数はこなしたので経験則で効果のありそうなものを書きます。

<b>・数をこなす</b>
カジュアル面接やエージェントの方に模擬面接をしてもらい人と話す行為そのものに慣れてしまった方が早いと考えます。
また、客観的にどう見えているのかを確認するために面接後にフィードバックをいただくのもとても参考になったのでおすすめです。

<h1>10.選考で評価されたポイント</h1>
<b>①セルフスターターな点</b>
技術的な部分では経験がないものの、ポートフォリオの使用技術についての説明や技術選定理由、インフラ構成についての根拠を説明できている事が自ら学習し、思考できると判断され評価していただけた。

<b>②物事の捉え方、考え方</b>
問題に対して、どのような技術を用いて、どのような改善を行えば良いかと言ったことを実際のサービスに基づいて説明したことがプラスに働いていました。

<b>③入社後のイメージがしやすかった</b>
入社後にこの人はどういう風に働いてくれるんだろう、どんな利益を出してくれるんだろうというイメージを明確に持ってもらえたようなのでその点で評価していただけたようです。

<h1>終わりに</h1>
最後まで読んでいただきありがとうございました。
今回、私は転職するにあたって学習開始から5ヶ月ほど時間がかかりましたが、未経験から志したのを考えると妥当な期間かなとは思います。

正直、ポートフォリオを作成しても企業から見向きもされないこともあり、自分では必死に実装をしていても現役の方から見たら技術レベルが低いと思われることもあり、実力不足を感じるタイミングも多くありました。
ただ、そんな中でも技術面以外の考え方やマインド、自走力を評価してくださる企業も必ずいます。

私は結果が芳しくない時期が続き、精神的に沈むこともありました。
それでも、どこかで好転すると信じて転職活動を行った結果、自分の志望の企業に内定をいただく事ができました。

私のようにコロナ禍でWebエンジニアを志して転職を進めている方も多いと思います。
コロナ禍で焦る気持ちも痛いほどわかりますが妥協して適当な企業に入社しても早いうちに辞めたい、転職したいとなってしまうため諦めずに志望の企業に入ってください！
皆様の努力が実を結ぶことを祈っております。