井の中の蛙Webを知る

地方公立大学でイキってた趣味プログラマーがWeb未経験でWebエンジニアを目指す。 大学での専攻:画像処理 現在使えるプログラミング言語: Python :多少 C#,Unity:アプリ制作経験あり C++/C : アプリ制作経験あり

東京のとあるソーシャルゲーム会社に1Dayインターンシップに行った。

東京のとあるソーシャルゲーム会社に1日だけですがインターンシップに行ってきました。 体験談をここで語っちゃうとほぼどこのインターンに行ったかバレそうなきがするが(というか、別に書いちゃってもいいのかな?)なんかあったら嫌なのでとりあえず企業名は伏せておきます。 地方住なので東京に移動するために高速バスやら利用して前日に東京入り。バスの中では暇だったのでずっと自己研究とかしてました。その日は東京についてからホテルにチェックインした後暇だったので、バス内で調べたPythonの勉強会に当日で予約を入れていってきました。これは別記事に書きます。 インターン当日は朝10時からスタート。私服可能だったので適当な服で参加。この手の業界はやっぱり私服OK多い。というか、今まで受けたインターンシップ私服OKのところしか受けていない・・・。確か当日の参加者は12人くらいだったかな?まず最初にちょっとオシャレなラウンジに通されてそこで書類記入した後、会議室に移動。

会社説明

会議室で当日のスケジュールの説明と、簡単な会社説明を受けた。 会社説明というよりはほとんどその会社が運営するゲーム、サービスの説明がほとんどだった印象。話を聞いている限りでは小さな会社だけどそれなりの技術を備えているなーという印象だった。というかその辺を結構強調して説明していた気がする。やたら独自技術言っていました。自社にR&Dがあったりと、自分の画像処理という研究分野も何かの役に立ちそうな印象を受けた。

筆記試験

会社説明の後は性格適性試験のようなものと、技術力を測る筆記試験があった。 筆記試験の方は1問目に算術演算子禁止、繰り返し構文禁止で加算関数を作れという問題と2問目にその関数を使って乗算関数を作れという問題で最初全然思いつかなくて焦った。とりあえず1問目と2問目は飛ばして3問目へ・・・。 3問目は2分探索アルゴリズムのコードの間違いの指摘で、こっちは逆に単純すぎる間違いで1問目2問目に比べて簡単すぎて引っ掛けなんじゃないかと疑いましたがとりあえず回答。 4問目は確率の問題で、白玉50個、黒玉50個をAとBの箱にそれぞれ入れて、AとBの箱のどちらからか無作為に一つの玉を取り出すときに白玉を引く確率が最大になるような玉の入れ方について書けという問題でした。とりあえず回答はAとBの箱にそれぞれ25個ずつ球を入れれば確率50%で最大みたいなこと書いたんですがなんか安直すぎて間違ってそうで心配。 5問目は図形問題で多分中学生でも解ける問題(円に内接する線とか三角形の面積)。 6問目が最後の問題で自社がオブジェクト指向プログラミングやコーディング規約を徹底する理由とその背景、利点を考察せよといった感じの問題だった。これは自分の開発経験を基に回答。 ここまで解いたところで残り時間10分、最初の問題に戻ってうんうん唸っていたところ再帰関数にすればいいことに気が付いて大急ぎで回答。2問目は時間オーバーで解けなかった。 他のインターン生の反応を見るに1問目が再帰だと気づいた人は結構少数な感じ。

社員とランチ

受けた会社はランチがビュッフェ式で、その日はカレーがメインで結構おいしかった。社員が来るのが少し遅かったのでその間に他のインターン生と適当な自己紹介。地方から来たことを伝えたら驚いていた。ほかの子は電車一本で実家からこの会社に来れるらしい(うらやましい・・・)。そのテーブルで話せたのは4人だったけれど、4人とも大学生で大学院生は自分だけのよう。あと2人ほど理系ではなく文系だった。一応文理不問だったしプログラミングは多少?しているらしい。そのあと入社3年目の社員さんがやってきて一緒に食事。入社直後はどんなことをやらせてもらうのか的なことを聞いたところ、試用期間が3ヵ月位でそれが終わったら即実務らしく、研修っぽい研修はないらしい(いわゆるOJT)。それって大丈夫なんだろうか・・・。3年間の業務について聞いてみたところ、基本的にはガラケー時代にJavaで書かれた自社ライブラリを高速化のためにC++に移植しているらしい。この会社はガラケー時代からゲームを作っているのでガラケーでよく使われていたJavaをメインに自社ライブラリの資産があるらしい。聞いたところUnityなどは相当ひねくれた使い方(マルチプラットフォーム化するためだけとか)以外していないらしい。会社説明を思い返すとUnityだと結構きつい処理を高速、軽量化するためにOpenGL ESを直にチューニングしているって言っていた。なのに希望スキル要項にUnityがあるのはなぜかと聞いたところその社員もなんでかわからないと驚いていた(えぇ・・・)。個人的にはいろんな企業に転職してみたかったので転職したり逆に転職してきたりする人がいるか聞いてみた(正直あんまり聞くことじゃない気がするけど、まあインターンで採用には影響ないって言ってるしまあいいやと)。それなりに出入りはあるようで大企業に行ったり大企業から来たりはあるらしい(どんな大企業か聞いておけばよかった・・・)。やはりIT系は結構転職寛容だなーと再確認。落ちた企業も、中小で実績作って転職するというキャリアパスもありだなと感じた。そこまで聞いたところで時間が来て再び会議室に移動。

課題

午後からは会議室でグループワーク。内容はProcessingを使ってリバーシを作る課題だった。リバーシを作る場合再帰処理が使えないとうまく作れないので再帰処理が分かる人は手を挙げてといわれた(そのための第一問か!いやもうちょっとわかりやすい問題にしてもよかっただろ!)。そしてそこで手を挙げたのは自分を含めて3人。どうやら思っていた以上にみんな解けなかったらしい。一応3チームに分かれるためちょうどよかったが会社側ももうちょっと再帰処理が分かる人がいて欲しかったみたいだった。一班は4人でPCは2台。自分のチームでは一人Processing経験者がいたのでその人が1台目のPCに座り、自分は2台目のPCを使用。残りの2人はそれぞれのPC使用者についてペアプログラミングするといった感じだった。 グループ制作経験者があまりいなかったので自分が基本設計を考えて仕事を分担。再帰処理を使うアルゴリズム部分は自分が担当しもう一方には配列データからリバーシ盤と石を表示する部分をお任せした。制限時間は1時間とちょっと しかなくかなり大急ぎで作らなければならなかった。ペアプログラミングを組んだ子が文系でゲームを作ったことがないらしく、プログラムの内容を説明しながらほとんど自分が作ってしまった。もうちょっと時間があれば一緒に考えたりもできた気がするが・・・。時間ギリギリで描画系とマージするもバグを残したままタイムアップ。ほかの班も似たような状況だった。その後とりあえずできた途中経過までを発表しあい、社員による正解の説明(コーディングには1時間以上かかったらしい←おい)。どの班もバグを含んでいるが基本設計はできている感じだった。そのあと延長時間でバグフィックス。とりあえず自分の班はそれで完成した。

そのあとは、アンケートを書いてインターン終了。

まとめ

会社説明を聞く分にはわりと技術面で頑張っている印象を受けた。あとは食事なんかの福利厚生が充実している。ただ、今回のインターンはあまりいいものではななかった印象。実質車内ではビュッフェ食べたラウンジと、会議室の2か所しか入ってないので、実際に社員が働いている様子を確認できたわけではない。課題もグループワークは大学のプログラミング講義と大して変わらない気がしたし、実際の業務に繋がるかというと疑問。時間が限られていたのもあるけれど、やっぱり長期間インターンの方が得るものもあるし、会社の雰囲気もよくわかる気がした。この会社だけかもしれないけれど1Dayインターンは得るものが少ないかも。