コンテンツにスキップ

ポエム:エンジニアになってからの振り返り

2020年からITエンジニアとして働いているため、 エンジニアとして転職してから現在(2024年1月)時点で約3年半が経過しました。

自分自身の気持ちの言語化、自己分析するために、ここで一度振り返ってみたいと思います。

エンジニアになる前は営業(ルートセールス)を行っていたので、全く異業種に未経験で入社でした。その為、日々の業務における課題をこなすのには苦労しました。最初のころは不具合を出して、それを直すために遅くまで会社に残ることも多々ありました。

1. エンジニアになるまでの流れ

転職のキッカケとなったのは、前職の会社の業績が傾いたことです。「もし会社がなくなったら、この先どうなる?」と考えたときに、自分は何かアピールできるスキルはあるだろうかと振り返ったところ、手持ちのスキル不足を痛感し、危機感を覚えました。

そして色々と検討をした結果、今からでも遅いかもしれないと思いながらもプログラミング学習を始めました。最初はprogateやどっとインストールなどの学習サイトから始めて、PHP、JavaScript、MySQLなどを学習しました。

書籍だと挫折していたかもしれないですが、幸いStack OverFlowなどの回答例やGitHub issue、YouTube・Udemyなどの動画リソースも豊富だったのでコツコツと学習を進めることが出来ました。

その後、現在の会社と縁があってエンジニアとしてのキャリアをスタートさせて現在に至ります。

2. エンジニアになってから携わったこと

エンジニアとしての主な担当は、Webシステムの運用保守・機能開発です。

「顧客データ管理システム」に分類されるもので、搭載したデータを検索したり、Excelでレポートを出力したり、逆にExcelからエクスポートしたデータをシステムに取り込むといった連携機能があります。

使用技術としては、以下の通りです。

  • Webシステム側: C#(.NET Framework、.NET Core等)、JavaScript(jQueryも)
  • Excel側:VBA

C#はWindowsメインの言語なので、Windows Server環境でデプロイを行い、IISで設定します。

データベースは基本的にSQLServerですが、案件によってはPostgreSQLも扱います。まれにPHPの案件でMySQLも扱いますが、頻度は少ないです。

また、私が所属している会社の規模は少人数ですので、バックエンド・フロントエンドで担当が分かれることはなく、機能単位で保守や改修を行っています。

そのため、フロントの開発(特に地図画面の機能には工数が掛かる)も多くあります。また、ユーザーがIEを使っていることを前提として開発を行っていたので、既存コードに合わせてjQueryを書くことも多いです。

ちなみにVBAの開発は、主にVBEという枯れたIDEになるのですが、VSコードに慣れた現代のプログラマにとっては開発がスムーズでなくつらみがあります。

3. 職業としてのエンジニアとしての面白さ

エンジニアの職務で面白いのは、以下の点だと考えています。

  • より広く貢献できる
  • 知的好奇心を満たせる
  • 積み上げている感覚が味わえる

より広く貢献できる

自分が行った業務がたくさんのユーザーに使用され、そのユーザーに利益になればとても貢献感を感じることができます。人間は本来、人の役に立つと嬉しいと思う生き物です。自分がされて嬉しいという気持ちよりも、自分がしたことで他者が嬉しいと言ってもらえることのほうが、より幸福感を感じられます。

知的好奇心を満たせる

エンジニアの仕事をしていると、いつまで分からないことだらけです。「へーこんなことがあるのか」とか、「こんな書き方・実装方法があるのか」等、日々の発見があり知的好奇心を満たしてくれます。これは正直に言って楽しく、今まで経験した職務にはない感覚です。

積み上げている感覚が味わえる

私はRPGゲームが好きです。ストーリー性にも魅力はありますが、ただレベルを上げるのも好きなんです。レベルを上げてスキルを身に着けて、倒せなかった敵が倒せるようになっていくRPGの感覚が、エンジニアという職業に似たものを感じます。

4. 現状の課題・不満

現在、課題に感じている点は以下の通りです。

  • 経験領域・使用技術の偏り
  • テスト系の経験が出来ていない
  • 直フィードバックが得られにくい

経験領域・使用技術の偏り

privateネットワークのシステム開発が主となるため、外部APIと連携する等の機会が少ないです。

また、現在の業務の多くが、画面改修や機能追加など、これまで経験したものが多くなってきました。

少ない工数で要望を解決できるようになりましたが、より成長するために新しい挑戦が必要だと考えています。

これに関しては個人開発で何か出来ないかと検討中です。

テスト系の経験が出来ていない

現在の会社はテストの自動化をしない文化なので、テスト系の技術や知見が溜まっていません。

機能改修によってデグレする場合も考えられるので一度上司に提案しましたが、却下されました。

テスト導入によってメンテ工数や納品期日が延びることが理由でした。

会社は小規模なので属人性が強く、開発者が引き続き開発を続けている場合は良いかもしれませんが、長期的な目線で考えると悪手だと考えています。

直フィードバックが得られにくい

受託のため、仕方がない面もありますがユーザーからの直接的なフィードバックは得られません。

運用フローなどを加味して、「このほうが使いやすいかな?」と考えて開発を進めますが、結局その判断は良かったか・悪かったかは明確にはなりません。

やりがいという点においても、顧客との接点が見えづらいと正しい方向に進めているか分からず、不安になってしまいます。

5. 今後のキャリア方針

エンジニアのキャリアの方向性としては、以下の3つがあります。

  • 専門性を高めたスペシャリスト
  • 幅広い分野に対応できるジェネラリスト
  • マネジメント

またエンジニアとしてもQAエンジニア、インフラエンジニア、アプリエンジニア等の多様なキャリアパスが考えられます。

現段階では、Webの開発エンジニアとしての専門性を高めることが当面の私の方針です。

ただ、プロダクトを改善・成長させるというプロセスは好きですし、いずれはマネージングの経験も積みたいという思いがあります。 そんため、マネージングの視点や意識なども、平行して学ぶ必要があると考えています。

企業によって 0 or 100 ではなく、どちらのスキルも伸ばしていく必要があり、課題は山積みですが頑張りがいがあります。