20代後半で5年間培ったCOBOLから、Web系言語にスキルチェンジした話

こんにちは！Qiita初投稿の（@k_eng_m）と申します。
以下、簡単な自己紹介となります。

- 東京都生まれの28歳
- 文系出身でエンジニア歴約6年
    - SIer企業でCOBOL 5年（要件定義から全工程を経験）
    - SES企業でJava 1年

キャリアのほとんどはCOBOLを使用した、いわゆるホスト系、企業の基幹システムの開発・保守に携わってきました。
現在はSES企業にてJavaを中心に、JavaScript（vue.js）、AWSなんかを触らせていただいています。

スキルチェンジを経て約1年が経過しましたので、
今日はこの**COBOLの経験を経て、未経験でWeb系言語に転向した話**を、記事として残しておくこととします。

全くの未経験というよりは、エンジニア経験はあるものの
**『VBやCOBOL等のレガシー言語をやってたけど、スキルチェンジは可能なのか』**
**『これまでの経験は、スキルチェンジ後に役に立つのか』**
**『○○歳からじゃもう遅いのではないか』**
といったことを考えていらっしゃる方、
またこれから先、スキルチェンジを伴う転職を考えている方が、自身の持論・経験談が少しでも何かの足しになれば、とても幸いです。

# 経緯・スキルチェンジの理由
私は新卒で某SIer企業に就職しました。
金融系案件の開発・保守が主な企業で、社会的影響力が高い分
入社当初は「バリバリ働いて成果を出してやるぞ！」とメラメラしておりました。

しかし、2〜3年経過したところで以下のような不満が生まれました。

- コーディングは委託さん任せでほぼ皆無。顧客との案件調整・管理業務が中心となっていること。
- エクセルで作成されたドキュメント管理（設計書、エビデンス）の作業時間がとても長いこと。
- バッチ処理中心の開発は、何かを作っている感覚に乏しいこと。

きっとSIerあるあるかと思います。笑
コーディングの奇麗さより、エクセル資料の見栄えや、文章の読みやすさを重視されるぐらいです。

学生の頃、思い描いていたエンジニアのイメージとは、程遠い現実と直面とすることなりました。

そこで、私は会社の有志が取り組んでいたJavaの勉強会へ参加し、
併せてJSPとサーブレットを学ぶことで、Javaを使った開発の汎用性の高さに魅了され
COBOLでは実現できない、Webアプリを作成する楽しさを知りました。

この言語を学べば、業種を問わない多様なプロジェクトでたくさんの経験を積めるはず、、

そう思い、転職を決断しました。

# 転職活動へ
入社して5年目の春ごろ、転職活動を開始しました。
最初はとにかく実務経験を積むと割り切って、Java + α(フロント系言語等)が経験出来れば、なんでも良しでした。
エンジニアの開発業務といえば、**「SIer」「自社開発（Web系）」「SES」**に分類されることが多いと思います。
「SIer」に関しては、今回の転職で目指すところではなかったため、「自社開発（Web系）」「SES」を複数社、面接させていただきました。
以下、選考結果とその所感を記載させていただきます。

### **自社開発（Web系）**###

**スキル不足で、全て見送りでした。**
（ポートフォリオとしてJavaで簡単な在庫管理アプリを作成しましたが、ありきたり過ぎましたね…）
ましてや、何のポートフォリオも無しに、自社開発企業に入社することは、ほぼ不可能です。
技術について「こんな本を読んで学習している」「こんな勉強会に参加して日々、自己研鑽に努めている」程度では、
とても面接を突破することはできません。

自社でサービスを行なっている企業様へ入社するためには、
少なくとも、以下の条件を満たす必要があります。

1. 実務経験
その会社の自社サービスに使用されているプログラミング言語、開発環境の経験が強く求められます。
Javaの経験を求める会社は少なく、Ruby on railsやPHPあたりの経験を求められる会社が圧倒的に多いです。
COBOLの経験ニーズは全くありません。

2. ポートフォリオの作成
その会社で使用されているプログラミング言語で、何か一つ（可能であれば二つ三つぐらい）サービスをローンチして、
GitHubにコミットすることで、初めて**書類選考**が通るかと思います。
面接では、自分の作ったサービスのこだわりを、いかに語れるかが鍵となります。
自分の作ったポートフォリオについて、**なぜこのサービスを作り、どう工夫し、その会社のサービスのどういった点に貢献できるのか（できそうか）**を伝えることが重要です。

### **SES**###
**複数社、内定をいただくことができました。**
COBOLの経験を一定数、評価していただける企業様と出会うことができました。
SES企業を選ぶ上で重要なのは、**その会社が得意としているプログラミング言語と、自分のやりたい分野のスキルセットがマッチするかどうか**です。
面接では、以下のようなことを聞かれます。

1. 実務経験
これまでにどんなプログラミング言語を使って、どんなプロジェクトで
どのような成果を挙げたかは必ず聞かれます。
何か一つ、自分の働きが会社として数字やデータに、大きく反映されたエピソードがあると良いです。
**数値を用いるなど、第三者が想像しやすい材料を混ぜてアピールすると、話の具体性が向上します。**

2. 資格の有無
SES企業は、プロジェクトへのアサイン率向上や単価交渉を有利に進めるため、資格の有無を確認する企業が多いです。
（私は関連IT資格を何も持っていませんでした…）
持っていると学習意欲とポテンシャルをアピールすることができます。
経験の浅いエンジニアほど、IPAの資格(基本情報技術者、応用情報技術者等)や
ベンダー資格(Oracle認定試験(Oracle MasterやJava)、LPIC等)の所持は武器となります。

入社難易度は、自社開発企業に比べてかなり低くなる印象です。

# SES企業へ入社
複数社、内定をいただけた中からサーバー系のJavaを中心に、フロント系、インフラ系案件を
バランスよく扱っていらっしゃるSES企業に入社を決めました。
入社前にOracle認定のJava Silverを取得の上、学習意欲をアピールし、
COBOL一択だった人生から脱却して、現在も客先常駐にて、Javaに触れながら日々研鑽の毎日を過ごしています。

# 面接でCOBOLの経験は評価されるのか
**はっきり言って、ほぼ評価されませんでした。**
数十社ほど自社開発、SES企業様と面接させていただきましたが
おそらく人事担当者様からすると
**「システム開発の流れ（ウォーターフォールモデル）は知っている」
「全くのプログラムど素人ではない」**
ぐらいの認識で、プログラミング経験者としてのアドバンテージは、さほど得られないのが実情でした。

同じエンジニアという職種でも、COBOLというプログラミング言語と
Java、PHP、RubyといったWeb系プログラミング言語は、
経験値の質として、かなり異なってくるということですね。

# 反省

スキルチェンジにあたり、もっとこうしておけば良かったな、と感じたことを綴ってみます。

- 面接でやる気と姿勢をアピールする材料が少なすぎた

とにかく早く実務経験を積みたかったため、COBOLの経験以外にアピールする材料が少なすぎました、、
20代での転職とはいえ、ポテンシャルを見ていただけるのも限界があります。
せめて資格の取得や、ポートフォリオの充実等で、誠意を見せるべきでした。
**実務経験に乏しいエンジニアほど、目に見える形の武器を持って、積極的にやる気をアピールするべきだと思います。**

- IT業界やプログラミング言語に対する知識が不足していた

恥ずかしながら、COBOLというプログラミング特性を知らなさ過ぎました。
世の中にはどんなプログラミング言語があって、それを使用するとどのようなことが実現できて、
どんなキャリアを築いていけるのか、ぐらいは学生のうちに、よく考えておくべきだったと思いました。
働いていくうちに、理想と現実の乖離に気がついて、やりたいことが明確になっていくケースは
業種問わずあると思いますので、難しいところですね、、

- 前職に5年は長く居すぎた

このままCOBOLで戦っていくのか、他の言語にも挑戦していくのかの決断が遅すぎました。
プロジェクトへの参画条件として『Javaの経験〇〇年以上～』といった募集要項があるように
**エンジニアのキャリアにおいて、各言語やフレームワーク、ツールの経験年数は非常に重要です。**

当たり前ですが、IT業界は資格が無くても働ける業界なので、どんなに難易度の高い資格を取得しても
どんなに素晴らしいポートフォリオを作り上げても、実務経験に勝るものはありません。
自分のキャリアを今後どうすべきか悩んでいる方は、一度、それと徹底的に向き合う時間を作るべきだと考えています。
そして、調べる、考えるはほどほどにして、実際に行動に移してみること。
例えば、今すぐ転職の決断を下す、とまではいかなくとも、とりあえず転職サイトに登録して
興味のある企業を探してみる、エージェントの方に自分の経歴を評価していただく等、何でも良いかと思います。
動いてみた結果、違う、と感じたのならば、また、調べる、考える、に戻るでも、いったん行動をやめてしまっても、それで良いと思います。

**後回しにすると、返ってくるツケも大きくなります。年齢は待ってくれません。**

# 結論
**20代後半で、COBOLからWeb系言語へのスキルチェンジは可能です。**
ただし、これまでのCOBOLエンジニアとしての経験値を評価していただける企業は稀かと思います。
※私の経歴がしょぼいだけかもしれません…

また、SES企業での話になってしまいますが
各企業との面接を通じて感じたこと、また入社後の30代40代の先輩方を見て感じたことは
**20代までなら、あまり大きな実績を残していなくとも、スキルチェンジが可能です。**
**30代以降は、これまでの経歴での実績やリーダー経験、自己研鑽の度合いをより重視される印象**でした。

いずれにしろ、一からのスタートとなりますのでこのスキルチェンジにおいて、年収や待遇アップを図ることは難しいと思います。
将来への自己投資と考え、経験を買ったと思って、努力あるのみです。

# まとめ
このような経験を経て、今に至っております。
やりたい技術を学ぶことができて、自己成長を感じられる今の環境に対して、とても満足しています。
スキルチェンジ後1年は、学びたい分野の資格を一通り取得して基礎を固めようと思い、以下のベンダー資格を取得しました。

- 2019年 7月 Oracle Java Silver SE8

- 2020年 1月 Oracle MASTER Bronze 12c

- 2020年 4月 Oracle Java Gold SE8

- 2020年 6月 AWS Solution Architect Associate

これからはフレームワークやフロント言語、Dockerなど、身に着けたい知識をコツコツと勉強していく予定です。

持論まみれの長文となってしまいましたが、この読みづらい文章をここまで読んでいただいた皆様に感謝致します。。
『それは違うんじゃない？』『自分の時はこうだったよ！！』などのコメントがあれば、
ぜひ教えていただけると幸いでございます。

最後に申し上げたいことは**『人間行動しなかった後悔の方が、行動した後悔より遥かに苦しい』**ということです！
お互いに強いエンジニアとなれるよう、頑張っていきましょう！