This page looks best with JavaScript enabled

リクルートインターン2019行ってきた

 ·   ·  ☕ 14 min read  ·  🐶 odanny · 👀... views
    🏷️

はじめに

対象読者

  • リクルートのエンジニアインターンに興味のある学生
  • 若造が頑張ってるのを見るのが好きな人生の先輩方

自己紹介

リクルートテクノロジーズの部署に配属されました.

Androidエンジニアとして配属されるのに,JavaもKotlinもほとんど経験がない人でした.普段はPythonばかり書いていて,趣味でC#(Unity)したり,AtCoderやってたりしています.

学業では神戸大学でリハビリx機械学習をやっていたり,ソフトバンクAI人材奨学生だったりで生きています.技術インターンは今回が初でした!

参加特典??

まじめな話に入る前にインターンで食べたランチ(の一部)をまとめておきます.

lunch.jpg

毎日おいしいランチが食べられるのは幸せでした!!しかも銀座!味覚がばぐってました!

あと参加にあたって,1万円まで技術書を買ってもらえるのですが,自分は以下の三冊を買ってもらいました.いずれもとても面白い内容です(ステマ).

books.jpg

待遇

上の特典たちに加えて

  • 時給2000円
  • 交通費支給
  • 広々なホテル
  • LT会

自分は研究室の用事とかで東京と神戸を合計3往復したので,交通費が出なければ死んでました.あと Macbook pro メモリ16GBを借りました.

room.jpg

なぜリクルートのインターンか

技術も強くてビジネス視点も持ち合わせたエンジニアがいそうな企業で,その人たちの生き方・考え方を吸収したいと思ったからです.

自分は今年の春くらいからビジネス方面に強い興味を持ち始めて,プログラミング教室を開いてみたり,学生起業した友人の資金調達のためのデモアプリを作ったりしてました.その中でやっぱり自分はエンジニアをしたいという思いと,ビジネス的なインパクトを生みだしてみたいという思いが同時にわいてきました.そこで起業家精神なるものを大切にしているリクルートにインターンしてみて,そこで働く人と話してみたいと思いました.(あとおいしいランチも食べたかった)

こうしたキャリア観がどのように変化したかについては後述します.

取り組んだ内容

スケジュールはおおむね以下のようでした.

  • 第一週:イントロ
  • (第二週:大学に戻る)
  • 第三週:実案件
  • 第四週:アーキテクチャーのテスト

時系列に沿って話していきます.

第一週:イントロ

「なんで受かったのかわからない」

インターン中毎日日記をつけてたんですが,初日の一行目にこんなこと書いてました 笑.初日に自己紹介LTがあって他のインターン生の話を聞いていたんですが,スペックがあまりに高すぎてビビってました.あとMac初心者すぎてslackアプリを開くことすらできないということでさっそく心が折れました.初日が終わったタイミングで「これからやっていけるだろうか…」ってなってたみたいです.井の中の蛙が大海を知った瞬間です!

二日目から部署に配属されて,初週は実コードを触ってみたり,プロダクトについて説明してもらったり,そもそもAndroid開発のやり方から質問したりしました.実際のミーティングにかなり参加させていただいて,知らない用語や概念を一つ一つ教えてもらいながら,業務のイメージを少しづつつけていきました.またチーム内のコーディング規約やGitHubブランチ運用,そのほか開発にあたっての諸注意などを教えてもらって,インターン中にまず取り組んでいく実案件を行うための基礎を固めていきました.

実際この段階では,ひたすら教えてもらったことをメモして家で復習する,を繰り返して知識を吸収しまくってました.具体的には業務が終わったらその日の復習のほかに

  • これまでGUIに甘んじていたGit操作をCUIで行う
  • サンプルアプリを開発してAndroidと仲良くなれるようにする

をしてました.ここで夜遅くまで粘ってたのがのちの開発の時に少し活きた気がします.

初日に感じていた不安は配属後なくなっていて,むしろ貪欲に知識を吸収してやる精神がわいてました.理由としてはメンターの方に不安点を相談した際に「誰でも初めての時がある,他のインターン生はそれが君より少し早かっただけ」ということを言っていただいたことと,買ってもらった「情熱プログラマー」に「集団で一番のへたくそであり続けることが自分を成長させる」と書いてあったからです.

第二週:大学に戻る

(大学に戻ってました)

この一週間で頭がすっからかんになりました…(研究も進んでない…)

第三週:実案件

この頃にはチームになじんできていて,初週はついていくだけで精一杯だったミーティングも目的や論点を意識しながら聞けるようになってきました.もちろん知らない単語は無限に出てくるので適宜メモしながら質問するようにしていました.

そしてこの週から実案件に着手していきました.自分が取り組んだ内容は実装量もあまりなく簡単な部類だったんですが,設計からテストまでの一連の流れを通して学びがとても多かったです.各フェーズについて少し書きます.

設計

個人開発では目にしたことのないような膨大な数のクラスやファイルがあって,初めに全体像をつかもうとすると途方もない時間がかかりそうでした.複数のショートカットを教えていただいて,自分のやる範囲を重点的に確認しながら進めました.それでもJava/Kotlinに慣れていない私は結構苦労しました.

タスク分解

私は結構思い付きで実装方針を立てがちなので,意識して複数の実装方針の中から最適と思われるものを選ぶようにしました.これがなかなかくせもので,変更行数を最小化するのが良いとも限らず,他の人が読みやすくてテストしやすくて機能変更しやすくするのは難しいなと感じました.(Pythonワンライナー遊びの弊害が出た…).メンターの方に各実装方針について「なぜその実装にするか」を再確認していただいたおかげで,自分なりの考えをもって方針を話せるようになりました.

チームに設計内容を共有すると,メンバーの方から自分ならこうするというアドバイスをもらえてとても参考になりました.これほど巨大なアプリの中の1つのクラスの中のあるメソッドについて話しても,それを聞いて指摘ができるのはベテランって感じで尊敬しました.メンターの方曰く,完全にすべて把握しているわけではないが,デザインパターンや設計の思想などを知っているので違和感ある方針は防げるとのことでした.勉強になります.

実装

修正範囲にJavaもKotlinもあって両者の性格の違いを感じられました.ここでメンターの方とペアプロ(初体験)をして,強い人の思考プロセスや実装の仕方を追体験しました.(メンターの方の頭の回転が速すぎて私はタイピングマシンになりかけましたが,)同じコードを二人で見るのはとても楽しい時間でした.Kotlin書くの楽しいですね

テスト

テストの際は多数のAndroid端末に囲まれて,幸せな気持ちでテストしました.(項目が多いとつらいだろうけど…)

第四週:アーキテクチャーのテスト

案件が終わったので,新しいことに挑戦することにしました.メンターの方にチームの不に取り組んで貢献したいと言うと複数の選択肢を出してもらいました.もちろん自分の特技を生かす(データ分析するとか)でも良いと言ってもらったのですが,やることを明確にするだけの時間がなかったので現状チームが抱えている課題に取り組むことにしました.

具体的には「Android開発でGoogleが推奨しているMVVMアーキテクチャーを実コードに適用して課題を洗い出す」という内容でした.チームとしては試してみたいけど,そのための工数を確保できていないようでした.

アプリ アーキテクチャ ガイド

アーキテクチャーのアの字もわからない状態でしたが,MVCから順に勉強し,なんとかコードに対して実験してみることができました.と最終発表で話しましたが,実際は初歩的な部分しか試せなくて悔しい思いをしました.アーキテクチャーを学ぶにあたって以下の本を借りて読んでいました.

Android アプリ設計パターン入門

実装にあたってGitでブランチ作ったりこまめにコミットしたりしたんですが,ある程度思い通りに操作できてインターン中での成長を感じました.あとこの週に人生初のLTを経験してとてもニッチな話をしました.こういう趣味の話を面白がって聞いてくれる環境は素晴らしいです.

レトロゲーマーに送る~スーパーファミコンコントローラをPCで使う方法~

振り返り

会社で働くということ

個人開発では最新のイケイケな技術なりを使って「つよつよ感」を味わいながらコードをかけるんですが,実業務ではそうもいかないということを実感しました.とくに技術的な面白さとビジネス的な価値をはっきり分けて考えなければならず,「流行っているから」「面白そうだから」という理由で技術を導入するのではなくて,「ユーザー体験が向上するから」「(将来的に)利益につながるから」という事業への貢献がないといけないんだなと思いました.何かを導入する際に考えなければならないことはそれだけではなくて,今後の保守性や導入の費用対効果などなど多くの要因があります.

またすべて自前で書くかというとそうではなくて,時間との兼ね合いでできるだけ車輪の再発明はせず,あるものはうまく使っていくのがいいです.このあたりのバランス感覚は今後自分が社会人になるうえで獲得していかなければならないと感じました.(※勉強のための車輪の再発明は大切だと思いますし,積極的にやっていきたいです)

あとコードの書き方についてですが,個々人でレベルの違うチームである以上,おしゃれなイケてる実装ではなくて,可読性があって,数年後自分が他の会社に行ったとしても新しい人が理解できるコードを書くべきだし,設計もそうあるべきだと感じました.そしてこうした「べき」論は理想でしかないことをベテランの方から教わりました.理想像を持ちながらもその場,そのプロジェクトに適した設計や実装を心がけていきたいです.

サラリーマンとしてお金をもらう以上,事業や企業に貢献しないといけないという(当たり前?の)ことを再度実感できました.社員の方,パートナーの方,オフショアの方,それぞれ価値の出し方は違えど,みな日々事業に貢献しているのを実感できたし,それぞれがどのように自分の強みを出していくか試行錯誤しているのが分かりました.今回インターン生とはいえ,給料に見合うだけの貢献をしたかといわれると「はい」と自信を持って答えられないのは,自分がまだまだ未熟である証拠だと思います.インターン中ずっと「一時間2000円以上の価値を生んでやる!」という気概でとり組み続けられたわけではないので,もっと努力しないとなと思います.

心理安全性はとても重要

「効果的なチームとは何か」を知る

これはメンターの方,チームの方々を見ていて思ったことですが,忙しい中にも相談しやすい雰囲気がありました.特にだれに質問しても手をとめて真摯に答えてくださったこと,悩んでいると気さくに話しかけてくださったことなど,振り返ってみると恵まれた環境にいました.ミーティングでメンバーそれぞれが自立的に意見を出して常に改善をしていこうとしていたのも,たとえ筋違いでも受け入れてくれるという安心感があるからなのかなと感じました.

仕事をしていく以上必ずチームを組んでやっていくわけで,そのチームの関係性を円滑に保つことは非常に重要な内容です.しかしこれまで自分は己の能力向上ばかりに目を奪われていたなと反省しました.さて自分がこれからそのような人間になるためにどのようにすればよいかですが,まずは人の悩み(特に研究室の後輩とか部活の後輩とか)に真摯に向き合うことに取り組んでいきたいと思います.誰かの課題を自分の課題としてとらえて解決に向けて取り組む.そうして周りの人から相談されやすい雰囲気を作っていくことは自分の成長にもつながるので,今日から取り組んでいきたいです.

Androidの楽しさ

Androidは成熟していて,インターン先の方々がベテラン揃いだったのもあって広く知識を教えてもらいました.特に自分が感動していたのはAndroidのGradleの話とかflavorの話で,これまでサンプルアプリ制作ではまったく気にしていなかった部分でした.インターンで買ってもらった本を読んでみて,高校・大学と8年近く触ってきたデバイスについて自分は何も知らなかったんだな!ととても驚き,楽しくなりました.

また自分が普段使っているAndroidデバイスに自分の実装が反映されるという喜びはとても大きいです.自分の案件は小さくてUIには関係ない部分でしたが,リリースされるとなんとなくうれしくなりました!もしUIの変更を自分が担当して無事動いたらもっと楽しいだろうなと思います.

インターンを通してAndroidエンジニアという道もありだなと感じました.Androidは技術として成熟?しつつあって,ソースもオープンソースだし深いところまで勉強しようとすれば学べる環境があります.エンジニアとして初めに挑戦して開発力と技術力を磨くには適しているのではないかと感じました.もちろんスマホ自体がいつまであるのかという問題はありつつも,少なくとも数年間は腰を据えて取り組めるんじゃないかと思います.

リクルートについて

キャリアパス

私は技術者が目指す先はそれぞれあれど,ある程度のグループ分けができるんじゃないかと思っています.つまり技術を極めていく方向やリーダーとなって全体を引っ張ていく方向などなど.リクルートではどのような人材が評価されるのか,どんな人材が多いのか気になっていました.

リクルートの色々な人の話を聞かせていただきましたが,みな目指す先は異なっていました.今やってる技術をとことん深めていきながら周辺の造詣も深めていく人,将来のためにもう一つの柱を立てようとしている人,プランナーからエンジニアになった人….そしていずれのキャリアにおいても評価される仕組みがあるということを聞きました.日本では技術一本ではだめみたいな話を聞いたことがありましたが,そういう生き方も評価される仕組みはとても良いなと感じました.そしてこうした評価制度が公開されている点もいいなと感じます.

結局「いろんな人がいる」というありふれた表現になってしまうのですが,組織的にいろんな人を活かすための工夫があると感じました.

リクルート 人材開発方針
上のサイトに公開されてる.

各社員が自分の強み弱みを定期的に確認し,今期自分はどうなっていくか,将来的にどんな姿を描いていくのかを自分だけでなく上司とも確認しているようです.個人のやりたいを組織的に応援できるようにしていて,こうした取り組みが多様な生き方を可能にしていると思いました.

エンジニア

待遇もやりがいも優れている印象でした.待遇については調べれば出るので省きます.

やりがいの面では二つあると思っていて,

  • みんな知っている巨大サービスに貢献する
  • 新規サービスを立ち上げる,良くしていく

大きな企業でこのどちらもやれるのは珍しいと思います.自分はどちらかというと新しいサービスに一度は関わってみたいし,いくつかの事業領域に触れてみたいので,一つの会社の中で転職?的な気分が味わえるのは働いていて楽しそうです.

Ring

また上のサイトに載ってることですが社内で新規事業のコンテストがあります.リクルートのリソースを使って自分のやりたい事業に挑戦できるのはエンジニアとしてもおもしろそうだと感じます.『ゼクシィ』『R25』『スタディサプリ』もここから生まれたようです.技術も起業も興味ある人は最強の環境だと感じます.

将来像

自分が漠然と考えていたのは,「若いうちはひたすら技術を深めて,将来的にはチームリーダーやプロジェクトマネージャーみたいなものになれたらいいなあ」.この漠然とした思いは今も変わらないですが,人生何が起こるかわからないし,あまり先のことを考えても仕方ないなと感じました.理想像や夢は持ちつつもまず目の前のことに真摯に向き合い続けて,少なくとも将来の自分に胸を張れる選択を積み重ねていきたいです.

まとめ

今振り返ると自分にAndroidの知識があればインターンでもう少し深いところまでやれたのではと思ってしまうのですが,実際の現場でプロに学べたことはとても贅沢な体験だと感じています.

インターン参加にあたり,Androidチームの方々,リクルートテクノロジーズの方々,人事の方々,他のインターン生の方々,そして一か月間横で支えてくださったメンターの方,ありがとうございました.

これからも一歩ずつ頑張っていきます.

Share on

odanny
WRITTEN BY
odanny
自作キーボードはまり中