🍣

サイバーエージェントの新卒エンジニア1年目が入社して半年までで学んだこと

2024/10/25に公開

今回は前回書いた「サイバーエージェントの新卒エンジニア1年目が配属1ヶ月で学んだこと」に引き続き、配属されてから半年間で学んできたことについて振り返りしようかなと思います。前回はソフト面的なことが多かったですが、今回はハード面中心でエピソードベースで振り返っていこうかと思います。自分のアウトプット兼ねてますが、新卒の働き方とかの参考になれば幸いです。
想定読者

  • 新卒から働いて半年でエンジニアとしてどれくらいのレベル感になっていれば良いのかの参考にしたい方

入社前の経歴・技術スタック紹介

  • 筑波大学大学院卒(コンピュータビジョン専攻)
  • 研究内容
    • 顔画像に対して、顔の特徴点を加えることで表情推定の精度を向上させる研究(大学)
    • 3DMM という技術を用いることで、顔の表情を滑らかに変化させる研究(大学院)
  • 技術スタック
    • 言語
      • Python
      • Java
    • フレームワーク
      • PyTorch
      • Flask
      • Gradio
    • GCP
      • BigQuery
      • ワークベンチ

半年間の学び

ここからは、半年間で学んだことをエピソードベースで書いていこうと思います。

4月〜6月(研修)

研修については、自分の気持ちベースで軽く書いていこうと思います。

自分の場合だと、最初に1週間ほどビジネス・デザイナー・エンジニア合同で研修を行いました。社会人としての基本的なマナーや会社でのルールやツール紹介などありましたが、特に自分が印象に残ったのは、「どう会社を楽しんでいくか」という部分でした。その時は、会社に貢献したいという気持ちが強く、モチベーションは最高潮だったのですが、半年間働いてみて、やはりその頃よりモチベーションが低下したのは事実です。楽しんでやる仕事というのは成長度合いが全く違いますし、バリューの度合いもかなり大きいと半年経って思います。

次の1ヶ月間では、エンジニアだけでSNSサービスの開発を行うという研修がありました。2024年の研修から「AIを活用する」という要件が追加され、自分はAIの活用を担当していました。開発してて思ったのが、自分は、フロントエンド、バックエンド、インフラ系の技術に疎く、「同期の技術力やばすぎ!」「自分が役に立てる部分とかあるん??泣」と思ってました。しかし、優しい同期が色々教えてくれて、最終的にはフルスタックで開発してました。

最後の2週間では、事業部だけでの研修で、ML/DSの技術特化で学びました。この研修が、自分の今のタスクにめっちゃ効いてて、開催していただいて本当に感謝の気持ちでいっぱいです。ありがとうございます。この研修で作った生成AIを活用したアプリに関する記事も投稿しておりますので、良かったらご一読ください。

学んだ知識・技術

  • 全体研修
    • ソフトスキル全般
  • エンジニア全体研修
    • AWS
      • Lambda
      • ECR
      • ECS
      • SQS
      • S3
      • DocumentDB
      • bedrock
    • Go
  • 事業部研修
    • データアプリケーション
    • セキュリティ
    • MLモデリング
    • MlOps
    • A/B テスト
    • Tableau

6月〜7月(本配属から間もない頃)

基本的にはこちらの記事で書いてありますので、学んだ知識だけ残しておきます。

学んだ知識・技術

  • GCP
    • Pipeline
    • Cloud Build
    • kube
    • GCS
    • GAR
  • 特徴量エンジニアリング
  • Github

読んだ本

7月〜9月(仮説検証からモデルへの組み込みまでを学ぶ)

自分の中で一番インパクトがあった時期で、学びが多かったです。

フルスタックエンジニアという言葉があります。フルスタックエンジニアは一般的には、クライアントエンジニアかつサーバーサイドエンジニアを両方担当する人を意味します。ML/DSという職種にもフルスタックエンジニアという概念が存在すると考えていて、流れとしては、データサイエンティストと MLエンジニアを両方担当する人かなと思います。データサイエンティストとして分析時には、仮説をたて、その仮説を検証し、仮説と検証結果が同じだった場合には改善点をメモ、仮説と検証結果が異なっていた場合は、検証結果を元にして仮説を立て直します。この分析を繰り返します(仮説検証サイクル)。仮説検証サイクルの結果、どういうアプローチで解決すれば良いかを提案し、 MLエンジニアとして実際にモデルに組み込みリリースという流れになります。このフローは結構重要だと思っていて、入社前でも是非統計学とMLモデリングに関することは勉強しておいた方が良いです。

学んだ知識・技術

  • 統計学
    • 統計検定準一級の勉強

読んだ本

9月〜10月(探索的分析を学ぶ)

この期間は、7月〜9月で学んだことを活かしてより質の高いアウトプットを出すことを心がけていました。

この期間も「データサイエンティスト兼MLエンジニア」のタスクを遂行していました。7月〜9月の期間で遂行したタスクのフローでは、課題発見→仮説→検証→仮説→検証→...→分析結果から提案→MLモデリング→リリースといった流れでした。9月〜10月の期間では、少しフローが変わり、仮説検証の前に探索的分析を行います。具体的には、課題発見→探索的分析→仮説検証→...という流れになります。仮説検証との違いとして、仮説検証ではすでにあるデータの特徴に対して仮説を持ってその仮説が正しいかを検証するのですが、探索的分析では、そもそもデータの特徴を認知しておらず、どのようなデータの特徴を持っているかを探すところから始まります。機械学習で言うところの「教師あり学習」と「教師なし学習」みたいな関係だと思ってます。このフローもめちゃくちゃ重要なので、勉強しておくと良いです。

学んだ知識・技術

  • 統計学
    • 統計検定準一級の勉強
  • GCP
  • tableau

読んだ本

まとめ

今回は、自分が業務を遂行していく中でどのような技術を身につけたのかについて書きました。この記事を参考にして、入社して半年で何を学べばいいのかの指標の一つになれば幸いです。今後の自分の業務としては、探索的分析のタスクを引き続き遂行していく予定です。この「データサイエンティスト兼MLエンジニア」のフローが身につけば、とりあえず一人前になれると思うので頑張っていきたいと思います。また、ML/DSという言葉は世間に浸透している言葉ではないと思いますが、AIが今後更なる成長を見せる中で、ML/DSは今でいうフルスタックエンジニアくらい一般的な概念になっていくと思っています。今後の自分のキャリアとして、その概念を一般的なフローとして確立する側のエンジニアになりたいなと思います。

Discussion