はじめに
未経験ながらバックエンドエンジニアとしてジョブチェンジしてから1ヶ月経過したので、節目として学んだこと/感じたことの振り返りをしてみました。
・未経験でこれからエンジニアを目指そうとしている方
・実際に働いている同じような境遇の方
・新卒の方
上記のような方向けかつポエム的な記事なので悪しからず。
軽く自己紹介
文系学部卒→2021年度に営業職(カスタマーサクセス)として新卒入社
→1年目の冬頃、ひょんなことからエンジニア領域に興味を持ち始め、独学で勉強進める
→2023年6月から本格的に学習を始め、社内試験など諸々なんとか通過(ギリギリ)
→2024年4月からバックエンドエンジニアとして社内ジョブチェンジ
※ 学習記録用のTwitter(X)はこちら
できたこと
- 簡単なタスクを中心に2スプリントでPR作成/マージを9個ほど着手
- 個人のストーリーptは合計10pt
- 障害対応時に時系列まとめを担当
(自己総評):
まずは簡単なタスク(使用されてないプロパティを削除する/メソッドの共通化などのリファクタリングなど)を中心に手を動かしながらコードに触れることができた反面、ドメイン知識はありながらも、そもそもの各コードの処理の流れ/内容が理解できていないことを痛感。障害対応についてはやや重めの障害が発生し、技術的な観点でのバリューは出せないと割り切り、過去のポストモーテム資料を参考にリアルタイムでの時系列/対応まとめを率先して実施できた。
できなかったこと(課題)
- コードリーディング
- かなり抽象的ですが要は「ここのメソッドに引数で〇〇を渡していて、こういう処理が書かれていて、結果的にreturnで▲▲をどこどこに返すってことだな」というように、コードを見て処理内容をイメージすることがまだまだできていない
- ドメイン駆動設計(DDD)に基づくオニオンアーキテクチャの理解
- 上記と類似してますが、依存性逆転の原則などの理解も含めまだイメージできてない部分が多く、各ファイルを追うだけでも精一杯
(自己総評):
率直に基礎的な言語理解の部分がまだまだ足りてないと痛感。もちろん一字一句全てを理解する必要はなく、経験が解決する部分もあるだろうが、現状のままだと課題解決の手札すら思いつかない状態になりそう。
これからやること
基礎的な技術力の向上
技術力が上がるとどうなるのか
1. 適切に問題を特定できる(例:設計、アンチパターンとか)
2. 課題に対して解決するために必要な知識、手段や手札を引き出すことができる
- まずは時間がかかっても丁寧にコードを読み解いていくのを愚直にやり続ける。
- (書籍:「世界一流エンジニアの思考法」でも同じようなことが書かれていたはず)
- 他の人のプルリクエストも参考にしつつ、「自分ならどう書くか?」の観点でも参考にして目を通してみる
※上長との1on1時におすすめされた「技術力」に対するPodcast
エビングハウスの忘却曲線に基づく振り返り習慣
エビングハウスの忘却曲線とは、ドイツの心理学者であるヘルマン・エビングハウスが、人間の長期記憶について研究した結果、提唱された考え方で、この研究では意味のないアルファベットを記憶させた後、どれだけ記憶を保持できているかを実験したもので、20分後には42%を忘れている(58%を記憶している)という結果が出ています。
終わりに
障害対応も発生するなどまさに怒涛の1ヶ月でしたが、心理的安全性が高いチームの中で楽しみながら業務ができるので、とても環境に恵まれていると思う反面、いち早くチームに貢献したいという想いが日々強まるので、目的意識を持ちつつ日進月歩で精進します!
※5月はリリース作業やPRレビューなどを担えるようになりたい
参考 / 引用