LINEヤフー インターン参加記

2024/09/20

2024/09/02 ~ 2024/09/13 の 2 週間の期間で就業型の LINE ヤフー のサマーインターンシップに参加しました!

このインターンシップでは、大規模なプロダクトの開発、および Web フロントエンド開発に関して、様々なことを学ぶことができました。

参加コース

コース名

  • 「Yahoo! JAPAN トップページの機能改善」

必要な経験・スキル

  • HTML/CSS
  • JavaScript
  • Node.js
  • React
  • TypeScript
  • Git
  • Mac の操作

あると望ましい経験・スキル

  • JavaScript のライブラリ知識
  • Redux
  • Next.js

業務内容

業務は基本的にオンラインで行い、最終日だけ出社しました。

Yahoo! JAPAN のモバイル版トップページの機能改善に取り組みました。

Yahoo! JAPAN トップページ

モバイル版トップページのイメージ

前半の 5 日間

  • Yahoo! JAPAN トップページで使用されている技術についてのレクチャーを受けました。
    • Yahoo! JAPAN トップページの全体的なアーキテクチャや、Redux などについて学びました。
  • スマホ版ブラウザのトップページに掲出されるタブコンテンツの企画・開発を行いました。
    • 上記画像の「すべて」「ニュース」のようなタブコンテンツです。
    • もう一人のインターン生と一緒に、どのようなタブコンテンツを作るかの企画から、その実装までを担当しました。
    • 初日にどのようなタブコンテンツを作成するかの企画を行い、2 日目から 4 日目までの 3 日間で開発を行うというスケジュールで進めました。企画では、インターン生 2 人がそれぞれが異なるアイデアを出した上で、企画さんのフィードバックなどを受け、最終的に私のアイデアが採用されました。開発は、もう一人のインターン生とペアプロを行ったり、それぞれがメンターの方とペアプロをして分業するなどして進めました。
    • 5 日目には部長およびプロダクトマネージャー、エンジニアに対して作成したタブコンテンツについてのプレゼンテーションを行いました。

後半の 5 日間

  • 開発チームに配属され、実際の開発業務に参加しました。
    • 小さな案件を担当しました。コードに変更を加え、レビューを受け、承認を受けた後にメインブランチにマージし、リリースを行うという、一連の開発フローを体験しました。
    • 実際に本番環境で加えた変更が正しく反映されているところまでの確認を行いました。
    • また、部署全体での定例会にも参加させていただき、どのようにして情報共有をするかや、どんなツールを使ってプロダクト全体のタスクを管理しているかなどを知ることができました。
  • 最終日には、2 週間を通しての成果・学んだことを他のインターン生やエンジニア・メンターの方々に向けて発表しました。

学んだこと

前半

  • ユーザーやビジネス面を意識した上で企画を行うという経験を積むことができた

このインターンでは、あるテーマを与えられた上で企画を行いました。 今回提案したタブコンテンツが「どんなユーザーに刺さるか」や、「ユーザー数の増加にどう貢献できるか」といったことを考えながら企画を行うことができました。 単にユーザーにとって便利なモノを考えるのではなく、それがどう収益につながるかということも意識する必要があるということを学ぶことができました。

  • ペアプロと分業のバランス調整がうまくいった

仕様が固まっていない段階や、お互いが認識しておくべき実装箇所はペアプロで開発を進めました。 ある程度使用が固まってタスクの洗い出しができた段階で分業に移ることで、効率的に開発を進めることができました。

結果として、チーム内で意見をすり合わせつつ、期間内に新規タブコンテンツの機能を完成させることができました。

  • 積極的に質問を行うことによる効率化

初めて触れるコードベースだったため、全てを把握しきれていない部分が多くありました。また、開発に充てられる期間が約 3 日間と非常に短かったため、時間のロスを最小限に抑えたいと考えました。そこで、自分が何を実現したいのかを明確にした上で、適宜質問をしながら効率的に実装を進めることができました。

  • 生成 AI の活用による効率化

CSS によるアニメーションなどの実装を行う際、生成 AI を活用することで、効率的に実装を進めることができました。

後半

  • 大規模なプロダクトにおいて、どのようにプロジェクトを管理しているか、どのように開発を進めているかを知ることができました。
  • 1 つの案件について、開発に着手するところからリリースするところまでを体験することができ、加えた変更がどのようなフローでリリースされるかを知ることができました。
  • どのような技術が使われているのか、どんなアーキテクチャが採用されているなどを学ぶことができました。

まとめ

とても密度の濃い 2 週間でした。LINE ヤフーならではの大規模なプロダクトが、どのようにして開発されているのかを知ることができ、非常に貴重な経験となりました。スケーラビリティやパフォーマンスなどを考慮した上でのシステム設計の重要性を改めて感じました。

また、フロントエンドエンジニアとして活躍していくためには、フロントエンドのフレームワークやライブラリについての知識をもっと深める必要があると感じました。今後は、今回のインターンで自分にまだ足りないと感じた部分を意識した上で開発経験を積んでいきたいと思います。

おまけ

メンターの方に「システム設計の面接試験」という本をおすすめしていただいたので、少しだけ読み進めています。 スケーラビリティなどを中心に、システム設計に関する知識を深めることができそうです。