見出し画像

エンジニアになってからの3ヶ月を振り返る

先日書いた「エンジニアになって1ヶ月経ったので簡単に振り返り」を多くの方が読んでくださり、反応いただけたこと、ありがとうございました。
https://note.com/aion_isse/n/n99da6f1410df

2023年5月10日にエンジニアになって早くも3ヶ月経ったので、簡単にこの3ヶ月の振り返りをつらつらと書いていきます。(ちょっと長いかも)

所々、使ってるワードが違う部分があるかもしれませんが、ご容赦ください。そして、指摘点があればコメントか何かで教えていただけますと幸いです。


右も左も分からなかった1ヶ月目

1ヶ月目に意識したこととか、振り返りは先ほど紹介した記事に詳しく書いてあるので、ここではサラッと振り返ります。

環境構築は詰まるし、コード読んでも何が起きているのか理解できないし、でも成果は出さないといけないし、、で個人的に大変だなと感じた時期。

最初は軽微な修正や機能追加をバックエンド側のRailsを触って実装していました。
「元々スクールでRails触ってたし、大丈夫だろう」と思っていたものの、全く見たことのないコードや知らない機能等多くあり、一つ一つ解消するのにやっとでした。(コード読んでも自分では解決できないこともあった)

そんな中でも自分が組織に対してできること(コードを書くこと以外のことも含めて)をやらないと存在価値がないと思っていたので、毎日フルパワーで過ごすことに必死だったなと思います。

とにかくスピード感を意識しながら過ごした1ヶ月でしたが、そのおかげか吸収できることも多く、段々と慣れていくことができていった1ヶ月目でした。


少しずつ覚醒し始めた2ヶ月目

1. 先輩エンジニアとのペアプロとアドバイス

かなり自分の成長スピードが上がったなと感じたのがタイトルにもある「ペアプロ」をしてもらった時。

開発ではRails, React(TypeScript), GraphQLを使っていますが、GraphQLやReactに関しては触ったこともなかったので、「何のためにあるか?」は理解できても、「具体的にどのように使うのか、使われているのか?」は無知な状態でした。

そんな時、先輩エンジニア(Nさん)に勧めていただいた公式ドキュメントと記事を一通り読んだ後にペアプロをしていただきました。
その時にいただいた以下アドバイスが非常に参考になったので紹介します。

『実装方針を、バックエンドとフロントエンドに分けて「どんなことをするのか」「この段階では何ができていれば良いのか」をステップごとに区切ることで、、、
①実装を進める上で、そのタイミングでやらないといけないことが明確に分かる
②実装が正しいかをステップごとに確認でき、フィードバックサイクルを細かく頻繁に回すことができる
③エラーがどこで起きているかを切り分けて特定しやすい』

元々はアサインされたissueがあったら「それに合わせたコードをいきなり書く」のような形で実装をしていたのですが、上記アドバイスを実践してみると、かなりスムーズに実装できるようになりました。

簡単な例で言うと

  1. バックエンド側で返す値を定義する(resolverの定義)

  2. graphiqlで欲しい値が取れるかどうかを確認する

  3. 2で取れたqueryを元にGraphQLの型定義

  4. 3で定義したGraphQLを使ってデータを取得し、フロントで表示する

のような感じです。

これを一つ一つステップに区切って行うことで、多くの恩恵を受けられるようになったので、かなり効果的だなと思いました。


2. 仮説を持った上で質問することの習慣化

2ヶ月目は仮説を持った上で質問することが習慣化した月でした。

  1. 円滑なコミュニケーションを取るため

  2. 自身の知識の習熟度を上げるため

を目的に始めたのですが、自身の仮説を持った上で質問をすることで、自分に足りない部分(知識なのか経験なのかなど)が明確に分かるようになりました。

学校のテストや問題集等とも同じようなものかなと勝手に思っていますが、一度間違えた問題の方が人間は覚えやすい、記憶しやすいのだなと感じています。

仮説を持って質問するということは、自分の中で正しいと思っているものをぶつけ、それに対するFBや正解をもらうことで、より一層その解が自分の中の知識として身に付くようになる、というサイクルを回すことだなと思います。

この1ヶ月は常に仮説を持った上で質問をしたり、コミュニケーションを取ったりすることを意識していたため、先月よりも多くの知識や、実装方針の決め方などを体得できたのではと感じます。


できることの幅が広がり始めた3ヶ月目

1. Epicを元に設計〜リリースまで行う

『EpicやUserStoryを自分でissue分解して設計〜バックエンド実装〜フロントエンド実装〜リリースまで経験して欲しい。顧客に価値を届けるという成功体験を積むことでそのプロセス自体の楽しさや貢献できることの楽しさを知ってほしい』

2ヶ月目が終わったタイミングで上長の方からこのように言っていただき、3ヶ月目はまさにそのような経験をさせていただきました。

入社してからアサインされるissueの大きさに切り分けたら良いのだろう、と考えて、先輩方を参考にissueを切り、バックエンドとフロントエンドごとに実装方針や実現可能性を調べて着手する、という一連の流れを担当しました。

  1. 実装方針を自分で立てる

  2. 先輩エンジニア(Tさん)に壁打ちして、自身が考えていた実装方法との差を感じる

  3. 「そんな方法もあるのか」と新たな気づきを得る

  4. 頭の中で実装方針が明確になる

  5. 実装が見積もり通りスムーズに進む

  6. 結果的にスプリントも達成、ほぼ0の状態から機能追加を行うという経験を詰める

という良いループを生み出すことができました。

最初は「え、これどうやって実装するのか見当もつかない、、」といった機能でも一つ一つ細かく切っていくことで、見えなかった部分や考慮すべき点が見れるようになった感覚があります。

一方、2の「先輩エンジニアに壁打ちして、自身が考えていた実装方法との差を感じる」に関しては、知らない知識も多い、経験値も違うということもあり、先輩エンジニアとの差分は大きくあると感じた3ヶ月目でした。

すごく良い筋肉痛だと思うので、その差分を一つ一つ潰しながら、埋めながら進んでいきたいなと思います。


2. 1日の振り返りの時間を意図的に取ることの恩恵

実は2ヶ月目から行っていたことですが、1日の振り返りの時間を意図的に取るようにしていました。

## YYYY/MM/DD

## 今日の学び
- 

## 実装
- 

## 疑問
### 疑問1
- 分からないこと
  - 
- 解消
  - 
- 参考
  - 

### 疑問2
- 分からないこと
  - 
- 解消
  - 
- 参考
  - 

### 疑問3
- 分からないこと
  - 
- 解消
  - 
- 参考
  - 

## 理解が足りないと感じた箇所
- 

## 雑メモ
- 

上記フォーマットを元に、実装したことや、分からなかったことを3つくらい出して、それに対する振り返りを30分間で行うようにしていました。
(もちろん30分で終わらないことも多かったw)

自身の実装はもちろんですが、先輩エンジニアのPRから、自分の中で知らなかったことや学びを強制的にアウトプットすることができるので、自分の知識に繋げることもできるし、1日1日を濃く過ごせているなと感じることもできます。

たまに1日に10個以上も分からないことが出てくるのでまだ解消しきれてないものもありますがww

これをやっているおかげか、当初は点としてバラバラにあった知識が、少しずつ繋がり始めてきている感覚もあります。

それをグルーピングしてみると、自身に足りない知識が明確に分かるのでやっていてよかったな、これからも続けたいなと思います。
(ちなみに3ヶ月目はGoogleMap APIを沢山触らせてもらったのでかなり詳しくなりましたw)。


まとめ

ここまで読んでくださりありがとうございました。
(ちょっと長過ぎたかも)

「エンジニアになってもう3ヶ月経つのか」と思うくらいあっという間に過ぎ去りましたw

入社前は想像してなかったくらい出来ることの幅も広がって、刺激的な毎日を過ごしています。

学ぶことが沢山あるのもそうですが、自分のために惜しみなくFBをくれる方々に本当に恵まれているなと感じます。

この4ヶ月目からは、24新卒エンジニアのメンターも担当させていただくことになったので、もっと頑張らないといけません。

まだまだ教えられることは多くないですが、この3ヶ月で先輩エンジニアの方々から学んだことを自身で言語化しながら、伝えられたらなと思っています。

あとは少しずつ外部イベントに参加してみたり、横のつながりを広げたり、コミュニティ内で勉強会みたいなのもやってみたいなあと思ったり、、

色々なこと考えてるので、ぜひ仲良くしてくださいw
https://twitter.com/engineer_aion

ちょっと長くなってしまいましたが、ここまで読んでくださりありがとうございました!

それではまた!

この記事が参加している募集

#振り返りnote

86,560件

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