LINE Engineering
Blog
1ヶ月でLINEクローンを開発!LINEの新卒エンジニア技術研修をご紹介
Tech PR at LINE Corp.
LINEで技術PRを担当している三木です。
今年の4月に入社した新卒エンジニア6名が、1ヶ月半に渡る研修を終えて、各チームに配属されました。本記事では、エンジニア職の新卒技術研修についてご紹介いたします。最後までお付き合いください。
LINEでは新卒採用を2013年から開始し、その後、採用数は年々増加しています。エンジニア職は、開発/インフラ/セキュリティの3職種を採用しており、オフィスも東京・福岡の2拠点から選択が可能です(福岡は開発職のみ)。
本年度の新卒研修では、エンジニア職6名が全員東京に集合し、研修を一緒に受講しました。研修プログラムは以下のような構成でした。
入社式の様子は、こちらの記事をご覧ください。当日のカジュアルな雰囲気を感じて頂けると思います。
全体研修ではビジネスマナー・ビジネスコミュニケーション・同期の相互理解、といったメニューを用意しました。またハッカソン研修は、全職種混合でチームを編成、サービス企画~開発までの工程を疑似体験し、その難しさ・楽しさを実感してもらいました(ここでは詳細は割愛させて頂きます)。
今年度の技術研修のプログラムを設計するにあたって、重視したポイントです。
LINEでは、新卒/中途という入社区分でワークスタイルが大きく変わることはなく、エンジニアとして技術力は公平に評価されます。実際に入社1年目から高いパフォーマンスを発揮し、社内で高評価を得ている新卒エンジニアは多いです。
ただし、学生時代にインターネット企業でインターン経験を積んできた人もいれば、研究室でアルゴリズムの研究・論文発表にいそしんできた人もいたりと、技術的背景は様々です。また、中途エンジニアと比較すると、どうしてもチーム開発経験が少ないため、入社後チームに配属された時に要領が分からず、困る可能性があります。
そこで今回の研修では、「チーム開発に必要な要素を身につけてもらう」ことに主眼を置きました。
今年度の技術研修は、20日間スケジュールを確保する事ができました。その期間内で、6名を3名×2チームに分けて、並行して同じ課題に取り組んでもらいました。平たく言えば「LINEと同じようなメッセンジャーサービスを作る」という事をやってもらいました。以下、概要です。
▼開発物
▼開発目標
最小限ライン
標準+推奨ライン
オプション
▼開発言語・技術・ツール
▼スケジュール
▼チーム運営のルール
▼開発規約
特に技術的な講義を用意せず、いきなりチーム開発でスタートしたので(流れを掴んでもらうために開発シミュレーションは行いました)、新卒たちは当初やや戸惑ったようです。ただ今回の6名はWebサービスに関する開発スキルを持っていたため、講師側では適切な場面で必要な指導・フィードバックを行う事に徹しました。
各チームとも、開発にあたり必要となる・使いたい技術(Kotlin/Firebase/gRPC/spring boot/Docker/ReactiveX etc.)を自発的に調査し、採用していました。またセキュリティ職のエンジニアが所属するチームはE2EE(End to End Encryption) を実装するなど、同じ課題に取り組んだにも関わらず、それぞれ個性あるアーキテクチャーのサービスが出来上がりました。またチーム開発の経験の浅さからか、両チームとも工数見積もりの大変さを実感したようです。
なお突発的なイベントとして、開発の中盤あたりで仕様変更を両チームに指示しました。リアルな開発現場に近い体験を意図していたのですが、Webサービスにつきものの指令に新卒エンジニアたちも果敢に対応しました。
最終日は、配属先チームのマネージャー/メンターを前に、成果発表会を行いました。準備〜本番まで1.5日とタイトな準備期間でしたが、事前にプレゼンのリハーサルを行うなど入念に準備して臨んだ甲斐があり、温かい反応で迎え入れられました。両チームとも緊張の面持ちでスタートしましたが、先輩からの「どうしてその技術を採用しようと判断したのか」「そこは設計的に矛盾していないのか」といった鋭い質問に対して、自分たちの言葉でしっかりと回答していたのが印象的でした。
研修を終えた新卒のうち3名に、簡単に感想を聞いてみました。
▼参加者紹介(L to R)
Q. 新卒研修を振り返っていかがでしたか?感想を教えてください。
Y:これまでインターンしてきた会社は即戦力採用だったため、すぐに現場に参加してコードを書く、という環境でした。LINEに入社を決めた理由の一つが、エンジニアとして学習する環境が整っている点だったので、入社後に研修がしっかりと用意されていたので安心しました。
T:自分はこれまでアルバイトした会社では個人開発だったため、チーム開発が体系的に学べて非常に身になりましたし、楽しかったです。新卒研修は、linuxコマンドとかプログラム言語の演習が多いと聞いていたので、いきなりチーム開発で始まったのには驚きました。
K:すでに知っていることをなぞるような研修より、刺激はありましたね。個人開発だとなかなかやらないような、世の中で一般的に行なわれている開発のやり方を学ぶことができたのはよかったです。あと、研修終了後に打ち上げを会社が用意してくれていたのも嬉しかったですね。
Q. 今回の研修で新しい学びはありましたか?
K:E2EEの理解が深まりました。とはいえ自分でまだまだというところもあるので、論文を読んだり詳しい人に質問して理解を深めようと思います。
T:しっかり設計して工程を立てて開発に取り組んだのは良い経験になりました。
Y:タスク管理方法など、現場によっては触らないけど抑えておくべきことを研修中に一通り経験できたのは非常に良かったです。
Q. 大変だった、苦労した点はありましたか?
Y:これまで個人開発では経験がない部分は多少大変でしたね。それぞれ得意なところを持ち寄ったりググったりを繰り返しながら、チームでなんとか協力して乗り切った、という感じです。
K:Dockerを開発環境として使っていたのですが、工数の関係で社内サーバでオーケストレーションツールのセットアップを諦めて1サーバで動かすようにしました。工数の見積もりは意外に大変でしたね。
T:androidの開発経験のある人がいなかったため、androidの実装に入るまでに勉強会を集中的に行いました。それによって、全員がandroidの開発力をある程度向上することができました。
Q. チームに配属後、現場でどういったことをやりたいですか?
T:今回の研修で自動デプロイやチャット通知を実装したらチームメンバーが助かったと言ってくれたのが嬉しかったので、引き続き開発者をサポートできるような事をやっていきたいですね。
Y:自分はLINEのサービスが好きでLINEに入社したので、1ユーザーとして、アプリのユーザビリティを高めることに貢献したいです。
K:Githubのリポジトリが社内publicなので、各サービスのコードをしっかりと読み込んでいきたいと考えています。
Tech PR at LINE Corp.