こんにちは!テコンドーです
さて、今回の記事の内容なのですが、三月中旬から二週間チームラボという会社でインターンさせてもらっていました。
チームラボ、知ってますか?
プロジェクションマッピングなどアートの分野で有名なITベンチャー企業です!
色々イベント開催しているのでそれで知っている方も多いと思います。
長期インターンは地元ベンチャーでさせてもらっているので業務経験はあるのですが、
-
かなり有名な企業
-
二週間という微妙な期間
だったのでどんな内容になるのか全然予想つかなかったです。
結果的にはすごくいい経験をさせてもらって大満足でした。
その記録についてお話ししていきます!
参加までの流れ
参加までの流れを説明していきます。
今年の春は絶対に有名企業にインターン行ってやる!と思ってたのでとにかくエントリーシート出しまくってました。
名前を上げると、
-
Softbank
-
VoyageGroup
-
リクルート
-
Pixiv
-
あとなんか出してたけど忘れた
とかいろいろ出していたのですが、全部落とされました、、、
エントリー会社からのメッセージが来ると即座に開いて結果を確認、あぁ〜 みたいな流れを繰り返しました
返信が遅いとまあ大体落ちてますね、落ちるかどうかは何通も出してると大体わかってきます。
その中で合格をいただいたのがチームラボさんでした。
チームラボの選考肯定は
-
エントリーシート
-
面接
の二つでした。
面接で特徴的だったのは、よくある自己分析系の質問がほとんどなかったことです
理由を聞くと
実際に行う業務に携わってもらうから、技術に重点を置いている
とおっしゃってました。
採用選考とインターン選考は別物なんだなぁと感じました。
合格した理由
そんなこんなで採用をいただいたのですが、自分の中で合格いただいた理由を考えました
大きく分けて二つかなと思っています。
-
自分の技術スタックがチームラボにあっていた
-
同じ期間に受けた学生に優秀な学生がいなかった笑(知らんけど)
です。
1に関しては、後ほど説明しますが、自分の得意とする技術がRubyOnRails,AWS,Dockerでした。
チームラボの業務の中でRails,Dockerを使っていたのでマッチする部分が多く、自分の技術スタックが有利に働いんたんでしょう。
2に関しては運ですね。
上には上がいるというか、すごい人に比べれば自分の技術なんて吹けば飛ぶようなものですので、、、
まあ運も実力のうちというか、継続的な行動の結果かなとポジティブに捉えています。
こんな感じでチームラボインターン決まりました。
これからインターン応募する人へのアドバイスはとにかく出しまくることですね。
数打ちゃ当たるし、その行動力を面接官も感じ取ってくれると思います。
技術に関しては習熟していたの方がいいのが当たり前なのですが、即戦力になることを期待されインターンするわけではないので心配する必要はないと思います。
インターン内容って知らないライブラリを使うとか、やったことないことをするのがほとんど(というかそれがインターンの意味)なので、期間中にどれだけ学ぶかが勝負です。
なので応募で必要なのは基本的な知識だけと行っても過言でない気がします。
なのでエントリーシートたくさん出しましょう!!!
使用する技術
使用する技術はRubyOnRailsでした。
事前に言われていたのは
ActiveJobとActionCable使ってバッチ非同期で処理する、
あとインフラ周りはdockerで構築されているので基本知識があるとなおよし
と言った感じでした。
ActionCable,ActiveJobに関しては
これらを参照してください。早い話が重たい処理の非同期実行とリアルタイム通信です。
事前課題などは一切ありませんでした。
dockerはベンチャーの業務で使っているからよかったのですが、ActionCableとActiveJobに関しては初めてでした。
何にも知らないのは怖かったので、とりあえずActiveJob、ActionCableのサンプルプログラムを動かすくらいはしました。
そんな感じで前日になり、大阪から東京へと出発しました。飛行機早い、一時間半
前日はホテルにとまって英気を養いました。(ホテル代は全額負担でした、ありがたい、、、)
インターン一週目
初日
場所は御茶ノ水にあるチームラボ本社でした。
ビルの中はチームラボ感満載でした。
そんなこんなでオリエンテーション受けました。
今回参加したインターンは通年採用のため参加時期がみんなバラバラかつチームがそれぞれ異なるため、学生と一緒に作業することはありませんでした。
そしてメンターさんの紹介がありました。
エンジニアでは珍しく?女性の方でした、めっちゃいい人でした。
入る前は
チームラボだからバリバリのクリエイティバー?しかいなくて、ボコボコにされるのではないか、、、
と不安もあったのですが、担当していただいた方は本当に優しくてほっとしました。
課題内容
では、本題のインターンでどんなことやったのかを書いていこうと思います。
チームラボはいくつかのチームに分かれています。
僕の配属先の部署はECチームでした。
チームラボではアート系の仕事の他に受注開発業務もあります。
その中のチームの一つにECチームがあります。
そこでの初めての課題内容はバッチ管理画面の作成でした。
バッチとは、大量のデータの処理などのたまーに行う事務的な作業をまとめて行うことです。
バッチ処理に関しては
https://www.imkk.jp/blog/what-is-batch-processing.html
こちらをどうぞ。
今まではコンソール上でエンジニアがバッチを時々起動させていたそうなのですが、
バッチ管理画面を作成することで非エンジニアの方でもWeb画面上からポチポチすることでバッチ処理ができるようになります。
その機能を一から作成するタスクを命じられました。
タスクと格闘
そこからパソコンのセットアップして
早速課題に取り組んでいきました。
こちらが相棒だった支給されたMacBookPro、独特の打鍵感が懐かしいです。
辛かったのは使われているGemの理解でした。
Gemとは、Rubyで使われているライブラリのことです。
ECサイトを構築するためにあるGemが使われていたのですが、そのGemがかなり大きいもので全体像を把握するまでが辛かったです。
どこから手をつけていいのかわからなくてパニックになる、みたいなやつです笑
内部コードは落とせるのでとりあえず落ち着いて分かっている処理から一つずつ結果を確認していってコードを照らし合わせていく地道な作業を続けていきました。
ちょっとずつ取り組んでいくとわかるようになってきました。わかるとこんなもんか、ってなるんですけどね、、、
結果的には一週間強で作成してプルリク送って微調整まですることができました。
実際に使われるコードを書けたことが嬉しかったです。
インターン二週目
二週目の内容は
代引き手数料機能の実装でした。
代引き決済で決済した場合新たに手数料が発生しますよね?
その料金を注文金額に上乗せするタスクを二周目は担当しました。
この機能はメンターの方がほとんど作っていて、自分のコードがマージされることはなかったのですが、
自分一人では絶対にやらないECサイトの決済の部分のコードを色々みることができてECサイトの全体的な決済の流れについて色々知ることができました。
ここではまあ色々やったんですけど、特筆すべきことはなかったので省きます笑
成果発表
チームラボのインターンではインターン最終日にこれまでやってきた成果をスライドにまとめて発表することになっています。
この発表は社員の方や役員さんが見にきます。
結構発表好きなので頑張りました。
ぜひ皆さんにスライド見ていただきたかったのですが、内部仕様に関わることが書かれていたので許可がおりませんでした、、、
自分とは違うチームのインターン生も同じように成果発表を行っていてすごく刺激になりました。
画像処理とかAI使ったゲームの開発とか全然違う畑の課題が行われているのが興味深かったです。
同じ会社でもここまでやっていること違うんだなと思いました。
こんな形で二週間のインターンを終わりました!
色々慣れないこともありましたが楽しかったです!!!
まとめ
こんな形で二週間のチームラボでのインターンをまとめました。
総評するとめっちゃいい経験ができました。
交通費、ホテル代全て出してもらってさらに技術力も上がりバイト料も入る最高の機会でした。
チームラボで経験したことを活かしてこれからのエンジニア学生生活をより良いものにしていきます。
ここに書ききれていないこともありますし、もしもっと色々知りたい方がいらっしゃたらここへのコメントでもいいですし、TwitterからDM送ってくださっても結構です!ご連絡お待ちしてます。