SIer企業からWeb系企業へ転職した話（COBOLer）

# はじめに
この度、Sier（金融）企業から自社開発系の企業に内定をいただくことができました。  
Sier→Web系転職についての話はよくありますが、金融領域によく使われるレガシーな技術のみを実務経験としている方の話はあまり見受けられなかったので、今回の転職活動について記事に残そうと考えました。  
この記事を通じて、私と同じような境遇の方達の助けになると嬉しいです！

※ 今回私が転職活動をして感じたことを書いていくので、必ずしも正しいとは限らないです。。  
&emsp;あくまで参考として読んでいただきたいです。
# スペック
## バックグラウンド(学生)
情報系の修士卒です。  
恥ずかしながら学業は疎かにしていたので、情報系とは思えない知識レベルでした。  
エンジニアっぽい経験としては、MATLAB言語でcsvファイルを読み込んで統計処理をするプログラムを開発していました。  
セキュリティ、ネットワーク、その他CS知識は皆無でした。
## 前職の経験
大手？のSier企業に新卒入社（20年入社）をして、配属当初から金融事業部に所属していました。  
情報漏洩の観点で詳しいことは書けないのですが、汎用系システムの開発保守に携わっていました。  
ウォーターフォール開発モデルで、詳細設計書作成からリリースまで担当していました。大層な感じに見えるかもしれませんが、基本的には上から降りて来た要件に従って設計書作成〜コーディングをして、テストは実行→結果をスクリーンショット→エクセルシートにまとめるという作業をテストケース数分行っていました。  
開発言語はCOBOLとJCL（ジョブ制御言語）を使用していました。
## 資格、スキル
### 資格
* 応用情報技術者試験
* Oracle Certified Java Programmer, Gold SE 8 認定資格
### スキル関連
* 開発言語
  * Java
  * C++
  * Python
  * COBOL
  * MATLAB
  * HTML/CSS    
* フレームワーク
  * Spring  
  * Django
* DB
  * MySQL
  * PostgreSQL
  * DB2
* その他
  * git（基本操作）  
  * 競技プログラミング（Atcoderレートが700弱です。。）
  
※いずれも実務経験ベースのレベル感ではなく、自己研鑽の範囲で簡単なアプリケーションを作成できるレベル感です。。
# 転職活動の詳細
## 転職のきっかけ
1. レガシーな技術かつ偏りが強い（マイグレーション等の予定がない）ので現場にいる限りはずっと同じ技術に向き合わないといけないことにモチベーションを感じなくなってしまった。
1. 開発業務に打ち込めない（一つの案件期間が長く、ドキュメンテーション作業が大多数を占める）  

以上２点が一番大きな理由です。  
異動も考えたのですが、2の解消に繋がりにくいこととスペシャリストのキャリアパスが乏しいためどこかのタイミングで転職は免れないと思い今回の転職を決意しました。

※あくまで私が描きたいキャリアパスに合わなかっただけで、ハードウェアに近い動きの知識を要する点や、膨大なトランザクションを捌くための複雑な課題に挑戦し続けられる点は、大きなやりがいと成長をもたらしてくれる素晴らしい環境であると感じています。  

## 転職活動の詳細
### 転職エージェント
今転職活動では転職エージェントを活用しました。  
どの転職エージェント企業にお願いするかは迷いどころだとは思いますが、企業ごとに得意な領域が違うみたいなので複数の会社を併用していくのが良いみたいです。   

ちなみに私は器用に連絡が取れないと思い、１つに絞りました。しかし、企業によって掲載求人に差があるように感じたので併用スタイルの方がよかったなと感じています。  

その他のアドバイスとしては、担当者が自分と馬が合うかを重視して選択した方が良いと思います。基本的には入社に結びつけることでマネタイズされる仕組みらしいので、担当者によっては希望と合わない企業でも入社することを強く勧めたりすることがあるみたいです。転職先企業とのミスマッチを防ぐためにも人をみて決めることも重要だと私は感じました。  
### 転職エージェントを使うべきか
私と似た職歴であれば、利用した方が良いと思います。  
初めての転職活動で、働きながら必要書類を作成したり、企業との連絡や時間調整をすることはそれなりに大変です。
後述しますが、私の経歴でWeb系企業の面接選考に進むことはかなり厳しかったので、幅広く企業分析をする必要があります。これも初めは骨の折れる作業なので、担当者に教示していただきながら進めていき、なるべく時間に余裕を持たせて自己分析等の選考対策にリソースを割いた方が良いと思います。  

本当かどうか定かではないのですが、ある転職エージェント企業にお話を伺った時に転職エージェントを使わない人の方が企業目線でコストが掛からないので、内定に結びつきやすいというメリットがあると言っていました。どれくらいの効力があるかは分かりかねますが、面倒なことも厭わない人にとっては転職エージェントを使わないという選択肢もあって良いかと思います。
### 選考
私が受けたWeb系企業の選考フローとしては、  
1. 書類審査（コーディングテストがある可能性あり）  
2. 面接 ( 大体は1 ~ 3回 )    
3. 内定  (リファレンスチェックがある可能性あり)

の流れになっていました。  以下に各フローの詳細を書きます。

#### 書類審査  
選考エントリーと共に職務経歴書、履歴書を提出します。基本的には職務経歴書内の職務経歴を重視して選考結果を判断されるようです。何の技術を実務レベルでどのくらい経験しているかをみられるので、私の経歴ではかなり厳しかったです。  

私と似た経歴でこれからWeb系企業への転職活動に挑戦しようと考えている方に向けてのアドバイスですが、書類審査は本当に苦戦すると思います。ネットで検索すると書類審査通過率の平均値を調べることができますが、それよりも悪くなるのが当たり前だと思って臨んだ方が良いです。私は115社エントリーして、面接選考に進めた企業は約10社ほどです。  
決して名が知れている企業が特別厳しいとは限らず、そういう企業でもポテンシャル（自己研鑽やアウトプットの量と質）を重視する場合もあり、エントリーしてみないとわからないことなのでとにかくめげずに応募し続けることが大事だと考えています。
#### 書類審査(コーディングテスト)
Web系企業にはコーディングテストを採用している場合が多いです。  
内容は企業によって異なりますが、任意の言語（メジャーなものは大抵ある）を選択し、競技プログラミングに近い問題を３問程度解く形式が多かったです。  
難易度は[Atcoder](https://atcoder.jp/)のA~D問題の範囲に収まっているくらいでした。
対策としては、Atcoderの問題を解くのが良いかと思います。自分はD問題が半々くらいで解けるレベルでしたが、コーディングテストはほとんど正解できたと思います。  
可読性も見られると思うので、無駄のないアルゴリズムの構成、書き手の考えを示したコメントアウトを心がけると良いと思います。  

#### 面接
私が選考を受けた企業の面接は１〜３回でした。  
各面接官に関しては
* １回の企業は社長  
* ２回の企業は現場マネージャー　→　役員レベル  
* ３回の企業は現場開発メンバー　→　現場マネージャー　→　役員レベル  

大体上記のような感じでした。  

面接の内容に関しては、大体どの企業も同じような内容で、  
* 転職活動のきっかけ、理由  
* 転職活動の軸
* 現職で何をやっているか  
* 短中期、長期のキャリアプラン
* 技術知識の確認
* 逆質問  

漏れがあると思いますが、上記の内容が大部分であった印象でした。  
上記の中でも具体的に、  
* 転職の軸が異動では叶わない理由  
* 現職で触れている技術、システムのアーキテクチャの詳細
* 挑戦したい技術と類似の技術の差別化 （例：Java言語に挑戦したい → 他の言語と比較して優れている点と劣っている点）
* Webアプリケーション開発における基本的な知識

これらは事前に準備していかないと行き詰まる可能性が高いと思うので準備すると良いです。  
私は面接を終えるたびに、答えにくかった質問と改めて考えた回答をマインドマップにまとめて次回の面接準備をしていました。マインドマップは[MindMeister（マインドマイスター）](https://mindmeister.jp/)を使いました。

#### 内定
無事に最終面接を通過すると、内定を得る流れになりますが、新卒の就職活動と若干異なる部分がありましたのでその点をまとめます。  
ちなみにですが、今回の転職活動では4社の内定を得ることができました。

#### オファー面接(面談)
年収等条件、就業規則についての説明や、求職者の疑問点を解消する場として与えられています。  
私の場合は3/4社でオファー面接があり、3社とも内定通知の前にしれっとオファー面接の連絡が来たのでまだ選考が続いているのかと少し焦った記憶があります。  
転職エージェントの担当者曰く、基本的にはオファー面接まで行って内定がもらえないケースは稀みたいなので油断は禁物ですが、ある程度はリラックスして臨めると良いかと思います。  

#### リファレンスチェック
私の転職活動ではなかったのですが、IT業界でリファレンスチェックとなるものを採用している企業が増えているみたいです。  
内容としては、現職の同期、上司に電話して求職者の経歴の確認や現場でどういう人間に思われているか等をチェックするみたいです。。  
その人を知る上で周りの人達に聞くことはかなり有効だとは思いますが、求職者にとってはかなり気まずいと感じる方も多いのではないかなと思います。。
# まとめ
## 感想
初めての転職活動でわからないことだらけでしたが、一つずつ解消していくことで無事にご縁をいただくことができました。  
今回の転職活動の中で一番きついと感じたところは、書類審査にひたすら落ち続けたことです。募集要項で「SIer歓迎」と書いてあってもほとんど通過できなかったので、やはり求職者の経験がどのくらい一致しているかが重要だと感じました。私のようなWebの世界でマイノリティに値するレガシー技術のみを経験としている方はかなり苦戦すると考えられます。  
## 似た経歴を持つ方に向けてのアドバイス
自己研鑽またはアウトプットは必須と言っても過言ではないです。  
基本的に、技術がマッチしているかどうかは現職についての質問で判断されると思いますが、Web寄りではない現場ですと技術がマッチしていることを想像させることは難しいと思うので、自己研鑽やアウトプットについて話して’ポテンシャルあり’と判断してもらうのが良いと思いました。  
その際、現職についての質問ではチーム開発における大きな問題を解決した経験や効率良く進捗を進めるために行った工夫点を話して、チーム開発において大事な要素を持っていることをアピールできると良いと思います。
### 自己研鑽、アウトプットとして何をすべきか
私は書籍を使ったフレームワークの学習、競技プログラミングの継続的参加、資格取得、Web制作に必要な知識を身につけるための座学をしました。披露できるアウトプットがないので、周りと比べて乏しい方であると自覚しています。  
  
実際にどんなことをやる必要があるのかについては分かれるところだとは思いますが、最低でも扱いたい言語、フレームワークを使った簡単なアプリケーションを制作することはしたほうが良いのかなと思います。大抵の参考書であれば、簡単なアプリケーションを作成する流れで教示されていることが多いので、書籍を使いながらやってみると良いかと思います。  

加えて、個人的には競技プログラミングはやっておいて良かったなと感じております。扱うアルゴリズムに関して、Webアプリケーション開発との結びつきが強くないのですが、言語について詳しくなれたことと日常的に言語を書く習慣を身につけることができました。コーディングチェックの対策にもなるので損にはならないと思います。  

また、資格取得の価値はSIerの世界では非常に高いのですが、Webの世界ではそこまでではないと感じました。ある企業と面接の時間調整を行なっていた時に来たメールで「よくあるお見送り理由」という項目を記載してくれたのですが、その中の一つに「資格を沢山取得しているが、取得することだけが理由となっているように感じた」というニュアンスの項目がありました。  
なので、Web系企業への転職のために資格を取得する際は「取得すること」だけを目的の軸とするのではなく、「自分に必要である理由」を考えて挑戦してみると良いと思います。

## 最後に
発言が重複しますが、不可能だと感じるくらいに落ちまくることが普通です。これから挑戦しようと考えている方にはとにかく辛抱強く挑戦し続けてほしいなと感じています。特に面接に関して言えば、改善できる原因が必ずあると思うのでそれを見極めて改善することを繰り返すことが重要であると考えています。この記事が少しでも役に立つととても嬉しいです。