初めてのインターンシップ👧👒
こんにちは!
緑アイコンがアイデンティティのふなち(Hunachi · GitHub)です.
はじめに
私は,3/5~3/16の間,チームラボ株式会社のインターンシップ*1(Androidアプリ開発チーム)に参加させて頂いてました!
期間は2週間でした.
先に結論から言うと,めっちゃ楽しかったです!!
インターンシップに行くまでの流れ
インターンシップを知ったきっかけ
沖縄高専のmito (@mitohato14) | Twitter さんにmitoさんがチームラボさんのインターンシップに参加する事になったという事を教えて頂いたのがきっかけです.
ちなみに,チームラボさんの事は高専プロコンなどのコンテストで見かけたり,実際にチームラボさんの展示を見に行ったりしていたので知っていました(๑・◡・๑)♡
応募した動機
- 春休みという長い時間を活用したかった.(インターンシップに行けなかったら車校に行こうと思ってました.)
- 東京までの交通費と宿泊費を全部負担してくれた.通った後,お給料も出るという事を聞いてより行きたくなった.
- 東京のイベント(勉強会)に参加したくてたまらなかった.
- KotlinでAndroid開発ができるという話を聞いた.(他は探してもなかなか無かった.)
- mitoさんが行けることになったということだったので, 私が挑戦できるギリギリのレベルかも知れないという謎の自信が生まれた.
- チームラボさんは私の学校では知られていて歴代のガチプロ先輩方もチームラボさんのインターンシップに参加していた.
選考の流れ
チームラボさんの公式サイトを見てもらえばいい話なのですが,私の感想も入れながら説明したいので書きます!
書類選考
何で行きたいのか〜とか,今まで何してきたのか〜というような内容でした.
他のインターンシップに応募した事がないので正確な事は言えませんが,一般的な内容だったと思います!
他には,自分のSNSのアカウントなどを書く事もできたので,
Github,このブログ, Twitter*2のurlを貼りました.
送信する瞬間,3年前の受験を思い出すくらい緊張しました.
〜三日後〜
メールが来ました.
どうにか合格だったようで,ほっとしました.
面接に向けての準備
面接までにweb上での適正テスト?を受けました.(これはメールでの指示)
また,面接で聞かれるかもしれない事を前日に書き出したりしました.
面接
時間は火曜日の13:00~でした.(授業*3があったのですが,自主休講*4させて頂きました.)
ちなみに面接の日程は1次審査の結果を送って頂いた4日後でした!
だいぶ前の話なので,聞かれた事を忘れましたヾ(。>д<)シ 💫
ただ,
「最近きになるアプリや,技術ある?」という質問に,
「Kodeinが気になってます!」というトンチンカンな返答をした事,
「何か質問はありますか?」という質問に,
「趣味を教えてください.」と「残業はありますか?」という
色々反省すべきな質問をしてしまった事は覚えています.
結果発表
なんか,参加できることになった!!
この後,初めて友達や家族にインターンシップに参加する事を伝えました.
(無駄なプライド)
その他
インターンシップに参加する数日前に顧問の先生の元を採用担当の方が訪れていた時がありました.(先生とは昔からの付き合いらしい?です.)
先生が頂いたお菓子を部活で頂いたのでみんなで食べました.美味しかったです.
ただ,その時に先生から今までにチームラボのインターンシップに参加した歴代の先輩方がいかに凄い人達だったかという話を淡々とされ,自分に自信の無かった私は「ごめんなさい.勝手に応募しました,ごめんなさい.学校の名前を傷つけたらごめんなさい.うう...(> <。)」という気持ちになってしまい滅入ってしまいました.
もう一人チームラボさんのバックエンドの方のインターンシップに参加するゲ・ドリンク (@gedorinku) | Twitterさんがいなかったら耐えられなかったかもしれないです.
しかし,インターンシップがとても不安になった反面,頑張らなくてはいけないという気持ちも持てたので良かったです.
インターンシップ初日
出社する前
前入りしていたのもあり,朝(8時に)起きれるか不安で前日は21時に寝ました.
寝坊はしませんでした.しかし緊張でガタガタしていたのが原因か,準備のスピードが遅すぎて,朝ごはんを食べることを失敗してしまいました.(WA)
出社
約束の時間から3分遅れて本社に到着.(TLE) 怒られませんでした.セーフだったみたいです(> <。)
採用担当の方に出迎えられ,オリエンテーションを行い,働く予定の場所に連れて行ってもらいました.
その後,メンターさんやチームの方に挨拶をして,早速,貸していただいたPCの環境構築をしました.
この日は,参加するプロジェクトがどんなものかの把握や,どういう設計でコードが書かれている(いく)かの確認,自分の担当箇所の確認などをしました.
1日を通して
初めての職場という環境での作業...
元々そこまで明るい人ではないのに,緊張で更に強張ってしまってました.
しかし,先にインターンシップに参加していたmitoさんがいらしたのと,メンターさんやスマホチームの方々とランチを食べに行ったりできたおかげで,退社時間までにはだいぶ緊張が和らいでいました.
3/6~3/16における,大雑把な活動内容
詳しいことは,多分社外秘なので言えません!(> <。)
前半
最初,任された部分が簡単な部分だったのでスイスイコードを書いていき...
たかったのですが,
- 自己流でclass分けをするとまずいんじゃないか.
- この書き方をしても大丈夫かな.
- コードの書き方が汚いって思われたらどうしよう.
と行った不安が頭の中を駆け巡り,ダラダラとコードを書いてしまいました.
しかし,コードレビューを1度してもらってからは心を入れ替え,自分が思う最適な書き方でスイスイコードを書いていきました.
(この行為が正解だったのかわかりませんが...)
理由は,コードレビューをして頂くとこで,今まで気づけなかった実は危ないバグを生みやすくなる書き方や,もっと綺麗な可読性の高いコードを書くコツを学ぶことが出来る事を知ったからです.
また,コードレビューも攻撃的な内容は全くなくとても優しいものだったからですʚ♡ɞ
中盤
3~4日目,次の画面に取り組めるか?と思って他のですが,毎度お馴染みのバグや,使ったことのないライブラリ,に悩まされ始めます.
私を悩ませたもの一覧
- lottieというライブラリで一部だけをループさせるのに苦戦.
- 1を解決したと思ったら.ループさせる部分の画面遷移?(ViewPagerを使い表示させるFragmentの変更を行うだけ)で何度か行き来するとアプリが落ちるというバグが発見され,原因がわからず詰まる.
- Dagger2を使ったことがなかったので,(Fragment内で)Injectしてるのに,"not initialized"と言われ原因が分からず戸惑う.
全部解決しましたが,多少なりとも時間をかけてしまったので自分の未熟さを感じました.
解決方法
- setMinAndMaxFrame辺りを使えばいい.
- Listenerをremoveさせるのをやめるか,lottieのversionを最新にあげ忘れない.
- SupportFragmentでInjectが出来るようにApplicationで設定する.
バグ潰し楽しかったです(> <。)
後半
2つ目の任された部分を作り終えれるか不安に...
1つ目の部分より実装難易度も高く,特にxmlで長い戦いをする羽目になったからです.
CollapsingToolbarLayoutを使ったり,List処理を書いたり(これはそこまで重くないが)しました.xmlのバグが,とてもとても辛かった.
デザイナーさんの意向が分からず,質問する毎日
- デザイナーさんが居てきちんとしたデザインが決まって居るアプリの開発は初めだったので,分からないことが多かったから.
-
デザイナーさんの本当の意向が分からず,「ここのアニメーションは静止画を見る限りこんな感じかな〜?」と実装していたら,違うという事が会議で判明しコードを消す事になった時,ちょっと悲しかったから.
というのが理由でした.
質問しまくったため嫌われてないか今でも心配です.(ごめんなさい.)
質問したおかげで学べたことも多かったので,質問したことは後悔してないです!
xmlでのバグに3日悩まされる
CollapsingToolbarLayoutのtitleが表示されないくて苦戦しました.
主な原因は,CollapsingToolbarLayout の content である Toolbar の layout_height を定数にしてなかったからです...社員さんやメンターさんを巻き込んでしまったので本当に申し訳ないです.ごめんなさい.
最終日の退社する1時間前に気づけてよかった.
また,後半に入ってからは,逆にチームの方(社員さん)のコードレビューをするよう心がけました.知識がないのと,コードレビューの経験がないのダブルパンチでとても難しかったです.
ただ,コードを読むだけでかなり勉強になりましたヾ(。>д<)シ
結局コードを読んで直すべき部分は見つからずLGTMを送る事しかしてません.
最終発表
最終日の前日,最終発表がありました.
インターンシップで行った内容や感想を,10人前後のチームラボの方々に見ていただくというイベントです.
とても緊張しましたが,私の精一杯の発表はできたはずです!
質問もたくさんしていただき,嬉しかったです.(返答があまり上手ではなくてすいませんでした(> <。))
インターンシップを終えて
学べた事
- チーム開発をうまく進める為のコツ
- 自分の知らなかった設計思想
- コミュニケーションの大切さ
- CIツールの大切さ
- 今まで使ったことのないライブラリ達に対する知識
- (チームラボはラフな方だそうですが)職場とはどういう雰囲気なのか
- 実際のエンジニアの仕事はどういうものなのか
感想
楽しかった!
2週間がとても短く感じられました.もっと長く働きたかった!!
メンターさんや,コードレビューをしていただいた方,同じプロジェクトの方,採用担当の方,一緒にランチを食べに行ってくれた方々など私と関わってくださった方々が,とても優しかったです.
特に,メンターさんには話しかけ過ぎたかも,他の仕事の邪魔をしたかもしれないと後悔するぐらい質問などたくさん会話をさせていただきました.それにも関わらず優しく丁寧に応答してくださり,ふなち...とても嬉しかったです.本当にありがとうございます.
一緒に開発してくださった某社員さんも丁寧なコードレビューをしてくださったり,一緒にバグを潰す方法を考えて頂き,ありがとうございます.とても感謝しています.同じくらい綺麗なコードがかけるよう精進してまたいつか,出直してきます.
また,私がインターンシップを行ったチーム(部署?)のオフィスは雰囲気がよく,椅子もPCもモニタもいい感じで,快適な作業環境でした.(いつも実家では床に座って作業しているからかもですが!)
ただ,Android Studioくんが重過ぎて発狂しそうなときがありましたが,これはしょうがないと思うのでしょうがないです.
最初は,休日に給料が発生している感覚でしたが,仕事でプログラムを書く方がSNSを閉じるので集中できたし,デザインがしっかりしているものを作ることができたのでやりがいを凄く感じることが出来,一人でアプリを作っている時とは違う楽しさ,嬉しさを感じることが出来ました.
また,「実際にはやれてないけど,〜〜も学んでみたいです.」という話をしたらできる限りの事をしていただけたりしたのもあり,感謝の気持ちでいっぱいです.
ここまでしてくださる会社も珍しいんではないか?と思うくらいでした.
最終日,
チームリーダーの方々や採用担当の方から,
「是非またインターンやバイトで来てね!」
と言って頂き,とても嬉しかったです.
別に普通のことなのかもしれませんが,
今まで一人で開発したり,部活でチーム開発している時に,自分って本当に必要な人間なのだろうか...?と自問自答することばかりで,自信を持てずにいた私にとってはとても有難く,多少なりとも自信を持つことが出来た言葉でした.
また,採用担当さんとFacebookで友達になることが出来て嬉しかったです!(※下心なんてないですよ!)
他の会社のインターンシップにも参加してみたいという気持ちもあるのですが,また夏に時間を確保できそうだったら,チームラボさんにインターンシップさせていただけるかお願いしてみようと思います.
これからも,今回のインターンシップでお世話になった方々と勝手に特定させて頂いたtwitter等でたまにお話できたら嬉しいです!
この記事に関連する記事
hanahanahunachi.hatenablog.com
hanahanahunachi.hatenablog.com
あと,
にも参加させて頂きました!!(設計の話,お勉強になりました.)
おまけ
今回のインターンシップ期間中(前後の土日を含む)に取ったご飯の写真を見納め下さい.
その他思い出の写真