見出し画像

サイバーエージェントの育成型インターンで学んだこと

こんにちは、今日も誰かのためになる情報を発信していきたいと思っている登内です。筋肉系の話であれば連絡をいただければ後日じっくりとお時間を設けたいと思いますが今日は、エンジニアを目指す学生に向けた記事です。先日、二週間ほどサイバーエージェントの育成型のインターン(CA Tech dojo Go編)に参加させていただいて感じた雰囲気と得たもの、私が考える成長効率を高める環境についての意見を共有したいと思います。

「CA Tech dojo Go編」の雰囲気

まずは参加学生の雰囲気、インターンの実施内容、インターンを通して感じた雰囲気を話したいと思います。このインターンの参加学生の共通点は「熱意があり、学ぶ意欲が半端なく、コミュニケーションも難なく取れるという点」で、それに加えてそれぞれ個性があり、魅力的な学生ばかりでまた会いたいと思える人たちでした。

インターンの実施内容は基本的にゲームAPIの開発でした。前半は基礎課題として、参加学生共通の課題に取り組み、Golangに慣れつつAPI開発のノウハウを学びました。後半は各自が自由に応用課題に取り組み、今回のインターンの目標の「一人でAPI開発できるようになる」ための力を養いました。また、このインターンは開発だけではなく、様々なイベントを開催してくださいました。人事やメンター、19卒の社員とランチをしてたくさん話を聞けたり、障がいが起きた場合の対応をLTしてくださったりしたので現役サーバサイドエンジニアのレベル感や、サーバサイドエンジニアとしてのキャリアの詳細を知ることができました。

インターンを通して感じた雰囲気は、「この会社、育成する文化が根付いているなぁ。」です。育成型インターンをやっているというだけでも証明ができると思いますが、このように感じた理由は2つあります。一つ目はメンターさんの献身度合いが半端ないことです。自分の業務があるにもかかわらずインターン会場にきて学生の長時間鳴りやまぬ質問コールに対応し続けていただいたり、基礎的な質問でも嫌な顔一つせず対応していただいたりしました。さらに驚いたのは、業務時間外にもコードレビューや質問に答えてくださりました。(日付が変わった後に振り返りシートにコメントしてくださるメンターさんもいました。)もはやこれは愛情なのではないかと思います。二つ目はメンターさんの教え方が予備校の先生よりもうまいことです。教えるということを仕事にしている先生より、エンジニアリングがメインの方々の方がうまいと感じてしまうくらいレクチャー力がすごかったです。具体的には同じことを説明するにも学生のレベルによって掘り下げる深度を変えたり、答えを教えず、背景と方針を教えることで自分で解く力を磨かせつつ、それに付随する知識もつけることができるという高効率な環境を作ってくださりました。

「CA Tech dojo Go編」で得られたもの

私は今回のインターンに参加するときに3つの目標を設定しました。それは成長効率を最大にする取り組み方を見つけること、エンジニアが効率よく成長する環境を見つけること、仲間を増やすことの3つです。地方ではなかなかこのような機会がないので、できるだけ多くのものを吸収し、地方に戻った後もインターン中と同じような成長速度を維持できるような方法を手に入れようと考えた結果、このような欲張った目標になりました。結論から言うと1,2個目のテーマは自分なりの答えが見つかりました。3つ目に関してはお互い高めあったり、今回のインターンだけの仲ではない仲間ができたので大満足でした。

まず一つ目の成長効率を最大にする取り組み方について今回のインターンで導き出した自分の考えを述べます。これには四つのフェーズがあります。①現状と理想のギャップ整理、②適切な課題設定、③最短のインプット、④最短のアウトプットです。このサイクルを繰り返すことがエンジニアとして成長するには適していると思います。

①現状と理想のギャップ整理のフェーズで一番大事なのは、自分の頭の中の情報だけで整理するのではなく、理想に近い人物からの刺激も取り入れることです。このフェーズで一番怖いのは、「自分がなにを知らないか・できないかを知らないという状態」です。知らないことは考慮しようがないので、それを防ぐために理想に近い人と話をして自分の盲点を明らかにする必要があります。理想に近い人が身近にいれば良いですが、いなければイベントや勉強会、インターンシップに参加するのが近道です。

②適切な課題設定のフェーズで一番大事なのは、ギャップを適切な粒度の課題にしてそれらに優先順位、達成するまでの期間を設けることです。適切な粒度とは、1、2週間以内に達成できるかつ難易度を最大に引き延ばしたものです。しかしここが一番難しいフェーズで、その理由は適切な課題設定は経験から行うものだからです。過去に経験したことのあるような課題だったらまだしも、新しいことにチャレンジしようとすると難易度やどれくらいの期間でできるのかがわからず、適切な課題設定を行えません。そのため自分よりも経験豊富な人物に助けてもらうことが一番です。

③最短のインプットのフェーズで一番大事なのは、情報収集を最低限に抑えることです。最低限とは、「課題解決のイメージがぼんやりとつくまで」という事です。言い換えると、課題解決の想像をしながら情報収集することで、このフェーズを最短で終わらせることができます。注意してほしいのは完全に理解するまで情報収集してしまうことです。エンジニアは手を動かさないと理解することができない部分があるので、完全に理解しようとなると矛盾が生じます。そうなるとどのタイミングでアウトプットに切り替わるのでしょうか。それは、何の根拠もない"キリ"のいいタイミングです。本を一冊読んでからとか、1~2時間情報収集してからといった具合です。これでは効率はガタ落ちてしまうので、アウトプットでは躓くこと前提、再びインプットに戻る前提で切り上げましょう。

④最短のアウトプットのフェーズで一番大事なのは、躓いたときどのように乗り越えるかとタイムマネジメントです。エンジニアならわかると思いますが、アウトプットするときはほぼ確実にうまくはいきません。躓いたときにすぐしてほしいことはわからない点を言語化することです。多くのエンジニアは躓いたとき、疑問点を明確にしないままダラダラと手を動かしている状態に陥っていることが多いです。しかしその場合、大抵は時間をかければ解決できることが多いのでその取り組み方は問題視されないことが多いです。しかしわからないことを言語化すれば、次に情報収集するのか、どのコードをいじるのか、知り合いに聞くのか等適切な対処をすぐに行うことができます。さらにあらかじめタスクを細分化しておき時間を決めておくことで、時間内に終わらせるにはどのタイミングでわからない点を言語化するのが良いかの判断に使えます。

次に二つ目のエンジニアが効率よく成長する環境についての自分の考えを述べます。それは自分の目標の人がいることと、適切な課題設定をしてくれる人がいることです。つまり、先ほど述べた成長効率を最大にする取り組みの、自分だけではできない部分を埋めることです。そのための環境づくりとして経験豊富な私がサーバサイドエンジニアを目指す後輩の目標になり、適切な課題設定をしてあげることや今回のインターンで学んだ技術とメンターさんのレクチャーのノウハウを後輩に伝承していき、浜松に教育する文化を根付かせたいと思います。そうすることでエンジニアを目指す浜松の学生が不自由なく成長できると考えています。

最後に

今回は技術的な話は一切せずに、人間的な部分での成長を主に書かせていただきました。私はこれまで、熱意は人一倍ある自信はありましたが、うまく使えずにいました。しかし今回のインターンで、人事の方に相談に乗ってもらえたり、メンターさんに技術的な相談をしていただいたりしたので、熱意と自分の目指す先を一致させることができ、残りの学生生活の質を大きく変えるきっかけになりました。長くなりましたが、「CA Tech dojo Go編」の企画運営に携わってくださった方々、ともに高めあった学生達、ほんとうにありがとうございました。


よろしければサポートお願いいたします。いただいたサポートはクリエイターとしての活動費に使わせていただきます!