メモジャンボ

良い感じのブログタイトル募集中

FORCIA Summer Internship 2021 に参加しました

フォルシア株式会社にて5日間のサマーインターンに参加してきました。

なるべく応募段階から全体の流れが分かるように書くので、これからインターンに参加する人の参考になれば幸いです。

自分について

こんな感じでかなり競プロに頼って就活してます。

参加までの流れ

フォルシアさんでは過去に「ゆるふわ競技プログラミングオンサイト」というイベントを開催されていたり、競プロ関係で知っている方が何人もインターンに参加したり入社されているのを見て、かなり興味を持っていました。

応募コースはデータクレンジングサービス開発コースにしました。アルバイトや研究でも業務の一部でデータ整形をよくやっているのと、要求されるスキルがPython & pandasでどちらも慣れていたという理由で選びました。5日間では不慣れな技術にキャッチアップしている時間はないのではと想像して、スキル的にいけそうかどうかは結構重視しました。その点を度外視すると、最近Elasticsearchに触れて検索エンジンに興味が湧いてきたので検索アプリ開発コースも面白そうだなと思いました。

選考はESと面接1回でした。面接について特に変わったところはなく標準的な内容でしたが、こちらの話に対して基本的に肯定的なリアクションを取ってもらえたのでとても安心して話しやすかったのが印象的でした。

課題内容

Massteryというデータ整備を自動化するサービスがあります。基本的にはデータをアップロードするだけで自動的に整備されるのですが、事前にデータ変換の設定を人手で行わなければならない場合もあり、大変なのでこの作業を補助するツールを作ってください。

という内容でした。

もう少し詳しく書くと、変換前後のExcelファイルが2つあって、どういうルールで変換されているか(例えば「変換前のA列とB列を結合して変換後のE列を作っている」「変換前のC列の値をそのまま変換後のB列にマッピングしている」など)を読みといてそれを再現できるような変換条件を設定する作業の補助 というテーマでした。

インターン

1日目は課題内容の説明を受けてどういうツールを作るか考えたり、いくつか思いついた中で実装が軽そうな方法を書いて試したりしていました。 初日はとりあえず環境構築をするイメージだったのですがそこはあらかじめ準備されていて感動しました。 お昼ご飯はすき焼き弁当でした。めちゃめちゃおいしかったです(スマホのカメラが壊れてたので写真はないです)。

2日目は、実際に変換設定作業を行っている社員さんにヒアリングを行い、要件定義を行いました。僕の思い付きで良さそうな機能を実装しても、使う方からすると「コレジャナイ…」となりかねないので実装に取り掛かる前にこの工程を踏むのはとても重要だったと思います。後で営業担当の方から聞いた話によると、こんな感じでエンジニアであってもクライアントとの折衝など上流工程に関わるのはフォルシアさんの特徴的な部分でもあるらしいです。

結局、変換前後の列と列の関係性を可視化するという方向ですすめることになり、変換規則のパターンが色々あるので、それらをカバーできるような方法を時間の許す限りいろいろ(文字列の類似度とか統計的な相関とか)実装することにしました。

3日目は中間発表としてこれまでの進捗と今後の方針を話しました。何も準備せずに臨んだらかなりテンパって話の流れとかゴチャゴチャになってしまったので猛反省しました。

その後はモリモリ実装を進めましたが、事前の調査ではうまくいくだろうと思った方法がいざ実装してみたら微妙な結果になって半日無駄にしたかと思い焦りました。

4日目の朝に、昨日ダメだった理由が単純なバグだったことに気づいて事なきを得ました。 この時点で大体良い感じに動くようになったので、コードレビューを頂きつつリファクタリングを進めました。

5日目は最終発表がありました。中間発表の反省もあり今度は気合を入れてスライドを準備して臨みました。学部4年で研究室に配属されてからスライドを作る機会がかなり増えましたがいまだに苦労しますね(気を抜くとすぐに一面真っ黒の箇条書きみたいになってしまう)。同期の2人は自然言語処理コースと検索アプリケーション高速化コースでどちらも性能改善的な内容だったので発表難しそうだなと思いきや門外漢の自分にも分かりやすく発表していてすごいと思いました。発表後は社員の方々からフィードバックコメントをいただきました。全体的に良い感じのことが書かれていてうれしかったです。

その他

環境

まず立地が最強で、フリードリンクも充実していて良かったです。冷凍庫にはピノがたくさん入っていました。 昼食は毎日高そうなお弁当が支給されて各自で食べる形式でした。 キーボードとマウスは持参しました。 コミュニケーションに関してはSlackが中心で、関係ないことを書いても許される雰囲気で発言しやすかったです。あとは社員の方が時々席に様子を見に来てくれました。

座談会

コロナの影響で昼食が個食スタイルになった代わりに、昼食後に毎日様々なポジションの社員さんと話す場を設けてもらいました。日によって話す内容が完全にバラバラで、雑談だったり就活のアドバイスを貰ったり競プロの話をしたりで楽しかったです。

夕会

一日の終わりにインターン生やインターンに関わる社員さんが集まってその日の作業報告をする会がありました。個人的に他のインターン生のやっていることが気になっていたのでこの時間は楽しみにしていました。

感想

課題内容に関しては、5日間でやるには割とハードな課題で若干やり残した感もありますが、事前にどの機能を実装するかの優先順位を付けて取り組んだのは業務っぽくて良かったと思います。 入社手続きから各種イベントに共通して段取りがきちんとされていて、相当リソースを割いて準備してくださったんだろうなと思いました。そのおかげで5日間とは思えないほど充実感がありました。

本当に参加してよかったと思いました。受け入れてくださったフォルシアさん、ありがとうございました。