株式会社グロービスに新卒入社して半年が経った

https://cdn-ak.f.st-hatena.com/images/fotolife/m/mktakuyax/20190629/20190629003726.png

TL;DR

株式会社グロービスに入社した。元気に生存中。押忍

はじめに

2019年4月1日から新卒エンジニアとして株式会社グロービスに入社しました。

普段は、グロービス学び放題というビジネスを動画で学べる学習サービスを開発しています。

hodai.globis.co.jp

RailsやGraphQLを書いていることが多いです。GraphQL-Rubyを最新に保ちつつ、アプリやフロントのエンジニアが楽しく開発できるスキーマについて考えています。

人生の転機に読み返して、価値があるように出来るだけ省略することなく書いているので長々しい文章となっています。まあ、読みたい人は読んでという感じです。

グロービスとは

学生は、知見録というメディア。社会人は、MBAを思い浮かべるのではないでしょうか?

globis.jp

mba.globis.ac.jp

他にも、ビジネス書籍の出版、ベンチャーキャピタル、バスケットチームである茨城ロボッツなどに力を入れています。

私が所属するGDP(グロービス・デジタル・プラットフォーム)は、EdTech分野の部門です。 ​

入社経緯

​ 私が高校生だった2012-2015は、CourseraedXといった無料で大学の授業を受講できるMOOCs(Massive Open Online Courses)が話題になっていました。

Courseで教育、Edxで哲学、MOOCsと異なりますが高校生にも優しいBig History Projectなどで受験勉強も無視して楽しんでいました。

市内に大学などなく良質な学習機会に恵まれることのなかった私にとって、世界の名だたる名門大学の講義を無料で受講できることに感動しました。この強烈な体験は、教師か動物を殺さない洗剤を開発する化学者になりたいという漠然な将来像をあっさりと破り捨てEdTech分野に進みたいと思うようになりました。

時は流れ、就職活動の時期。大学院に進もうと思っていたのですが、たまたま参加した逆求人で楽しそうに働いていた社会人に出会い就職することに決めました。

グロービスには、求人サイトで声をかけて頂きました。ちょうどその時期、東京に別の用事で来ていたので(本当の)カジュアル面談で組織体制やどのようなサービスを開発しているのかを隅々まで紹介してもらい面接を受けることにしました。

それ以降の面接は、主に教育について話していた記憶があります。当時は、小・中学生にScratchを教えていたこともあり教育と空間の関連性に興味があったので質問したりしました。その後、内定を頂くことができました。

ありがたいことに3社から内定をもらっていましたが、教育について一番考えながら仕事ができると思ったグロービスに入社することにしました。

就活で関わって頂いた全ての方に、ここで感謝したいと思います。ありがとうございました。

グロービスに入社してからの様子

入社してから半年の間で部門長に誕生日プレゼントをせがむ、押忍先輩からのマブダチ申請、ババロア戦争、うまい棒最強の味選手権、メンターの年に一度の必殺技「クワッド茶」などがありましたが、これでは社内の様子が伝わらないと思うので端折ります。 ​

研修期間

3ヶ月間新卒エンジニアは、業務時間の半分を研修に充てることができます。

また、研修期間はメンターが一人ついてくれます。私のメンターは、おっちょこちょいで忘れん坊さんだけど仕事のできる人でした。

これは、今までの教育や学びに関する自分なりの知見を生かす機会だったので楽しみながら研修を組むことができました。

私が組んだ研修は、費用が安価なことからも採用しやすいのではないかと思います。

研修の内容は、大学卒業から上京まで趣味にしていたテーマである「高等教育の大衆化は可能か」から派生して大学史に関する書籍を読み進めていたのですが、その過程でふっと考えた「ある学問は他の学問から多大な影響を受けていて知識は一方向から見ると複雑だが多角的に見ると実は単純になるのではないか」という仮説に基づいて作ることにしました。今まで会った優秀なエンジニアの多くが他分野の知識も貪欲に学んでいたので、目標にしていたということをありました。

しかし、専門的な知識を一気に吸収することのできる能力がないので、高校の資料集や信用している三省堂の図鑑シリーズを読むことにしました。覚えることより他分野の知識とどのようにリンクしているのかや全体的な流れを意識しました。教養は、速効性はないですが徐々に効果が現れるものだと思うので、継続的に学んでいこうと思っています。

次に、エンジニアリングの部分をどのように学んだかですが、その前に入社前のレベル感を紹介します。

  • 大学でコンピューターサイエンスの基礎を学んだ(OSとコンパイラと作ってない普通の学生)
  • Ruby Association Certified Ruby Programmer Silver version 2.1を取得
  • 趣味で開発してない
  • メタプログラミングわかってない
  • APIの実装したことない

という圧倒的力不足な新卒でした。同期や年齢の近いフリーランスの方々が優秀なので、尚更レベル違い感がある。

エンジニア研修では、入社二週間の業務をこなす中で上がってきた課題感を全て書き出した後に、どの技術を習得すれば効率的に生産性を上げることが可能かを考えました。チームメンバーが最高だったので、もっとチームが楽しく開発できる技術を学んでいこうと思いました。バックエンドエンジニアとしてキャリアなど諸々のことを考えた結果、RSpec、MySQL、Rails、GraphQLを重点的に学ぶことになりました。

良い教材が見つからなかったので、メンターに相談するとRefineryCMSやRedmineのソースコード読んだらいいのではないか?というアドバイスをもらいました。また、漢(オトコ)のコンピュータ道など有益なサイトも教えてもらうことができました。

学生時代にWordPressに触れたこともありRefineryCMSのソースコードを読むことにしました。社会人になって初めてOSSのソースコードを読んだのですが、何を学びたいか目的がはっきりしていると案外理解できることがわかりました。これ以降の研修期間中のタスクはできる限りソースコードまで見るように努めました。

書籍による学習も行いました。ACMの会員になると年間$99でO'Reillyをはじめとする数々の良書が読み放題になるO'Reilly Safariに登録しました。書籍はSafariで全て賄える上、金額も安いので登録しない手はありません。研修期間中には、11月に発売されるGraphQL本である「Learning GraphQL」やRSpecの関係者が執筆した「Effective Testing with RSpec 3」など沢山の書籍を読みました。

いい本が豊富なので、O'Reilly Safariにある書籍を読んでいけばいいと思います。一緒に読んでくれる人を探してるので、いれば連絡ください。エンジニア3年目突入するぐらいまでに以下を読みたいです。

Design Patterns in Ruby
Clean Architecture 
オブジェクト指向設計実践ガイド
エリック・エヴァンスのドメイン駆動設計
エンタープライズ Rails 
Clean Code
リファクタリング Ruby

実践的な訓練として、CircleCIのアップデート作業などを行いました。

www.imaharutech.work

アップデート作業は、プロダクトコードとドキュメントを読むことで力が付くので研修内容としてオススメです。

最近、Gemのアップデート方法を先輩に教えて頂きました。もっとアップデート作業を研修に取り込めばよかったと若干後悔しています。

www.imaharutech.work

まだまだ学生時代に出会った東京の学生エンジニアの平均と比べると心許ないですが、エンジニアとして業務を手探りながらをこなすことができるようになったので、いい研修だったのではないかと思います。

以上を簡単にまとめると私の研修内容は以下の通りです。

  • エンジニアリング以外の知識を学ぶ
  • タスク時に時間がかかってもいいので、ソースコードまで読んでみる
  • 書籍を読む
  • アップデート作業を行う

まだまだやったことだったり苦悩は多いのですが、長くなりそうなので需要があれば書こうと思います。将来的に最強の新卒研修を考えたい。

研修を組む際に使えそうなリンク集

  • 各情報系大学のシラバス

教育学の歴史

教育学の歴史

高等学校学習指導要領(平成30年告示)解説 総則編 ―平成30年7月 (高等学校学習指導要領解説)

高等学校学習指導要領(平成30年告示)解説 総則編 ―平成30年7月 (高等学校学習指導要領解説)

Learn Better――頭の使い方が変わり、学びが深まる6つのステップ

Learn Better――頭の使い方が変わり、学びが深まる6つのステップ

成人発達理論による能力の成長 ダイナミックスキル理論の実践的活用法

成人発達理論による能力の成長 ダイナミックスキル理論の実践的活用法

学んだこと

入社してから仕事を通して学んだことを紹介したいと思います。

レビューの仕方

ドメイン知識や技術を含めわからないことが多く、どのようにレビューをしていいのかすらわかりませんでした。まずは、PullRequest(以降、PR)を見てわからないことを全て質問するようにしました。また、学んだことや勉強になったと感じたコードには「勉強になりました」などとコメントをしました。

段々と慣れてくると、綺麗な書き方を提案できるようになります。ISUCONの解説記事のように技術的な提案ができるまでには、程遠いのでコツコツと実力をつけていきたいです。

優先順位の付け方

メンターから常日頃から、施策のインパクトを考えるように指導してもらってます。

言語化してからコードを書く

間違っている場合に、出戻りを少なくなるためIssueやPRにこれからやることや完了条件を書きチームメンバーとすり合わせる重要性を学びました。また、難しいと思ったストーリーに対しては、自分の方針とタスク分解を行なってチームで相談する工夫をしています。

捨てやすいコードを意識する

密結合なコードを作らないことを学びました。将来メンテをするのは、自分以外である可能性が高いということを意識することが重要です。

社内の雰囲気

GDPは主にslackでコミュニケーションをとっているのですが、個人のチャンネルとしてtimesがあります。

さながらruby-jpのように呟いたらどんどん知見をもらえようなチャンネルになっています。とてもありがたいことです。

エンジニア以外の方々もランチに行こ!と言ったらいいよ!という風になる環境です。私のような恥ずかしがり屋さんでも、ランチに困ることはありません。

また、多くの勉強会が昼休みや業務時間内に開催されています。

チームについて

この半年間、楽しく仕事ができたのは間違いなくチームメンバーのおかげです。

入社して初めて参加したスクラムイベントで、デザイナーがユーザーファーストで発言している様子に感動してデザインに興味を持ったり仕事の仕方や将来的に良いコードを書き方など、どれもチームメンバーから学びました。

今でも日々の業務で仕事が丁寧だったり、楽しく働いていたりと尊敬できるところがたくさん見つかる最高のチームです。チームのいいところを全て吸収しきれてない未熟者なので改善しないといけません。

しかし、新しいスクラムマスター就任やチームメンバーが若いこともあり、まだまだ成長の幅は無限大です。私がチームに出来ることは、まだまだ少ないですがバックエンドエンジニアとしてプロダクトをリードすることでスクラムマスターが速攻でマスターになれるようにサポートしていきたいです。

もっとユーザーの考えて、案をバンバン出して絞り価値を爆速で提供できるチームになれると思うのでやってくぞ!当面は、KPTの質を高める動きをしていきます!

社外活動

社外の人から学ぶことも多かったです。

  • 目黒バイナリ勉強会
  • ISUCONに参加した
  • OSSにコミットした
  • 外部発表をした
  • 日本酒会やってる
  • ブログメンタリングを卒業した

www.imaharutech.work

www.imaharutech.work

これからやりたいこと

  • 社内のスーパーエンジニアが集まるプロダクトのコードを1commitずつ追っていく活動をしているので区切りがいい所まで続ける
  • ビジネスの知識がないので、開発しているプロダクトであるグロービス学び放題で学んでいく。ドッグフーディングもできるので最高!
  • 設計に関する書籍を読む。業界の知識を学び、組織の目指すべき方向とあるべきアーキテクチャを考えられるエンジニアになる。
  • 銀座Railsで登壇したい。OSS Gateでメンターになって頂いた方からRails1.0のソースコードを読むといいと勧められてたのでやってみる。
  • 技術書典で書籍を出版する
  • GraphQL-Rubyの翻訳
  • 大学院で大学に関する研究をしたい
  • Scratchを小学生に教えたい
  • 学生時代にお世話になったコミュニティに知識やお金を還元していく
  • ISUCON勉強会を会社で開きたい

やりたいことをやったことにできるように少しずつレベルアップしていくぞ!

応援よろしくお願いします。(褒められて伸びるタイプ)

最後に

多種多様な人と出会い、もっと人として成長したいので声かけてくれると嬉しいです。

日本酒会やってるので、飲み明かしましょう。