kd blog

ありとあらゆる色んなカテゴリの話をごちゃまぜに書きます

Chatworkのサマーインターンに参加しました

この夏,Chatwork株式会社様のサマーインターンに参加させていただきました。 今回はそのレポート記事です。ちなみに人生初ブログ投稿です。

インターン自体の具体的な内容等は社員さんの資料や他の参加者のブログの方が見やすいと思うのでそちらを見たほうがいいと思います。最下部にいろいろリンク張っときます。

私の感想・心情が多めになってしまいました。

自己紹介

どんなレベルの人間なんだろうということで

私はとある高専の情報系学科を出て,とある大学の情報系学科に編入し,そのまま院進した現M1です。 今は画像処理系の研究しています。

プログラミングスキルとしては授業,研究で使ってるぐらいです。趣味で何かやったりエンジニア系のバイトやインターンの経験はないです。 ちゃんと書いたことあると言えるのも授業や研究で使ったC, Java, Pythonぐらいです。 あれ,なぜインターンに受かれたんだろうか。

応募するまで

エンジニア職に就きたいと漠然と思いながらも手を動かさない自分に喝を入れるために外部環境から変えよう,技術系のインターンに応募だ!ということで夏のインターンを探していました。

そのうち友人から某スプレッドシートを教えてもらったので見ていると,Chatworkさんは3週間のうち1週間が講義パート,2週間が業務パートというもので,知識はないけど業務を経験したいという強欲な私にとって理想的なものでした。後は交通費宿泊費が支給なのも魅力的でした。やはりお金の話は避けられない...

Scalaどころか関数型も書いたことはなかったですが,スキルをつけたいという目的のもと当たって砕けろの精神で応募しました。

選考について

見栄を張らずに正直に書いたESは無事通過し,面接へとたどり着くことができました。面接は人事の方およびエンジニアの方とビデオ通話をつないだLive面接でした。
エンジニアの方は自宅から接続しており(おそらく),そういうことが普通にできる会社って自分の中の偏見にまみれた会社像の中にはなかったので驚きでした。同時に,いいなぁこういう会社なんて思っていました。

面接では人事の方からは,自分のこれからの予定であったりキャリアビジョンのようなことを聞かれた気がします。(ちょっと記憶が曖昧なのでにごしときます)
エンジニアの方からはESに沿って,技術的な経歴やチーム開発経験やコードレビュー経験の有無などを聞かれた気がします。嘘をついてもしょうがないので,せいぜいプログラミングの授業で友人に教えたり教えられたりといった経験ぐらいということを答えたはずです。Scalaの経験についても書いたことないと正直に答えました。全体を通してすごく優しくカジュアルな雰囲気の面接でした。

受かりました。大喜び。 数社からの不合格に心を折られかけていた私は応募者が少なかったのかなぁなどとネガティブ爆発させていました。

後から聞いた話によると,面接の際に見ていたのが自分の言葉で話しているか ということらしいので嘘をついたり見栄を張らなくてよかったです。詰められると絶対ボロがでますからね。

インターン開始まで

合格後には『実践Scala入門』が送ってこられ,これを読んでおくこと,Akka HTTPについてこちらのページを読んで実際に動かしてみることが事前課題でした。

ホテルは会社から徒歩2分(ガチ)のアパホテルを予約してもらっていました。朝食付き。至れり尽くせりすぎてびっくりしました。

その近すぎるホテルと心配がかみ合い,初日は集合の20分前には会社の前に着いてしまったので周囲をぐるぐるすることで5分前到着に調整したという間抜けなことをしていました。

講義パート(1週目)

社員さんお手製のスライド資料により,たくさんの知識を教えていただきました。

脳がパンクするとはこういうことを言うんですね。というのも私にとってはソフトウェア開発も要件定義もDDDもWebサービス開発もインフラもScalaもチーム開発も全てが初めてだったので。初めましての概念を咀嚼するのはめちゃくちゃ疲れました。というか咀嚼しきれずに3週間ずっと噛み続けてた気がします。何なら今も噛みきれずに残ってます。

閑話休題

正直この1週目の時点で満足度100%って感じでした。お金払ってもここまでしてもらえる講義があるかわからないのに,交通費宿泊費等色々負担してもらってさらに講義まで,ですからね。騙されてるんじゃないか私たちは...なんてずっと言ってました。

業務パート(2,3週目)

すでに存在している掲示板(のようなもの)アプリケーションに新機能「お気に入り機能」を実装,公開することが課題でした。

このアプリケーションは業務パートで教わったクリーンアーキテクチャやDDDといったような手法がふんだんに取り込まれており,「これがあの講義で出てきたアレか!」なんて進研ゼミ状態にしょっちゅうなってました。アプリケーションのみに限らず,スクラムやカンバンといったチーム開発の手法についても知識として知るだけでなく実践できたことは大きな経験になったと感じています。人間はそう簡単に用意できないので。

コード実装は大半はモブプログラミングの形をとっていました。いつも一人で書いているのでやいのやいの言えるのは楽しかったですね。2週間もモブプログラミングをやっていたら性格やら適切な立ち位置が浮き出てくるのが面白かったですね。がんがん意見を出す人,自分の中でしっかり意見をまとめてから発言する人,調べ物を積極的にする人,意見をまとめる人等々... ちなみに私は意見交換が円滑にいくように,積極的に問いかけたりホワイトボードに意見をまとめたりしていました。例えるならそう潤滑油

正直,実装において他のインターン生よりも理解が追い付けないところが多く,せめて別のところで貢献しようと思ってのことだったのですが,思いのほかチーム開発としては適材適所のような形になって良かったみたいです。社員さんとの会食の時に,そういうファシリテーターとしての役割を期待して合格として,実際動けていたという言葉を頂けてとてもうれしかったです。

業務パートでの一番の収穫物はチーム開発を実践することでしか得られない感覚でした。例えば実際にあったことですが,2週目は7人全員でやっていたモブプロを3週目では3:4に2分割して行った結果,効率が全然違ったんですよね(3週目の方がよかった)。チーム開発の手法を聞いただけで,それを実行している例を見ただけでこの感覚は絶対に得られなかったと思います。知識はあくまでベースでその上に自分の経験から得た感覚を積み上げる必要があるんだなと感じましたね。社員さんにレビューをお願いするとすぐにいくつもの指摘が返ってくるのもいい例だと思います。私たちでは全く意識してない問題点が,社員さんの感覚ではすぐに目につくんでしょうね。

ちなみにこのチーム開発の効率の感覚はこちらのワークショップで簡易的に感じられるので興味ある人はやってみてください。講義パートのときにやったのですが私は感動しました。

コイン渡しゲーム

ドットゲーム こっちの方のリンクは実際にやったものとは違いますが,似た内容だったので参考までに。

会社の印象

Chatworkさんはミッションとして「働くをもっと楽しく,創造的に」というものを掲げています。

corp.chatwork.com

これを実現するために,まずは自社からというところがすごく好きです。正直こういうミッションや理念ってとりあえずきれいごと掲げとけって感じな印象なので,書いてあることと会社としてやっていることが一貫していると客観的にも主観的にもすごく信用がおけます(何様だ)。

社員さんも皆さん尊敬できる方ばかりでした。私が今後のキャリアについて相談したりすると,それぞれ自分のキャリアを絡めてお話してくれて,3週間で色んな領域の色んな考え方が聞けてすごく参考になりました。今思うと,面接のときに見られていた自分の言葉で話すということがごくごく自然に行われていました。

大阪という土地について

福島駅が最寄りで,その周辺でご飯食べていたのですがここすごいです。大阪駅から一駅しか離れてないのに,人は比較的少なく,でも飲食店はたくさんあるという最高の状況です。私は毎日,お昼と夜のお店どこにしようとわくわくしていました。

都会的な部分は大阪/梅田周辺に集中してるところが,すごくいいですね。今回でだいぶ関西圏での就職に傾いてます。

さいごに

非常に有意義な3週間でした。

きっかけは何かスキルつけなきゃぐらいの焦りで応募したものでしたが,講義や業務体験だけでなくキャリアの相談まで乗っていただいて,想像の100倍くらい得るものが多かったです。

多分社員さんが見るからって,おべっか使ってるわけじゃないですよ。自信をもって人に勧められます。

来年もインターンは開催する予定とおっしゃっていたので,気になる人はぜひ応募したほうがいいと思います!

リンク集

他のインターン生のやつです trackiss.hateblo.jp

github.com

ups.hatenablog.jp

mie999.hatenablog.com

社員さんがScalaのイベントで発表したらしいです

speakerdeck.com