駆け出しエンジニアはつらいよ
エンジニアの駆け出し時期って大変ですよね。。。
自分は未経験からエンジニアになった当時は、基礎学習をおろそかにしたまま入社してかなり苦労しました。
ちなみにキャリアスタート時のスペックは以下のレベルです。
- Laravelの基本的な開発ができる程度
- ポートフォリオはTwitterクローンを作った
- Docker・AWS・CircleCIとかは使ったこと無い
くらいのレベルです。
今の駆け出しエンジニアの方と比べると、たぶんレベル低い方なのかなと思います。
当時の自分が苦労したことは大きく3つありました。
苦労したことその1:仕事中の会話についていけない
まず仕事の会話についていくことができなかったです。
「こないだリリースしたAPIにバグありました!Issue作成しといたので、修正終わったらプルリク出しといてくださいー!」
恥ずかしながらAPIをちゃんと理解していなかったし、Githubまともに使えないし、更にポートフォリオ開発のときはmasterブランチにひたすら鬼コミットしていた自分にはこの会話が正しく理解できないレベルでした。
仕事中の会話も理解があいまいな単語がガンガン飛んでくるので、わからなかったことはその日のうちに調べてなんとか一日遅れで会話についていっていました。
最初にこんな状態でエンジニアになったときは自分は正直無理なんじゃないかと思っていたくらい絶望していましたね。
苦労したことその2:タスクの内容を実務レベルで把握できていない
シンプルなCRUD機能開発のタスクでも実務では当然考慮することを把握できていなかったです。
- バリデーション
- エラーハンドリング
- ユーザ毎のアクセス制限
...etc
タスクの内容を正しく把握できておらず、最初に作ったCRUD開発は振り返るととんでもないクソコードの上に仕様漏れの嵐だったなと思います。
最終的にレビューされてマージされたコードを見て
「あれ...?自分の書いたコードどこいった?」
自分の創意工夫して書いた場所がどこにあるかを探すのが大変なくらい自分のコードが残っていなかったような記憶があります。
当時は自分はエンジニアとしての価値がないのではないかと途方に暮れていた時期もありました。
自分の書いたコードがタスクを前に進めるどころか、先輩エンジニアのリソースを大幅に使っている状態だったので申し訳ない気持ちが強かったですね。
苦労したことその3:コードが読めない・書けない
既存コードの改修タスクに着手したときもかなり最初は手こずりました。
- 他人の書いたコードが読めない
- コード量・ファイル数が多すぎて目的の場所にたどり着けない
- Serviceクラス?Interfaceクラス?
みたいな状況で目的地になかなかたどり着けず、先輩エンジニアに目的地までの道案内をお願いしていました。
チュートリアルとか教材を通して実装するコード量と実務のコード量では桁が違うので、実務コードを最初見たときは軽くパニック状態になってました。
ほんの数行の改修タスクにとんでもない時間がかかっていた気がします。
さいごに
でも大丈夫でした。
当時はメンタルやられかけてましたが、なんとかエンジニアとして仕事を続けることができました。
今は楽しく仕事できているなーと感じています。
今思い返すともうちょっと勉強してからエンジニアになるべきだったかなーとも思いつつ、仕事をしながら身につけていくべきことも多いので自分にはこのくらいが丁度よかったのかなーとも思っています。
未経験からエンジニアになる前にDocker・AWS・CircleCIを学習すべきかどうか
たまに議論になっているのを見ますが、自分の場合改めて振り返って考えると必要なかったです。
それよりも前に、
- Web技術
- SQL
- Git
- Linuxコマンド
入門レベルで良いので、このあたりは事前に勉強しておくと良いと思います。
ここをおろそかにしていると入社してすぐにアサインされやすいタスクである、既存コードの小さい修正タスクに入るときにめちゃめちゃつまづきます。
ここを押さえておくと入社早々にメンタルブレイクしてしまう確率をかなり減らせるはずです。
今はもっとレベルの高い状態でエンジニアになる方が多い気がするので、こんな苦労しないよってこともあるかもしれません。
自分が苦労した経験を共有することで少しでも誰かのエンジニアのキャリアがスムーズになれば幸いです。
Discussion