エンジニアになって1年目を振り返る

昨年7月に3ヵ月だけ働いたSIerを辞めてmofmofに入社して早1年ちょっと。前職では全くコードを書いていなかったのでmofmofに入社してやっとWebエンジニアのキャリアがスタートした。
そんなエンジニア1年目の振り返りをしようと思う。


7〜8月

この期間はまだまだ優しい研修期間。スクールで習ったレベルのRailsの機能+αを使ってTodo管理ツールを作成した。
mofmofでは万葉の研修カリキュラムをそのまま使っていて、基本的なTodo機能+自分が付け加えたい機能を付け足していくという流れだった。

9〜10月

この2ヶ月は一応研修期間だったが、mof-canvasというリーンキャンバス をWeb上で作成して共有するアプリを会社の新規サービスとして開発した。
技術スタックはRails+Vue.js。Vueは全く触れたことがなかったが、「何とかなるっしょ」くらいの軽いノリで開発着手。
何とか納期通りに完成させることが出来た。(やれば何とかなるけど触れたことのない技術を案件にいきなり使うのはめちゃくちゃしんどい)
このプロジェクトを通して、Vueを使った開発は一定のアウトプットを出せる自信がついた。

11月〜現在

自分自身初となる外部案件にアサイン。新規開発でPO1名+エンジニア2名の計3名での開発を担当する。
Railsの基本であるMVCだけでなく、Sidekiq, Form Object, Service Objectなど、ドメインロジックを複雑に組んだアプリを開発することになる。
最初はMTG中の単語の意味がわからずついていくのに必死で、ここでRubyの基礎が出来ていないことに気づく。
「プロを目指す人のためのRuby入門」を最初から最後まで読み込み、パーフェクトRailsなどで、Railsでドメインロジックをどう表現するかなどを一通り学習した。
この時期が自分が一番勉強し、エンジニアとして成長した期間だったと思う。

とまあこんな感じで、mofmofでは少人数での新規開発をメインでやっているので、案件の仕様を誰かが細かく定義してくれるわけではなく、自分で仕様を把握していかないといけない。
実装方針も、基本的には自分で考えて大筋をコードで書き、レビューを通してブラッシュアップしていく。
基本的には誰かの細かい指示などはない。
だからこそ、自分自身の能力で案件の成否が左右され、それがプレッシャーになり同時に成長の源泉になる。
エンジニアとして引き出しを多く身に付けたいという理由で自社開発は候補から外し、受託に絞って転職活動をしていたが、その意図は大正解だった。

振り返ってよかったこと

- Vueを実戦で経験出来たこと
WebエンジニアはVueくらい使えて当たり前という風潮がある。Reactを使える強強エンジニアになるためにも、Vueは早期にマスターしよう。

- Rubyの基礎から学び直したこと
Railsではよくわからないおまじないで簡単に動作してしまうので見落としがちだが、Railsのコードを読んでいてわかったふりをしているところはないだろうか?
例えばscopeでよく使われる->って何?
includeとextendの違いは説明出来る?
viewに書いてあるyieldってどういう意味?
クラス名でたまに見かける class AAA::BBBの::って何?
class と moduleの違いは説明出来る?
こういう細かい部分をスルーしていると、そのうち壁にぶち当たってしまう。コードの1つ1つの意味を自分で説明出来るようにしよう。
基礎の学習が一番地味だが一番効果的だ。基礎無くして成長はあり得ない。

- アプリケーションを0→1で作成したこと
自社開発や受託でも継続案件にアサインされると、なかなか0→1の部分は経験できない。
しかし0→1の開発は学べることがたくさんある。DB設計、クラス設計、フロントとバックエンドの構成など、自分で意思決定しないといけない。
意思決定出来ることはとても大切だ。他人に指示されたことをやるだけでもエンジニアとして成長出来るが、意思決定出来るエンジニアの安定感は凄まじい。

これから挑戦したいこと

- Reactの実戦経験

- ネイティブアプリの開発

- 自分のサービスの開発

- 基本情報(10月の申し込み忘れてた…)

- Docker fileを自分で書けるようになること

2年目の終わりにはこれらの事を完了しておきたい。

今の自分の立ち位置

今の自分はやっとエンジニアとしてアウトプットが出せるようになったという段階で、足切りはされないレベルにはいるが積極的に選ばれるレベルではないと思う。

RailsとVueを使えるエンジニアなんてそこらへんにゴロゴロいるし、RailsもVueもそこまで使いこなせるわけではない。

コードもデザインパターンをマスターしたわけではないので、責務を切り分けられずにギッチギチの密なコードを書いてしまうし、後からリファクタリングで地獄を見る事もある。(特にVue)

つまり、まだまだ自分は経営者目線では物足りないレベルなのだ。

エンジニアになってみて

エンジニアはとても楽しいよ。電話に煩わされることもないしずっとPCの前に座ってコードを書いてられる。
そして今の仕事が自分のキャリアアップに繋げて行く事が出来る。

エンジニアとして成長するのに必要なのは、7割の適性と2割の努力、そして1割の運だと思う。
自分にはこれらが揃っていたので1年間やってこれた。
これから先も、エンジニアとして強くなっていきたい。

早く親に心配かけないようにしないと。。




(おまけ)エンジニアになるためにすべき事

エンジニアの仕事は努力よりも適性がモノを言う仕事だと思う。最近エンジニア転職が流行りだが、自分が適性があるかどうかは慎重に判断すべきだ。

自分の場合は最初にProgateをやり込んでレベルを200まで上げて、プログラミングの適性がある事を自覚した。その上で、エンジニアに最短でなるにはきちんとしたカリキュラムが必要だと感じ、スクールを何社か比較した。
自分は当時は仕事を続けながらエンジニア転職をしたかったので、その条件でも生徒を受け入れエンジニア転職の実績が最も多いTECH::EXPERT(現TECH::CAMP)を選んだ。

また、市場調査も大切だ。シニアエンジニアは確かに高給取りだが、ジュニアレベルでは年収は低い。せいぜい300万円台だ。自分はエージェントを通して企業に会いまくって、エンジニア未経験転職ではスクール行かずに年収250万円、スクール行って年収300万円程度と言う事実を知った。
今はエンジニア転職が流行りとなっているため、この価格はもっと下がっているだろう。

プログラミングスクールは投資だ。投資分を回収出来るストーリーもないまま仕事をやめてベットしてはいけない。
○万円かけて□ヶ月で学習を終了させ、年収をアップさせ△年で投資分を回収するというストーリーを最初に描かないといけない。

以上のプログラミング適性があるかと投資回収のストーリーを描いた上で自分はエンジニア転職に挑戦した。
おかげで自分の転職はかなり成功した部類だと思う。

この記事が気に入ったらサポートをしてみませんか?