LIFULL Creators Blog

LIFULL Creators Blogとは、株式会社LIFULLの社員が記事を共有するブログです。自分の役立つ経験や知識を広めることで世界をもっとFULLにしていきます。

LIFULLの新卒エンジニア研修 in 2020

こんにちは。LIFULLでエンジニアをしている中村優太です。 2020年4月に新卒で入社して、早くも4ヶ月、配属されて2ヶ月が経過致しました。 この記事では、配属までのLIFULL新卒エンジニア研修についてご紹介したいと思います。

はじめに

LIFULLのエンジニアは2ヶ月間の新卒研修があります。 最初の2週間は全職種合同で会社のビジョンの理解や社会人の心構え、ビジネス基礎を学び、残りの1.5ヶ月間はエンジニア研修になります。

LIFULLの新卒エンジニア研修はプログラミングの基礎の基礎から始まります。 と言うのもLIFULLはとにかく経営理念『常に革進することで、より多くの人々が心からの「安心」と「喜び」を得られる社会の仕組みを創る』を大切にしています。 採用過程では技術力を評価の軸にするのではなく、経営理念に共感する価値観を持っているか?、それに伴う行動を自発的に起こしてきたか?が評価されている(のだと思います!)。 そのため新卒には、Web開発インターンをしていた人もいれば、Web開発は未経験と言う人もいます。 それどころか同期は、大学で生物を研究してた人、機械科出身、農学部出身とバックグラウンドも様々です!(ここもLIFULLらしい)

前置きが長くなりましたが、つまりは技術差があるのです! 新卒エンジニア全員がWeb開発の基礎と全体像を理解し、実装できる状態にしてから実務に入る。 そのためにエンジニア研修は1.5ヶ月に設定されています。

そして今年はみなさんご存知の通り、新型コロナウイルスの影響により入社初日から出社できないと言う状況でした。 LIFULLでは入社式もリモートで行いました。 当然エンジニア研修もフルリモートで行われました。

そんなLIFULLの新卒エンジニア研修について紹介していきます。 このブログを見ていただいた方、特に就職活動中の学生に入社後の様子やLIFULLの人となり、空気感が少しでも伝われば幸いです。

研修スケジュール

以下がざっくりとした研修期間のスケジュールです。()内には営業日を書いています。

  • 04/10 - 05/01(15) プログラミングの基礎
    • Linux
    • HTML, CSS, JavaScript
    • PHP
    • PHPフレームワーク(Laravel)
  • 05/07 & 05/08(2) ソフトウェアテスト & セキュリティ研修
  • 05/11 - 05/19(7) 個人開発演習
  • 5/20 成果発表会

スケジュールを改めて振り返ってみると、ゴールデンウィークなどもあって営業日だけで言うと1ヶ月分もなかったんですね。 内容については後述してますが、25日間でやる内容にしてはかなりボリューミーです。 さらに今年はオンラインでの研修ということもあり、何かと模索しながらの研修で大変でした。 講師の方は僕たちの数倍大変だったと思います。。。

あくまで僕の例ですが、研修前と研修後のスキルマップはこんな感じです。 Web開発はほとんど未経験でしたが、研修を通して非常に幅広い技術に触れたと思います。 研修の最後の方にはスキルマップには記載されていない技術にもチャレンジしたので、めちゃくちゃ詰め込み教育ですね。 f:id:LIFULL-202004011:20200727165629p:plain f:id:LIFULL-202004011:20200727165716p:plain

プログラミングの基礎

「はじめに」でも記述したようにLIFULLのエンジニア研修は基礎の基礎から始まります。 Linuxの生い立ちや、HTML,CSS,JavaScriptを使ったDOM操作などWeb実装未経験者にも1からわかる授業です。 ちなみに研修のスタイルとして、講義内容についてすでに理解している人は自習しててOKです。 あくまで目的はエンジニア基礎スキルの向上です。

PHPの研修の最後には、課題アプリケーションを2つ作成します。 課題が与えられ制限時間内にアプリケーションを作成します。 実装が終わると、レビューの時間が設けられており、2人分のコードに対してレビューを行います。 また自分のコードには同期2人と講師の方からレビューをもらえます。 (ちなみに講師の方は全員分のコードをレビューしてくれました。大変だ。。。) 学生時代の研究では、コードに対するレビューは経験することがなかったのでとても新鮮であり、同時にレビューで他人のコードを理解することの難しさを学ぶことができます。 配属されて2ヶ月ですが、先輩方のレビューを見ていて、レビュー能力はエンジニアにとっていかに大切な能力なのかをひしひしと感じてます。

社内には、ソフトウェアテストとセキュリティを専門に扱うグループがぞれぞれあり、そのグループの先輩社員から1日ずつ講義を受けます。 ソフトウェアテストでは実際にある仕様に対するテストケースを自分で考えます。 テストケースを考える上で必要な観点が必要最低限身につきます。

セキュリティ研修では、座学もありますが、実際に研修用サーバに対してSQLインジェクションやXSSを仕掛けます。 研修の最後にはCTF(Capture The Flag)という情報セキュリティのスキルを競い合うセキュリティコンテストを行います。 2人一組で課題に取り組みます。 研修用のWebサイトに対して、いろんな攻撃手法を試して、隠されたキーワードを見つけ出します。 これがまた楽しい!がしかし、できないと悔しい。。。

個人開発演習

個人開発演習はサービス開発における「企画、スケジューリング、要件定義、設計、実装(サーバサイド、フロントサイド)、テスト」の全てを1人でやりきります。 テーマは「チャレンジ&リスペクト」。 制約は「Laravelを使うこと」くらいです。 LIFULL内の多くのサービスにPHPが用いられていることからこの制約が設けられています。 みんな各々自分の作りたいサービスを作ります。

そのため特に授業などがあるわけではありません。 個人開発演習期間の1日のスケジュールは、「朝会→個人開発→昼食→個人開発→夕会→個人開発→終了」です。 本当に1日中個人開発しています。 しかし、講師の方の計らいにより、基本的にZoomを繋げたまま、カメラをオンの状態で個人開発を行いました。 そうすることで、少し実装でつまづいた時や困った時に気軽に相談できるようになりました。 そしてその問題に対して、みんなで考え、調べ解決していきます。 あくまで個人開発ですが、お互いに何を実装したいのかを理解し、知見共有していくことでみんながより良いプロダクトを作れるような環境ができていたと思います。

また、テーマにあるチャレンジの取り組み方も人それぞれで、研修内容で習った内容を最大限プロダクトに落とし込んでアウトプットすることはもちろんですが、自分なりの技術的チャレンジを行います。

  • CSSフレームワークを使わずにあえてCSSをフルスクラッチで開発する人
  • PREACT x redisで超軽量ネイティブアプリを作る
  • クリーンアーキテクチャ
  • AI技術を取り入れたアプリケーションを3つ作る

研修中にクリーンアーキテクチャが同期内でブームになりました。 個人開発演習では同期2人が実際に「Laravel x クリーンアーキテクチャ」にチャレンジしていて大変そうだったのが印象に残ってます。 (そんな同期が書いたQiita記事です。ぜひご覧ください! https://qiita.com/Shiruba/items/b0754a5815e0583aa8ce

僕は「Vue.jsとDocker使ってみたい」という、いかにもミーハーかつ浅はかな考えで以下のような技術選定を行いました。 時間も限られている中で、少し幅広く手を出しすぎたかなという気がしています。 しかし、いろんな技術に触れることは新鮮で楽しいですね! f:id:LIFULL-202004011:20200727165725p:plain

研修の最終日には成果発表会があります。 成果報告会はエンジニア全社員にZoomが公開されており、配属後のメンターやグループ長だけでなく、非常に多くの人が見にきてくれました。 みなさん活発に質問してくださり、すごく盛り上がりました!

ちなみにLIFULLでは2年目にもエンジニア研修があり、チーム開発でプロダクトを作り上げます(手厚い😂 )。 噂によるとそちらの成果報告は厳しい質問も飛んでくるとか。。。頑張ろう!

その他トピック

毎日の研修には日直が決められており、研修の最後に「日直スピーチ」があります。 自分の好きなもの、経験してきたことを好きなように話すコーナーです。

コンテンツは - 3Dモデリング - Deep Learning - 好きなキーボードについて語る - おすすめのVSCode拡張機能 - 競技プログラミングの魅力 - Haskelの魅力

みたいな感じです。

他にも講師の方による、監視技術やボトルネック調査の方法などを講義していただき、研修内容には含まれない実践的な内容も聞けました。

そして中でも僕が印象強く残っているのは、同期が話してくれた「DNAを使ってデータを保持する」という話です。 長くなりそうなので、詳細は省略しますが、DNAはアデニン、グアニン、シトシン、チミンの4種類の塩基が含まれており、この配列によって遺伝子が表現されているみたいです。 1つの塩基対で2ビットのデータを表しているということ! つまりここから導き出される結末はDNAはわずか1グラムで215ペタバイトのデータを保持できるということらしい! 衝撃的すぎますよね! 多種多様な話が聞けるのもメンバーのバックグラウンドが様々だからです!

また、研修終わりにみんなでオンライン懇親会を行い、研修では話せないプライベートな話をして盛り上がりました🍺

最後に

配属されて2ヶ月が経過しましたが、実務でも「チャレンジ&リスペクト」が大事だなと思います。チャレンジする環境があり、それを周りが全力で応援する。 LIFULLの社風と言っていいと思います。

僕は同期とやってきたプロジェクトが新規事業提案制度(Switch: https://lifull.com/company/bctw_japan/)で入賞し、業務時間の20%を新規事業創出に費やしています。 新卒でいきなり新規事業に関われるのは、とてもありがたい機会だなと感じています。 また、その新規事業は社長室と呼ばれる新規事業を専門とするエンジニアや、ビジネスのプロフェッショナルがアドバイスをくれたり、時にチームのメンバーとして事業を推進してくれます。 まさに「チャレンジ&リスペクト」です。 僕自身も配属された部署で最大限価値を提供し、さらには今行ってるプロジェクトをLIFULLの子会社化するという目標を持って突き進みたいと思います!

最後までお読みいただきありがとうございました。 ぜひ、少しでもLIFULLって面白そうだなと思っていただけたら幸いです。 さらにLIFULLに入社して、みなさんと一緒に働けるのを心から楽しみにしております! では!