📚

ソフトウェアエンジニアとしての新卒1年目を振り返る

2023/04/13に公開

こんにちは。東京でソフトウェアエンジニアをしているぱっぱです。

私は、2022年に新卒でWeb系のベンチャー企業に入社し、ちょうど4月で新卒1年目が経過したので、どんな1年だったかを振り返ろうと思います。

普段は、Ruby on Railsを用いた開発を行っており、現在はプロジェクトの要件定義から開発、運用保守まで幅広く担当しております。
この1年で色々な経験ができ、多くの学びがあったので感じたことや考えたことを書いてみようと思います。

仕事の振り返り

新卒1年目では、全ての業務が初めてなので、毎日が刺激的でとても楽しかったです。その中で、エンジニアとして一人前になるために考えていたこと、大切だと感じたことを書いていきたいと思います。

振り返りの大切さ

弊社のエンジニア組織では毎日自分の行動を日報として振り返るという習慣があるのですが、振り返りがエンジニアとしての成長に重要だったなと感じています。

なぜ振り返りが大切なのか

私は以下の2つの理由があると考えています。

  • 同じ失敗を繰り返さない
  • 一回の失敗で多くを学ぶ

自分のやってしまった失敗の原因と再発防止策をしっかりと振り返ります。これは失敗の大小問わず行ったことです。例えば、よく半スペやインデントで指摘されるのであれば、ただ「今後は気をつける」という振り返りではなく、再発防止のためにどうするかをよく考えるようにしていました。具体的には「エディタの拡張機能を導入する」「静的解析ツールを導入する」などの対策を打つことです。こういった原因と再発防止を小さなことからきちんと考えることで早く成長できるのではないかと考えています。
正直、毎日時間を取って振り返りを行うことは楽なものではないですが、習慣化して本当に良かったなと思っています。

チーム内で自分の意見をしっかりと伝える

新卒1年目が先輩エンジニアやチームリーダーに対して、反論をするのは生意気だと感じてしまい、入社当初は発言する機会が少なかった気がしています。
そんなとき、上司から「 Disagree & Commit 」という言葉を教えていただきました。
これは、「自分はチームの方針に対して反論した。しかし、チームの方針が決定されたので、チームの一員としてその方針に全力で取り組む。」という言葉です。
この言葉を意識するようになってからは、自分の思っている意見はどんどん発し、建設的な議論は活発に行うようになりました。また、リーダーが判断を下したら、その方針に全力で取り組むということも意識するようにしています。
反論を言わないまま進めるのは自分にとってもチームにとっても悪いことなので、きちんと意見を伝えることは非常に重要だと感じています。

先輩エンジニアから多く吸収する

自分で考えてたくさん調べて学ぶことも重要ですが、近くに優秀なエンジニアがいるのであれば十分にその環境を活用すべきだと考えています。

積極的に質問する

私は昔から、他人に教えを乞うことが得意ではありませんでした。常に自分で調べて解決しようとしてしまう癖がありました。
私は、そのことを上司に指摘され、もっと素直になる必要があるというFBを頂きました。1年目は素直さというものを意識し、仕事に取り組むようにしました。積極的に先輩にペアプロを依頼したり、質問をしたりしました。
先輩から得られることは多く、非常に成長できたと感じます。ペアプロでは、技術的な知識以外に、先輩のエディタやツールの使い方やデバッグ時の思考であったり、実際のプロダクトコードからリファクタリングの例やオブジェクト指向の考え方など多くのことを学びました。
なので、先輩にどんどん質問していくということは新卒1年目が絶対にやるべきことだと感じています。

質問の仕方に注意する

質問はたくさんするべきですが、質問の仕方というものには注意する必要があると考えています。
それは、自分がどこまで理解していてどこからがわからないかを整理して共有することです。
例えば、(コードの実装やテーブル設計などで)案①と案②との判断に迷っているのであれば、以下を整理して共有します。

  • 案①は〇〇というメリットがあり、□□というデメリットがある。
  • 案②は△△というメリットがあり、××というデメリットがある。
  • 〇〇というメリットを享受するために案①がいいと考えた。

このように整理してから質問することで、状況を正しく伝えられ、より良いFBをいただくことができると思っています。また、先輩の時間を奪わないという観点でも重要だと考えています。

プロダクト開発は難しい

私は、個人で作ったプロダクトと現場のプロダクトとの違いに衝撃を受けました。
学生時代に個人で少しだけ開発を行っていたこともあり、一人でもプロダクトを作れるものだと高をくくっていました。
しかし、初めてプロダクトコードを見た時、想像の何倍ものコード量があり、驚いたのを覚えています。不具合・遅延を起こさずに開発を続けることの難しさを知りました。

プライベートの振り返り

資格の取得

1年目の秋にIPAの「応用技術者試験」を取得しました。また、今月に「ネットワークスペシャリスト試験」を受けようと思っています。(追記: 受かりました。)
資格試験は、IT界隈の汎用的な知識の獲得に向いていると思います。取得したことで、知識の幅も広がり、結構メリットがあると感じています。

技術書を読んだ

この1年間で以下の本を読みました。

やはり、書籍を読むことによって、業務における判断に幅が生まれることを実感しています。
これからも書籍による学習は続けていこうと思っています。

https://www.amazon.co.jp/プリンシプル-オブ-プログラミング-3年目までに身につけたい-一生役立つ101の原理原則-ebook/dp/B071V7MY82/ref=sr_1_1?crid=2KM8HLYPB3UXP&keywords=プリンシプル+オブ+プログラミング&qid=1681305189&sprefix=プリンシプル%2Caps%2C178&sr=8-1

https://www.amazon.co.jp/gp/product/4274226298/ref=ppx_yo_dt_b_asin_title_o09_s00?ie=UTF8&psc=1

https://www.amazon.co.jp/gp/product/4798124702/ref=ppx_yo_dt_b_asin_title_o06_s00?ie=UTF8&psc=1

https://www.amazon.co.jp/gp/product/4798157821/ref=ppx_yo_dt_b_asin_title_o04_s00?ie=UTF8&psc=1

https://www.amazon.co.jp/gp/product/4274224473/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1

https://www.amazon.co.jp/オブジェクト指向設計実践ガイド-~Rubyでわかる-進化しつづける柔軟なアプリケーションの育て方-Sandi-Metz-ebook/dp/B01L8SEVYI/ref=sr_1_1?crid=C1RHW44UTXN0&keywords=オブジェクト指向設計実践ガイド&qid=1681305143&sprefix=オブジェクト指向%2Caps%2C223&sr=8-1

それ以外に応用情報やネスペの勉強にたくさん参考書を読みました。

2年目の目標

2年目は1年目にできなかったことにチャレンジしていこうと思っています。
特にインプットが多かった1年だったので、アウトプットを増やしていきたいです。

ブログで発信する

QittaやZennで発信していなかったので、今年は定期的に記事をアウトプットをしていきたいと思っています。

個人アプリを開発する

友人と個人アプリを作ろうと意気込んでいましたが、頓挫してしまい開発できておりませんでした。。。
今年こそはなにかアプリをリリースしたいです。

他の言語を学習する

1年目は実務で使うRuby on Railsやデータベース、ネットワークなどのIT全体の知識習得に時間を使っていましたが、2年目はなにか他の言語を習得してみたいです。
普段から動的型付言語を使っているからこそ、静的型付言語にはとても興味を持っているので、静的型付言語を使った開発をしたいです。

参考

https://kakakakakku.hatenablog.com/entry/2016/06/04/223625

Discussion