【未経験】SIerからWeb系エンジニアに転職するまでの流れ

この記事では、SIer出身の私がGitとGithubの違いもわからなかった未経験から
Webエンジニアに転職した理由や手順を記録に残しています。

未経験から転職するにあたってQiitaで多くの転職記事を参考にさせていただいたので、自分も誰かの役に立てばと思い投稿しています。
転職活動の期間で言うと2020年の1月〜4月にかけてくらいです。

#目次
[自己紹介](#自己紹介)
[転職した動機](#転職した動機)
[転職の軸を設定](#転職の軸を設定)
[実際の転職活動](#実際の転職活動)
[ポートフォリオについて](#ポートフォリオについて)
[転職活動を終えて思ったこと](#転職活動を終えて思ったこと)
[最後に](#最後に)

#自己紹介
- 新卒でそこそこ大きなSIer企業に入社し、主にC、Javaを扱ってきた入社３年目（設計〜本番リリースまでを経験）
- Web系のスキルは研修や学生でhtml少しかじったくらい
- 大学は、情報系でJavaやVBA、機械学習をやったりしてました（学部卒）
- 趣味はキャンプやライブにいったりしてます

#転職した動機
転職したいなと強く思い始めたのは、入社２年目の春からです。
理由としては、いくつもありすぎるのですが。。。

####ITで社会に貢献できている気がしなかったため
これは、扱っている業務システムが完全なバックオフィスシステム（課金や顧客、契約管理など）であり、自分の作成した機能が目に見えないことやエンドユーザーが見えないためシステム開発にやりがいを感じられなくなってしまいました。
バグなしで納期通りに納品し、初回稼働もバッチリでも誰からもFBはありません（リーダーは顧客からありがたいお言葉をいただいているのかもしれないけど）。
リリース作業を何度か経験したのですが達成感を得られず、リリース後の障害発生で本当にリリースされていたことを知るような感じでしたw
　

####職場依存のスキルであったため
私が携わったシステムがSIerあるあるの15年以上前から機能拡張を重ねている大規模システムであるため、基本的に身に付くスキルセットが2000年代前半から進歩していませんでした（Ex フレームワークがめっちゃ古い、開発機がWin7）。
レガシーな言語を扱うことやシステム全体を理解しづらいこと（システムの全容を理解してる方はいませんでした）、この部署を離れたら使えない知識が多いことということが働いているうちにわかりました。


プログラム作成は、大きく５パターンくらいしかないため（DB抽出など）、誰が書いても大きく差が出ないようなサンプルコードがあり、その中身を変えていくというような製造手法でした。また、設計に関しても既存の処理を真似ることが多く、このままだと会社に依存したスキルしか身につかないことを危惧しました。

さらに２年目の中盤からマネジメントの業務にシフトさせられたため、プログラムを書きたい自分にとっては早すぎると思いました。

レガシーな環境、開発スキルというより身につくのは業務知識ばかりというのが自分の中でギャップに感じました。

今の環境でずっと働いていくと決めているのであれば問題はないと思いますが、人間やりたい事は変わってきますし、メンタルダウンしてしまった際には手遅れになると思いました。（今はまだ20代で転職できると思いますが、40歳くらいになってからメンタルやられたら嫌でもしがみつかなくてはいけない気がしました。）



####なくなるモチベーションと高まる反骨精神  
上二つは面接でも話しますが、話せない理由というのもあって。。。



愚痴、ため息、独り言、咀嚼音ばかりのおじい、おばあに囲まれて、生産性のない作業、日の目を見ないドキュメント作成をし時間をお金に変える作業がとても苦痛でした。（もちろん、優しいおじさんもいましたよ）


IT企業であるものの、2000年代前半から扱っている技術は変わらなかったり、会社として在宅勤務やオフィスカジュアル制度があるが、配属先では使えなかったりとモチベーションを削がれる環境にありました。

また、これは私の部署特有かもしれませんが、チームに若手がいない、若手は異動 or 退職するが、異動してくるのはおじさんばかり、協力会社の人も4,50代ばかりのため気軽に質問しづらい、独自のルールを押しつけられることもあったりしました。



そのほかにも若手になぜか外部ディスプレイ与えない、ガチパワハラおじいがいた、100人規模での忘年会準備などなど理由はありますが。。。



#転職の軸を設定
元々、ITで物づくりをしたいと思い就職したため漠然とWebエンジニアがいいのかなと思い、自分の中で転職の軸を決めました。


1.ユーザーからFBを得られる、自分の携わった物が目に見える形になるようなシステム開発ができる仕事。
2.会社に依存しないスキルを身につけられる仕事、環境であること。（できればモダンなスキル）


この２点を軸に企業選びを始めました。


#実際の転職活動
いよいよ本題、ここからどのように内定獲得まで行動したか書いていきます。
ぜひ、一例として参考にしていただければと思います。

##1〜2週間目
１ヶ月目にやったことを列挙すると

- 転職エージェント登録
- 履歴書、職務経歴書の作成
- 自己分析
- MacBook Airの購入
- どの言語をポートフォリオに使うかの選定
- エンジニアアカウントとしてTwitter、Qiitaなどのアカウント作成
- Wantedlyの開設


自分の市場価値を知るため、転職エージェントに登録＆面談
エージェントの方はとても頼りになる方で、以下の内容を人に話すことで自己分析を深めることができました。

- 何で転職したいか
- 具体的に何をしたいか、この転職での自分の中での成功は？
- 転職の軸

あと、個人的にすごく役に立ったのがこの本「[完全SIer脱出マニュアル](https://www.amazon.co.jp/完全SIer脱出マニュアル-池上純平/dp/486354281X/ref=sr_1_1?__mk_ja_JP=カタカナ&crid=3UAFQ4HYWULC5&keywords=完全sier脱出マニュアル&qid=1582951112&sprefix=完全s%2Caps%2C305&sr=8-10)」です。
初見の人は怪しいタイトルと表紙だと思うかもしれませんが、SIのあるあると転職したくなったときのための準備が詳しく書いてあります。著者はしがないラジオの池上さんなので説得力はあるかと思います。今は転職を考えていない人も一度読んでみることをお勧めします！
私は、基本この本の通りに転職活動をしましたね

##1〜2ヶ月目
エージェント方によると未経験だと、ポートフォリオがないと厳しいとのことだったため、Ruby on Railsを学習することにしました。言語の選定理由もSIer脱出マニュアルに書いてあります。
ただ、Railsで未経験の募集は体感少なく感じました。(PHPのが多いかな？）

お世話になった教材は

- Ruby on Railsチュートリアル
- Udemy
- プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで
- 1冊ですべて身につくHTML & CSSとWebデザイン入門講座

とかです。

学習の順番はUdemyでGitやRuby、CSSの基礎を一通り学び、教材通りにTODOアプリを作成し、Githubにコミットしていました。
早くポートフォリオの作成に取り掛かりたかったため、早めにRailsチュートリアルに入りCSSや応用課題を行いながらオリジナリティを高めていきました。この時はできるだけ毎日をコードを書くようにとできるだけGithubを緑色にするように心がけていました。

この時はにわかなんでMacBookでAWSを開発環境にコーディングしてるという自己満に満たされてました。


このとき同時に、興味のある企業にエントリーして面談やら書類選考してもらってました。（[後述](#転職活動を終えて思ったこと)）

##3〜4ヶ月
私が応募した企業は約10社ほどだったと思います。
応募した企業は基本的にWeb、モバイルアプリ開発ができる自社開発or受託開発の企業に絞りました。
SESでは俗にいう案件ガチャでレガシーな環境を引いてしまう恐れがあるため応募していません。

- 転職エージェント  
  応募：7〜８社  
  書類通過：5社  
  1次面接通過：2社  
  内定：１社<br>  
- Wantedly  
  スカウトorカジュアル面談：4社  （1社しか応募してないです）   
  書類通過〜内定：1社  

この中で、Web（Ruby on Rails)とモバイルアプリ（Swift、kotlin）の受託開発のできる企業を選びました。(Wantedlyでの内定の方です）
最終的な企業選びの決め手としては、
- エンジニアとして手を動かして成長できる環境があるか（未経験でも大丈夫かどうか）
- 作っているサービスが面白そうか、働いている方が楽しそうか
- 将来的に自分のマーケットバリューを大きくすることができそうか
と言ったところを重視しました。

#ポートフォリオについて
私が作ったポートフォリオの機能は

- CRUD機能
- メールでのアカウント認証とパスワードリセット
- ユーザー間のフォロー
- いいね機能
- ページネーション
- AWSのElstaticBeanstalkを用いたデプロイ（未実装：時間が足りず。。。）

となります。

機能としては全然大そうなもんではありません。
本当はAWSでデプロイしたかったのですが、うまくいかなかったため、Herokuでデプロイしていました。

ポートフォリオ作成で気をつけたことは

1.README.mdを詳細に書きました。
実際面接官がコードじっくりみる事はないと聞いていたため使った環境や、実装機能、意識したことを端的に書きました。
ユーザーIDを入力せずにテストユーザとしてログインできる機能を実装したかったけど、実力が足りず。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/484337/5ba48fbd-6c9d-288b-901e-28009b27b3e2.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/484337/72654b41-aa94-8c4c-d951-28a376667366.png)

2.チーム開発を意識してGithubのissueで課題を管理しました。


面接にはこのアプリを作った背景や押しポイントをパワポにして持って行ったりしていました！何でこのWebアプリを作ったのかとかから説明すると面接官が食いついてくれることもありました。

#転職活動を終えて思ったこと
- <font color="Blue">書類選考は全然通らない</font>
これは素直にメンタルに来ました。面接にすらたどり着かない。。
さらに現職がしんどい時に不合格の連絡が来ると仕事のやる気はさらになくなりしんどかったです。休日にしっかりリフレッシュできるようにすることが大切だと思いました。

- <font color="Blue">Twitter、Wantedlyは登録し得</font>
これが一番びっくりしたのですが、Twitterに毎日学習の記録を書いたり、エンジニア像を書いたりしていると企業の方から直接DMが来てお話を聞くことができました。
Web系は企業の数もとても多いため、このような巡り合わせで企業を知れる事はとても良かったですし、相手もこちらがどういった勉強をしているか把握した上で声をかけてくれるのでやりやすく感じました。  
Wantedlyもしっかりプロフィールを埋めておくとプレミアムに登録せずとも何社からかスカウトをいただくことができました。これらはだいたいカジュアル面談のため、話を聞いて合わなければ断ってもいいため積極的に活用していました。ウォンテッドリースコアは70くらいだったかと思います。

- <font color="Blue">コロナウイルスでの対応 </font>
私はギリギリコロナウイルスの影響を受けずに転職活動することができました。
ただ、この影響で面接を受ける企業の対応（オンライン面接）や勤務形態なども聞きやすくなり、一つの判断軸にもなりました。<br>
会社としてどう言った方針をとっているのかは、転職する上で重要だと思います。
今回のコロナウイルスでの影響も踏まえて、リモートで仕事のできる可能性のあるWeb系エンジニアになりたいと思いました。（自分の身を守るために）<br>
ちなみに３月末の自粛期間に課長から飲み会に誘われたり、そこで在宅はスーツ着ないとやる気出ないという理由でできないことを知り、退職決意の背中を押してくれました。<br>



- <font color="Blue">転職する気が"今"はなくても準備はしといてもいいかも</font>
Webエンジニアへの転職は結構時間かかりました。
ポートフォリオの作成、職務経歴書作成、面接対策だったり、企業によっては3週間上げるからWebアプリ作ってきてくださいという課題選考もありました。
なので、ちょっとでもWebエンジニアになりたいと思う方はGithubのアカウントを作るなり、Udemyで講座を買うなり、完全SIer脱出マニュアルを読むなりしてみるといいと思います。

- <font color="Blue">意思決定は難しい</font>
自分は、内定がもらえるまでがむしゃらに勉強とか対策をして転職活動をしていきました。ただ、いざ内定が出ると迷いが生じました。
ある本で、ほとんどの人の人生における最初の意思決定は「転職」と書いてありました。大学や就職先をこれまで自分で選んできたつもりでも、それはレール上に過ぎない。意味のある意思決定は何かを捨てることを伴う意思決定であり、そのような意思決定を今までしたことがないため、不安や迷いが生じるようです。<br>
そのため、転職活動を終えてみて「転職の軸」をちゃんと決めることは非常に重要だと思いました。また、内定出てから転職するかを考えるのではなく、最終面接前ぐらいからその会社で働くイメージを持てるか考えておいた方がいいと思いました。（←これが難しいんですよね。。。不安要素、しない言い訳なんていくらでもあるから）

- <font color="Blue">自己分析について </font>
自己分析は入念にやりました。もともと自己分析は嫌いですが。
その時のやり方としてはShowroomの前田さんが書いている[メモの魔力](https://www.amazon.co.jp/メモの魔力-Magic-Memos-NewsPicks-Book/dp/4344034082/ref=sr_1_1?__mk_ja_JP=カタカナ&crid=1NPBZIR8W5RM4&keywords=メモの魔力&qid=1582956314&sprefix=メモ%2Caps%2C214&sr=8-1)を読みながら進めました。
これもすごく参考になって、じゃあ、この転職で何を満たしたいのか？将来、自分はどうなりたいのか？そう思った原因は？と言った自己分析のやり方が詳しく書いてあります。
転職の面接でよく聞かれたのが以下の内容で結構深いところまで聞かれることがあったので対策は必須かと思います。
    - 今の会社に入った理由は？
    - 大学を選んだ理由は？
    - 今までで嬉しかったこと、挫折したこと
    - 5年後、10年後のキャリアプラン
    - 転職の軸
<br>
<br>


- <font color="Blue">職務経歴書に書けることがないんじゃ </font>
職務経歴書は本当書けること少ないです…取得した少ない資格とJava、Cの開発経験くらいです。
これまでの「完璧な手順書や報告書を作成できるようになった」や「社内ツールの使い方をマスターしました」と言ったことは当然書けないです。
全く役に立たないことではないですが、もう少し汎用性のあるスキルを身につけねばと思わされました。


- <font color="Blue">継続してキャッチアップすること</font>
面接官の方はポートフォリオの中身も重視しますが、そこよりも継続して学習できるか、エラーが発生した時どのように対処しているかと言った自走力や問題解決力もみてることが多かった気がします。
私の場合は、入社してからC言語をキャッチアップして行ったことやプライベートでRailsを学習している点をアピールしたりしました。また、これもTwitterなのですが #100DaysOfCode や #駆け出しエンジニアと繋がりたい と言ったタグをつけてツイートすることで同じような方がいいねなどアクションしてくれるため励みになりました。
どうしても解決しないバグが発生した時もTwitterやQiitaを調べると解決できることが多かったです。




# 最後に
ここまで読んでいただきありがとうございます。備忘録として書きたいことをつらつらと書いていたら長文になってしまいました。。。

ここからは修行だと思ってガンガンスキルつけていこうと思っています。
そして憧れのMacbookでモダンなスキルを使って開発できるキラキラエンジニアになっていきたいと思います！  
気が向いたら、~~入社１ヶ月後~~（3ヶ月後にします！）の記事も書きたいとおもっていますので読んでいただければと思います！

# 追記（2020/12/5）
たくさんの閲覧本当にありがとうございます！
そろそろ半年経つので、また同様の記事を書こうと思いますのでその時はぜひよろしくお願いします:clap:
また、ストックと同時に`LGTM`してくださると嬉しいです！