サイバーエージェントのエンジニアインターンに受かるためには
結論
結局は運みたいなところある。
人事の人が話やすい人で上手く話せたとか。受け入れ先がたまたま希望してたところと一致していたとか。これまで golang 勉強してて技術スタックの相性が良かったとかとか。普段受け入れしてない開発チームのオーナーが名前カッコイイし入れるかって言って急に受け入れ枠爆誕したりとか( すいませんこれ自分です )
まぁ、逆に繁忙期で受け入れ枠が少なくなったりそれこそウイルスの影響で調整がかかってしまったりと。運が占める要素って結構あるなと言った印象です。
とは言えもちろん対策出来ること、やれること沢山あるのでそこら辺を上手く紹介していこうと思います。それにサイバーエージェントって会社はだからって不確定要素だけで採用決めてるのかって全くそうじゃないですしちゃんと努力した人、努力しようとしてる人をちゃんと合格させる印象があります。( あんま偉そうなこと言える口じゃ無いですが←
それでは紹介の方に移ってこうと思います!
はじめに
実はTwitterでDeNAの内定を報告してからと言うものフォロワーが少し増えて就活に関することであったり質問を受けるようになりました。
そこでちょうどこの記事のタイトルに近い質問を受けたのでせっかくなら記事にしちゃおうって事で書かせて頂いた次第です笑
前半部分では自分が感じたサイバーエージェントのインターンに関するところをまとめたものを書き、後半は実際に受けた質問に回答しようと思います。
また、もし関係者の方で内容に不備があれば遠慮せずご連絡いただければと思います。( あんまり変なことは書かないと思うけど笑 )
((( 実際にくださったAI事業本部の大島さんありがとうございました )))
それでは本題に!
インターンに受かるには( 前半 1/2 )
これはやっぱり就活生と言うか学生の抱える大きなテーマですよね
なんか行える対策をして、あとは臨むだけって言えばそりゃそうなんだけど。じゃあ何を対策すれば良いの?って。これはN回繰り返しますよね..w
実際この質問に答えるとするならば
行きたい会社の事を分析して必要な対策を取る。
って言うのが当たり前だけど正解に近いのかなと個人的に思ってます。分かりやすい例を出すと
サイバーエージェントのインターンで取るべき対策とLINEのインターンで取るべき対策はマジで違う。
って言ったところとか?
LINEの場合はそもそもWebテストがめちゃくちゃ難しいかったりするし、サイバーエージェントの場合はWebテストは無いけどエントリーシートが重かったりと企業ごとに採用戦略がそもそも違うのがミソです。
だから必要な対策は行きたい企業ごとにちゃんと取るべきなのが自分は正しいと思ってます。
ここら辺は大学受験とかにも凄い似てる気がします。大学ごとに傾向があったり、そもそも記述式なのかマークダウン式なのか( インターンで言う実装力重視なのかポテンシャルもokなのか )とかとか。
サイバーエージェントの特徴( 前半 2/2 )
上記の紹介でもしたように1つ大きな特徴なのはエントリーシートが若干重いってところで自分が2020年の夏とかに受けた際はコーディングテストは一切なかったです。多分、コーディングテストなしはかなり珍しいかもですね。
でもそれだけポテンシャルに期待しているって事である事は間違いないです。
実際に自分はCA Tech Jobに参加した際に色んなレベル感の人がいて当然自分よりも実装力ありそうでギークな人がいたり、むしろインターン経験があんまりないみたいだけど吸収力ありそうでぐんぐん伸びていきそうな人もいたりしてました。
一応、自分のはてぶにその当時の感想をまとめたものを書いておいたのでそちらも別途参考になるかも知れません。
https://doppon.hatenablog.com/entry/2020/03/05/222712
質問シリーズ1( 合格時の技術スタック )
受かった当時の技術スタックに関して教えてください
使えた言語 / フレームワーク / クラウドなど
まず、これは Ruby が2年半ぐらいやっててそうなるとフレームワークも Ruby on Rails がそれ同じぐらいと言った感じでした。( ※ Sinatra派いたらなんかすいませんw )
それ以外では Python を1年ぐらいやっててDjangoでの開発を半年ないぐらいしてたりとかですね。
AWSやGCPは今では沢山触ることになりましたけど、当時はマジでなんもできない状態でとりあえず学生用アカウント持ってるぐらいでしたw
( もうチュートリアル見て覚えてるんです!最近!!って訴えてたような記憶が..笑 )
ここまで答えて質問者の人には逆に以下のような質問の方が本質的だと思うので勝手に答えておきたいと思う。
どう言う技術スタックだと逆に受かりやすいか
正直サーバーサイドエンジニアなら golang か Scala が触れると有利に働くことはマジで間違いないと思います。その理由はAbemaTVを始めとするWeb開発のサーバーサイドはだいたいgolangで書かれていて、AI事業本部の方はだいたいScalaだからです。
ここら辺の話はもうググればいくらでも出てくる情報です。フレームワークとかに関してはなんでも良いと思います。実際にインターン生同士の絡みで聞いたらgolangでBotみたいなの作ったり簡単なWebアプリなら作ったことあるよ〜って人がいたりとか必ずしもフレームワークを使っていたりとかはしてなかったです。
また自分がサーバーサイドで合格したのでサーバーサイドの話をしましたが、ゲームエンジニアだろうがフロントエンド、iOS、Androidエンジニアだろうが基本的にサイバーエージェントが公開している記事を見て会社でこんな技術使っているんだってキャッチアップして少しでもチュートリアル進めるなり自分で簡単な物( チュートリアルに毛が生えたもの )でも作るだけで大きく違うと思います。
質問シリーズ2( 面接時なにをアピールしたか )
面接内でどう言う技術的なアピールをしたか
( 普段の勉強で意識してみたり, 面接で生かしたいです )
正直なところあんまり覚えてないんですよね、、笑
ただ、間違いなくそのとき熱中していた技術に関して語っていた気がします。なにが熱いのか。なにが既存と違うのか。どう言うところが便利でどんなところが不便だと感じているのかとか。特に思うのが最近勉強している技術の欠点を知る事は良い点を知る事より難しいので用意しておけるとすごい力を発揮出来ると思います。
これはインターンのときに話した訳ではなく新卒採用のルートで話したないようですが Ruby on Rails における欠点とは何かと言うテーマで議論をしたのを覚えてます。
実際にそこではモノリシックなアーキテクチャーであることのメリットデメリットを整理して話しましたね。
特に Ruby on Rails って分かってれば物凄い速さで開発を進めることが出来るけど、そもそも学習コストが高いよね?
とか。大規模開発に用いるにはちょっとどうなの?とか。
ゲームとかの大規模開発になるとRuby on RailsをAPIサーバーとして使うのが一般的でそれだったら ElixirとPhoenix の組み合わせの方が応答速度早いAPIサーバーが組みたてられるよね?とか。
そんな話をしてました。
少し抽象的な話にはなりましたが結局は勉強してる技術のメリデメを意識しておくと面接のときもスムーズだよ!って感じですね。(インターンに限らず。)
質問シリーズ3( サイバー以外におすすめなインターン )
サイバーエージェント以外におすすめなインターンありますか?
( あんまりそれぞれどんな特徴なのか分かっていません。 )
うーん(´・ω・`)(難しい)
質問に答えると アカツキ のサマーインターンはおすすめと言うか結構自分が1つ変わるキッカケとなったインターンでした。
選考倍率もおそらくサイバーエージェントのときより厳しかったと思うし実際に入ってみてTwitterで有名な学生がゴロゴロしていたりでこんな世界がここには広がってたのか笑
ってなりました。
本当に刺激を受け、同世代のレベルの高さを知れてかつ実際に大規模プロジェクトでの開発文化であったり、中の人とキャリアの話を聞けたりと知らなかった世界について一気に知れるインターンだったのでおすすめしました。
ちなみにそれぞれの会社がどんな感じなのか知りたいのであれば積極的に説明会やイベントにできれば直接、直接いけなくても最近はオンラインでのイベントも増えてるのでそこでキャッチアップしていくのが良いと思いました。
人事はそこら辺、学生に会社のことを知ってもらうことも仕事としてるので沢山話を聞けると思います。
質問シリーズ4( インターンや就活に通じるスキル )
インターンや就活において共通して通じるスキルってなんですか?
まず、マインド。自分がどうなりたいと思っているのか。働くことで何を得たいと思っているのか。それが明確であればあるほど、インターンには受かりやすくなります。
企業側はインターンを学生になんのために提供するのか明確にして求人を出しているので、こちら側のマインドがしっかりしていてば技術うんぬん言わずに合否がほぼほぼ決まります。
ここら辺の話はどちらかと言うと就活の方が恩恵を受けられる話ではありますがだいじです。
次にテクニカルはところだと、GithubであったりHTTPリクエストの仕組みとかプログラムのデバックの仕方( VScode でのやりかた )とかエラーコードのググり方とか本当にそんなもんだと思うんですけどね。
ちょっと例がサーバーサイドエンジニアに間違いなく問われそうなところの例になっちゃいましたけど..
ちゃんとHTTPでGETやPOSTの送り方( クライアントの作り方 )を知っていればそれってプログラミング言語関係なく構築できるし、問題があればデバックすれば良いし、知識が足りてないならググれば良いし、チーム開発するってことでGithubでPull Request作ることぐらいできれば仕事になるのかなっと正直思いました。
( Github地味に難しいですが..
質問シリーズ5( どのような成果物を見せていたか )
インターンの選考や就活でどのような成果物を見せていましたか?
3つぐらい
1. 雑魚いRailsで作った掲示板( テストコードも書かれてない )
2. インターンで開発してたプロダクト
3. 自己紹介をまとめたHTML
なんですけど、1番の掲示板は本当にお粗末なものでRailsチュートリアルで作るアプリの方がずっと綺麗でしっかりしていると言う笑
たまに自分の力だけで作った作品を見せてください。みたいな事言ってくるのでそれ用に使って感じですね( いやぁそう言うとこ全部落ちたなw
( 自分は趣味での開発よりインターンとかでコードしてる時間の方が圧倒的に長いのでそう言う失敗もあります )
ちなみにサイバーエージェントでは完全個人開発の成果物は特に求めなかったと思うのでインターンとかで力入れて作った成果物を元に展開すればokかと。
そして2番はそのままなので飛ばして、3番。
これは本当に便利でした。本当にiOSの人だろうがAndroidだろうがゲームエンジニアだろうがサーバーサイドでもプログラムによって自己紹介をまとめておく事を強くおすすめします。
なんだかんだ2年ぐらいこのポートフォリオ使って面接中に自分のPC見せながら自己紹介してました。受けは良かったです。そして、意外と受かる人そう言う事何かしらしてる事に後から気づいたんですけどね笑
質問シリーズ6( コーディング試験って対策どうすれば? )
コーディング試験ってどう言う対策の仕方をすれば良いですか?
主に自分の認識してる範囲だと2種類の試験があって
1. アルゴリズムに関する問題
2. HTTPリクエストに関する問題
ですね。
1番の方は Atcoder って言う競技プログラミングコンテストのサイトの中でもABC(Atcoder Beginner Contest)の A問題~C問題ぐらいまで好きな言語で何回か解けるぐらいにしておけば十分かと。LINEとかSmart News, Googleのインターンは問いて来るレベルが別格なので論外とします。
ちなみになんで好きな言語で良いかと言うと、Webテストするときに好きな言語選べるからですね。でもサイバーエージェントを意識するのであれば golang か Scala あたりで練習してみても良いんじゃないでしょうか( 普通はC++ がおすすめとされてますが )
2番の方はこちらで練習してみると良いんじゃないでしょうか。
【下位10%のダメなエンジニアにだけ解けないパズル】
さいごに
ここまでお付き合いいただきありがとうございました。
なにか得られるものはありましたかね?笑
また、記事中で紹介できませんでしたがサイバーエージェントのエンジニアインターンではCA Tech Dojoと言うものもあり、必ずしも経験者じゃなくても大丈夫だったりします。
インターンの内容によっても求められるスキル要件は変わるので1つのインターンで落ちたからって別のも落ちるとは限りません。
またもっと言うとインターンに落ちたからって新卒採用で落ちるとも限りません。
なのでめげずに頑張ることができれば変わる可能性がかなり大きいです。
ちなみにサイバーエージェントではないですが自分はDeNAのサマーインターンは落ちましたが本選考は受かりました。なんだかんだ、そんなものです。
また、言うタイミングがなかったのですがサイバーエージェントのインターンは自分の知る短期のインターンで1番楽しいインターンでした(コンペ型ではなくCA Tech Jobの方ではありますが)。頑張った先には沢山経費で焼肉食べにいけるんだって思って頑張ってもいいかもです!笑
色んなレベル層の人がいて、誰でも思いっきりやれる環境が揃っているので是非興味があれば応募してみることをおすすめします( ※サイバーの差金ではありません。 )
あともし参考になったとか、励まされたって思えたら良いねして頂けると嬉しいです。
この記事を読んでくださった人が一人でも多く合格すると良いですね\(´・∀・`)/んばっ
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?