- エンジニアの卵として入社したはいいけどこれから何をしていったらいいかいまいちイメージが湧かない
- ベテランのエンジニアの人が勉強すべきことを発信してるのは見るけど、難しすぎていまいちピンとこない
- もっと自分(新米)目線の意見も知りたい
今日はこのような疑問を解決していこうと思います。
先に結論・記事の内容(大枠)
ポイント
- 1つ目:コードリーディングし、ドメイン知識をつける
- 2つ目:基礎学習を日々積み重ねる
- 3つ目:Git操作に慣れる
- 4つ目:報連相を怠らない
それでは具体的にそれぞれ解説していきます。
※以下の内容は僕が実際に体験してきたベースの内容になりますので個人があることをご了承ください。
僕の当時の状況整理
- 自社開発のベンチャー企業
- フロントエンドエンジニアとして開発チームに所属
- チームは合計7人くらい
- 開発言語:Vue2, Nuxt2, TypeScript
- 過去のエンジニア経験は0、営業職からの転職組
といった感じです。
エンジニア1年目体験記①:日々コードリーディングをし、ドメイン知識をつける
先に結論です。1年目の最初にやったことは、
- プロダクトのソースコードを全て見る。
- そして、プロダクトを提供している業界の知識をつける
この2つを最初に行いました。
エンジニア経験がなく、いきなり自社開発のプロダクトに配属となると、わからないことが多すぎて毎日頭がパンクしていました。
- JavaScriptにもそんなに自信がない、TypeScriptは少し触れたくらい
- VueのPropsの概念が曖昧、コンポーネント?聞いたことあるな程度、、
- プロダクトの業界についての知見も皆無、そもそもこのプロダクトの価値について理解しないと、、
- スクラムってなんだ?アジャイル開発、、?スプリント?開発のサイクルに慣れるのに一苦労。
- コンサル営業2年やってたので報連相、社内で発言する、日報を書く、質問するなどは常にできてた
最初の僕はこんな状態でした。
エンジニアリングについてもわからないし、プロダクトのドメイン知識もないし、開発のルーティーンも知らない状態でした。
わからないことをわかる状態にするために日々勉強は欠かせないですが、その中でも優先順位が結構大事だと気づきました。僕の場合最初の3ヶ月は
OJTも含めてひたすらコードリーディングをしました。
フロントエンドエンジニアでしたので、View配下のすべてのフォルダにあるtsファイル、vueファイルを見て行きました。
その中でわからない関数をひたすらメモし、調べて自分なりの解釈をして先輩に共有、フィードバックをもらうといったことをしていました。
エンジニア体験記②:基礎学習を日々積み重ねる
2つ目は実務外での基礎学習をすることです。
今までWeb制作での基礎的なフロント知識しかなかったので、Web開発の知識はほとんどありませんでした。
ロジックを組む、コンポーネント設計、アルゴリズム、JavaScriptのメソッドの処理の流れの理解、TypeScriptの型定義方法など。。。
エンジニアとしての基礎スキルをひたすら学びました。
アルゴリズムについて、使用したサイトはAtcoderと呼ばれる競技プログラミングサイトです。
こちらの過去問をひたすら簡単なA問題から解いて行きました。
初めはA問題にも苦戦し、解答例とMDNを見つつ自分でも解けるように訓練して行きました。
参考フロントエンドエンジニアになってからお世話になってる教材【Vue / Nuxt】
続きを見る
エンジニア1年目体験記③:Git操作に慣れる
3つ目はGIt操作に慣れるです。
自分の時間で基礎学習をしながら、実務ではGitの操作をスキマ時間を見つけて学習していました。
「そもそも仕事始めるまでにその辺の理解はしておけよ!」と突っ込まれそうですが、今まで実務経験がない自分は中々最初の個人学習でGitの操作に慣れることができませんでした。
本やUdemyなどの教材を使って基礎的なGitコマンドが叩けるようにしました。
実務でよく使う & 使えた方がよいGitコマンド(肌感で上から高頻度で使う)
- git log —oneline
- git branch -D
- git switch -c
- git pull origin
- git stash
- git fetch
- git cherry-pick
- git revert
- git pull —rebase
- git rebase -i
- git rebase —abort
- git worktree
他にもたくさんありますが、この辺りのコマンドを息を吸うように使えるように訓練していました。
エンジニア体験記④:報連相を怠らない
最後に、これがもっとも大事なことかもしれないですが報連相を怠らないことです。
1年目は特に実装でよくつまずきますし、自分がわからないことにも気付いてなく時間だけが過ぎていくみたいなことがよくあります。
先輩に「わかってること」「わかってないこと」「予想」「ここまで何をしたか、何を調べたか」
といった行動記録をなるべく簡潔に細かく伝えるようにしていました。
その方が先輩も自分がどこで悩んでいるかをキャッチしやすくアドバイスを送りやすいとフィードバックをもらいました。
最初は迷惑かけたくない、自分の非力さを晒したくない、責任感、などの気持ちからいつまで経ってもアウトプットができず後から「今どんな感じ?」と聞かれて初めて「全然進んでないです、、、涙」となりがちです。
実装に集中すると時間を忘れて視野が狭くなりがちなので30分タイマーなどをしながら視野が狭くなり過ぎないような工夫をしていました。
そしてできる限り自分の思考を共有して早めにアラートを上げるようにしていました。
最初から他力本願な人はそもそもチーム開発する上で害でしかないので論外ですが、不必要な責任感も返ってチームのパフォーマンスをより下げてしまうため、時間を区切って「ここまでは自力でやってみる」「ここからは自分の力ではまだできないから助けを求めよう」と潔く撤退することも大事だなと学びました。
まとめ
以上が、自分がエンジニア1年目に実際に学んだことになります。
これからエンジニアとして働かれる方の少しでも参考になれば幸いです。
自分もまだまだこれからですがいいサービスを世に送れる人になれるよう精進して行きます!!!
今回は以上です。
参考【体験談】テックアカデミーの評判を実際に受講したので徹底的に話します
続きを見る