見出し画像

フロントエンドエンジニアが1年間サーバサイドKotlinと向き合ってみた

※本記事は、各担当記事を広報チームが代行して公開しています。
この記事はSkillnote Advent Calendar 2024の14日目の記事です。

はじめまして、スクラムチームギアの村田です。

私からは、「フロントエンドエンジニアが1年間サーバーサイドKotlinと向き合ってみた」感想を書きたいと思います。

簡単な自己紹介
web受託制作会社でフロントエンドエンジニアとして従事後、物流系SaaSベンチャーの開発リーダーを経験し、2022年10月Skillnoteへ入社。


はじめに

弊社では、メンバーがそれぞれ専門分野を持つ一方で、フルスタックエンジニア化を推進しています。ここで言うフルスタック化とは、得意分野以外にもう1つ以上のスキルを習得することを意味します。例えば、サーバサイドが得意なメンバーがフロントエンドのスキルも持つ、あるいはデザインに強いメンバーがフロントエンドも担当できる、という状態です。

私の場合、フロントエンドを得意分野としていますが、サーバサイドの技術にも対応できるエンジニアになることを目指しました。しかし、もともとサーバサイド開発の経験はほとんどなく、仕組みすら理解していない状態でした。そこで、「1人でフロントエンドからサーバサイドまで完結できるエンジニアになる」を目標に、この1年間サーバサイドKotlinと向き合った経験を振り返ります。

最初の一歩はペアプロから

最初に挑戦したのは中規模案件で、本来はフロントエンドエンジニアとサーバサイドエンジニアが協力する形で進めるプロジェクトでした。この案件では、互いのスキル向上を目的に役割を交換しました。そして、ペアプログラミングを通じてサーバサイドの基礎を学びつつ進めました。お互いにすぐ質問ができる環境が整っていたため、安心して取り組むことができました。

独り立ちして直面した壁

ペアプロである程度の知識を得た後、1人で作業を進めるフェーズに移行しましたが、すぐに壁にぶつかりました。その1つが、「Kotlinで実現したい処理を書けない」という問題です。

例えば

  • N+1問題:関連データを効率的に取得する方法が分からない

  • リスト操作の手段:Kotlinらしい書き方が思いつかない

AIを活用した学習方法

この問題を解決するために、Copilotを活用しました。具体的には以下のような方法を取ります。

  1. JavaScriptでロジックの大枠を構築する

  2. 1のようなロジックをKotlinで実現したいとAIに質問する

  3. 返答を元にKotlinの構文を理解する

  4. 2を基に弊社コードに落とし込みプルリクエストを出してメンバーからフィードバックを受ける

  5. さらに改良しながらKotlinの理解を深める

この方法を通じて、N+1問題の解消方法やリスト操作の方法など、Kotlin独自の書き方を少しずつ習得できました。

成長を支えた「質問する姿勢」

また、サーバサイドのコードレビューに積極的に参加し、分からない部分は恥ずかしがらずに質問しました。この姿勢が、サーバサイドの設計意図や実装の背景を深く理解する助けとなりました。さらに、ペアプロやモブプロといったチームで学べる環境が成長を後押ししてくれました。

まとめ

1年間の取り組みを通して、サーバサイドのコードを理解し、自分でKotlinのロジックを表現する力もついてきました。また、得意な分野を基に学ぶアプローチとAIツールの活用が、成長の助けになったと実感しています。

この記事が、フルスタックエンジニアを目指す方々のヒントや勇気になれば嬉しいです。弊社ではフルスタック化を支援する環境を整えているので、興味のある方はぜひご検討ください!

引き続きSkillnote Advent Calendar2024をお楽しみください!