エンジニアになってからの2年間を振り返ってみた

2020年11月にエンジニアとして働き始め、先月でちょうど2年が経ちました。
私自身がどのようにこの2年間を過ごしてきたかを共有することで、エンジニア転職を考えている方・エンジニア歴の浅い方のキャリアプランの参考になれば幸いです。
年齢は現在31歳、エンジニアになった当時は29歳でした。

:::note warn
共感できない部分も多々あるかと思いますが、あくまで私個人の考え方である点、ご了承ください。
:::

半年ごとに時系列で振り返ります。

## 2020年11月〜2021年4月（エンジニアになって最初の半年）
この期間のメイントピックは2つです。

- エンジニアデビュー
- プロジェクト異動

### エンジニアデビュー
転職活動の結果、受託開発のWebマーケティング企業に採用いただきました。
この企業を選んだ理由は、主に2つです。

1. 開発エンジニアとして働くイメージが掴めた
当時は未経験であり、自分がどのように働くのか、本当にスキルを伸ばして技術力で貢献出来るようになるのか、非常に不安でした。
またエンジニアとして採用されても、実際は開発にあまり関われない事例を耳にすることもあり、そのような事態は絶対に避けたかったです。
その点、この企業の方は入社後の私の業務内容やプロジェクトを詳細に教えてくださり、自分も開発エンジニアとして貢献出来る確信が持てた点が大きかったです。
また直近で未経験の方を数人採用している実績もあり、入社後のミスマッチもお互いに少なそうだと感じました。

2. 残業が少ない
業務で充分なアウトプットを出すためには、充分なインプットが必要です。業務外でインプットに充てる時間を確保するため、この点は重要だと考えました。


さて、上記の企業でポータルサイト開発プロジェクトのエンジニアとして働かせていただくことになった訳ですが、当然ながら全然ついていけません。
配属されたプロジェクトではPHP/FuelPHPを採用していましたが、私はそれまでRuby/Railsで学習しており、またJavaScriptも満足に書けなかったため、課題山積でした。

とにかく時間を投下するしかないので、平日は3〜4時間、休日は片方は7〜8時間、もう1日は数時間から半日というペースで学習をしていました。（残りは普通に遊んでいました）
時間にすると毎週25〜30時間程度で、この習慣は1年半以上続けることになります。

この頃はPHP/FuelPHP/jQueryの学習に加え、仕事で分からなかったことを調べたり、HTML/CSSを復習したり、LinuxやDocker、Webについて学んだりしていました。

特にキツかったのは、コロナウイルスの影響により就職して1ヶ月で在宅勤務になったことです。
それまではオフィス出社で先輩たちと対面で仕事をしていた訳ですが、歴1ヶ月の未熟者が自宅に一人になる訳です。
この頃の私は実力不足で満足にタスクも完了できず、精神をコントロールするのに苦労しました。
リモートワークに憧れる方もいるかと思いますが、最初は対面の方が良いかと思います。

振り返ると最初の数ヶ月は大変でしたが、3~4ヶ月ほどで多少は慣れ、コーディングを楽しむ余裕が出てきた時期でもありました。

### プロジェクト異動
入社して4ヶ月が経ち、日々の業務にも慣れてきた頃ですが、ここで別のプロジェクトに異動することになりました。
それに伴い、PHP/FuelPHP + jQueryだった採用技術が、PHP/Laravel + Vanilla JSに変わりました。
完全に自分の確認不足ですが、異動してコードを見てから採用技術が異なることに気づき、めちゃくちゃ焦ったことを覚えています。笑

とはいえLaravelには非常に興味がありましたし、素のJavaScriptに習熟できる環境は願ってもいないチャンスでした。
異動して最初の数ヶ月はLaravelを集中的に学習し、フルスタックなフレームワークの便利さに感動しました。
一方で便利であるが故にさまざまな処理が隠蔽されてしまうので、最初のプロジェクトでは軽量なフレームワーク（FuelPHP）だったおかげでブラックボックスになりがちな処理や素のPHPに近い部分を学べたことは幸運だったと思います。

## 2021年5〜10月（エンジニアになって半年〜1年）

スキル面の成長を最も実感したのはこの期間だと思います。
また新しいプロジェクトにも日毎に慣れ、学ぶことは沢山ある一方で多くのタスクは自分一人で対応できるようになり、心理的にも余裕を持てる状態になっていました。
難しいタスクも任されるようになり、実装する度に新しい事を学んでいる実感もありました。

業務外では、ずっと逃げていたJavaScriptの学習を中心に、PHPやSQLも基礎から学び直していました。
それまでは薄めの書籍を中心に学習していたのですが、厚めで情報量が多い書籍で学び始めると、初めて目にする仕様が目白押しで新鮮でした。
おかげで「何とか書ける」状態から、「言語仕様を理解してより良いコードを書ける」ようになってきている実感がありました。

また技術のキャッチアップに余裕が出てきたことで、今まで気になっていたものの挑戦できなかった技術にも手を出したりしていました。
Google Maps APIやシェルスクリプト、SVGやJS Canvas等の技術を学び、知的好奇心を存分に満たせてひたすら楽しかったです。

## 2021年11月〜2022年4月（エンジニアになって1年〜1年半）

この期間のメイントピックは3つです。

- PL（プロジェクトリーダー）になる
- 初めてハッカソンに参加する
- 転職活動を始める

### PL（プロジェクトリーダー）になる

エンジニアになって丁度1年経過した11月からPLに昇進しました。

正直、この話をいただいた時の感想は「まさか」でした。
自分はエンジニアとしてはまだまだで、そういった話は遠い未来の話だと思っていたからです。
しかし折角いただいたチャンスなので、ありがたく務めさせていただくことにしました。

PLになったことで、業務内容が大きく変わります。
今までは担当タスクのコーディングをするだけでしたが、以下の業務がメインになり、逆にコードを書く機会は減りました。

- 顧客との要件の擦り合わせ
- テーブル設計・仕様設計
- メンバー（3〜4名）のマネジメント・タスクの進捗管理
- コードレビュー

当時の自分は上流工程を担当するには明らかに実力不足でしたが、そんな言い訳をするわけにはいきません。
DB設計やマネジメント等、PLに求められるスキルの学習に努めました。

特に仕様設計・テーブル設計については後から修正が難しいので、PMに何度も相談し、フィードバックをもらいながら何とかこなしていたという感じです。
自分の力不足でエンジニアメンバーには色々迷惑をかけましたし、今思い出しても申し訳ない気持ちが湧いてきますが、このタイミングで上流工程の業務をさせていただいたことは非常に貴重な経験となりました。

### 初めてハッカソンに参加する

私が卒業したDMM WEBCAMP主催のハッカソンが3月に開催されました。

ここでの経験は大きかったです。
今までは社内にしか目を向けていませんでしたが、ここで社外の方々と共同でプログラミングをする訳です。
人それぞれ業界はバラバラですし、得意とする技術領域も異なります。
自分も充分通用するな、と自信を深める一方、私が知らないツールやライブラリを使いこなしている方もいて、自身のスキル幅の狭さも実感しました。

### 転職活動を始める

2〜3月頃から転職について考え始めました。
当時は未経験で入社して1年3〜4ヶ月でしたから、転職を考えるタイミングとしては早い方かと思います。

理由は、新しい事に挑戦したいと思ったからです。

入社してから一定の強度を保って学習してきたため、（インフラ周りを除く）業務で必要なスキルは割と吸収したと感じていましたし、PL業務を担当していたおかげでプロジェクト自体にも習熟し、新しい刺激が少なくなっていました。
おかげで必死に頑張らなくても業務は卒なくこなせて快適でしたし、周りの方々にも恵まれ、居心地は非常に良かったですが、もう少し負荷を上げて自身の成長を促したいとも考えていました。

ハッカソンで目線が社外に向いたこともあり、何か行動を起こさなければと考えた結果、候補に上がったのは以下の4つです。
- プロジェクトの異動
- 副業
- フリーランス
- 転職


まず始めにプロジェクトの異動ですが、当時はどのプロジェクトも事業内容・使用技術共に似通っており、もう少し大胆な変化が欲しいと感じていました。

副業については、本業で新しいことに挑戦し、業務外の時間はそのために必要なスキルの向上に努めたいと考えたため、選択肢から早々に消えました。

フリーランスについては実際にエージェントへの登録・選考も進めましたが、新しいことを学ぶというより既存の技術の切り売りである側面が強く、また私程度の経験では案件を選ぶほどの競争力も無いため、やはり選択肢から消えました。

ということで消去法により、転職活動を始めたのが4月になります。

## 2022年5月~11月（エンジニアになって1年半〜2年）

この期間のメイントピックは2つです。
- 転職先の決定
- 入社〜現在まで

### 転職先の決定
転職活動に際して、転職エージェント数社、Wantedly、転職ドラフトを使用しました。

参考までに書類選考の通過率は3割弱、内定は2社からいただきました。
選考には進みませんでしたが、転職ドラフトには4月回に参加し、3社からいずれも500万円でオファーをいただきました。

途中で転職活動を終了したため最終的に何社から採用いただけそうだったかは分かりませんが、自分を欲しがってくれる企業はある程度はあるんだな、という手応えはありました。

内定をいただいたうちの片方の企業（不動産企業）で現在も働いている訳ですが、入社の決め手は2点です。

1. 不動産業界のDX化への姿勢が面白いと感じた
元々エンジニアになろうと思った理由の一つが、所謂DXに関心があったためでした。
不動産業界というIT化が遅れている業界にあって、システムを外部委託せずに内製化し、業界のDX化を進めようという姿勢に魅力を感じました。

2. そもそもの転職理由である「新しいことに挑戦したい」欲をガッツリ満たせる
不動産業界は初めてですし、技術領域はいずれも私にとって未経験のものです。
また参加するプロジェクトは新規開発中で、自分たちで技術選定し試行錯誤していく段階である点も私にとっては初めての経験となります。

内定を承諾し、7月から入社することになりました。

正直、未経験での入社から1年半ほどで転職することには否定的な意見も多いかと思います。
私自身、戦力になるかも分からない自分を採用し育ててくださった方々には非常に感謝していますし、恩を返し切れていないという自覚もあります。
ただ、人生を左右する決断の軸を会社目線にする訳にはいかないので、自分にとって最善の方法だと言える転職を選択しました。

### 入社〜現在まで

新しい会社に入社して、採用技術がガラッと変わりました。
- PHP/Laravel → Go
- Vanilla JS → TypeScript + Vue（Reactに移行中）
- MPA → SPA
- MVCモデル → クリーンアーキテクチャ
などなど...


他にも新卒採用やインフラ周りも担当させてもらっています。
特にインフラはプログラミングと全く異なる領域で、中々の負荷です。

改めて振り返ってみても、事業面・技術面共に私にとって新しいことの連続で、非常に刺激的で充実していますし、転職は適切な決断だったと感じています。
前職も素晴らしい企業でしたが、転職して思うのは、適切なタイミングで適切な環境に移動することが大切だということです。

それにしても、前職で自分もエンジニアとしてやれている、と自信を持っていましたが、それは単に使用技術に慣れただけでしたね。。
環境を変えると分からないことだらけですが、地道に努力していくしか無いので、引き続き楽しくエンジニアを続けていきます。

## まとめ
特にありませんが、エンジニア歴2年の凡人のリアルなキャリアを振り返ってみました。
どなたかの参考になれば幸いです。
お読みいただき、ありがとうございました！