FORCIA Summer Internship 2020 参加記

FORCIA Summer Internship 2020 Rustインメモリデータベース開発コースに参加してきました

業務内容についてはどこまで書いて良いかもよく分からないので、大体業務外のどうでもいい出来事について日記くらいのノリで書きます。ちゃんとした参加記を読みたい人はごめんなさい。

 

1日目

 

一番乗りでインターン生待機部屋へ。今期のインターン生は3人らしい。

部屋で待機していると、1人のインターン同期が来る。(以下同期A)

同期A「東京に住んでらっしゃるんですか?」

自分「そうですね〜 東京ですか?」

同期A「そうですね...東京の大学に通ってらっしゃるんですか?」

 

あ、この人東大だな」と確信する。

 

同期A「Rust普段書かれてるんですか?」

自分「いえ、書いたことが無くて、このインターンが決まってから勉強を始めました」

同期A「えっ、そうなんですね...」

 

ドン引きを感じる。いや、冷静に考えて逆の立場ならドン引きするな。

その後も少し話す。どうやら同期Aも競プロをやっているらしい。

 

暫くしてもう1人のインターン同期(以下同期B)も来る。同期Bも競技プログラマで、全員AtCoder Jobs経由で申し込んだらしい。競プロer率が異常すぎる。

 

そして朝会の時間に。インターン生の紹介が始まる。

「1人目は東京大学の(kort0n)さんで〜」

他己紹介されるのって何か小っ恥ずかしいよね。

「2人目は東京大学の(同期A)さんで〜」

やっぱりね。分かるんだよな〜。

「3人目は東京大学の(同期B)さんで〜」

全員東大か...

 

FFのメンターから説明を受け、業務開始

暫くして休憩スペースへ。某社員(@tempura_cpp)がいたので話し、その後同期Aと話す。

 

自分「さっきの社員の人知り合いなんですよね~」

同期A「...僕あなたが誰か多分分かりました」

 

 

 

 

 

 

 

(  ^v^)...?

 

先行き不安で仕方が無い。とりあえず退勤時間になったので退勤...

 

2日目

 

この日業務以外だと特に変なイベント無かった気がする(?)

 

3日目

このインターン期間中は昼食は社員数名と食べるのですが、何とこの日は

・勤務n年(社内でもかなり長い方)のエンジニア

・社長

という、明らかに大御所枠の日だったので、流石に緊張していた(他の日はメンターか、若手社員)

蓋を開けてみると、2人で漫才をしているのかというくらいのマシンガントークが炸裂していた 何?

 

夜は社員の方2名に誘われ、インターン生3人と計5人で近くの居酒屋へ。

インターン同期と時間を掛けて話すタイミングがあまり無かったので良かった。このときに話して分かったのだが、どうやら同期Aは自分のツイッターを相当見ているらしく、競プロを始めてからに限らず、学部1年生の頃のクソツイート等についてもよく知られていた。あまりに恥ずかしい。

例の「2色下は~」が好きだという話をされる。社員(非競技プログラマ)の方が食いついたので経緯を話すと、ウケた。しかし、同期Bに

「あれってそういう理由があったんですね。ただの過激発言だと思ってました。」

と言われた。悪質な拡散をしている民許せねぇよ...

 

あと京都出身の人達の会話で

「僕京都出身です。」

「え、俺も!」

「あ、でも洛外です」

という会話があって面白かった。こういうの本当にあるんだ

 

4日目

 

この日は退勤後に社内バチャがあった

最初の3問は通したことがある問題だったのですぐに通す

4問目は初見だった。暫く考えて実装するとWA

何度か修正しつつ提出するもWAが取れない

仕方が無いので実装方針を大幅に変更して提出するとAC

結果、700近いレート差を逆転され、3位に...

 

f:id:kort0n:20200907171255p:plain

どうしてこんなことに...

最初のWAが納得行かないので周りと議論するが、どうも会話が噛み合わない。問題文を読み直す。誤読してた。

しかし、誤読していたなら最後の提出が通ったのが納得行かない。ACしたコードを読み直す。バグってた。誤読とバグが組み合わさってACしてた。は?

 

夜はtempura_cppさんと寿司を食べに行った

 

人に奢ってもらうときは流石にいくらか遠慮が入るけど、会社の金となるとなんか食べちゃおうかなって気分になる 最高!

 

5日目

 

5日間の進捗の最終報告会があった

やったことを話して質疑応答の時間になる

司会「○○さんからチャットで質問が届いています。『~~~』」

自分「それは~~~です。」

司会「(tempura_cpp)さんからチャットで質問が届いています。『実装の鬼』。」

それは質問ではない

 

その後は懇親会が始まった。頭が付いていないので、カードキー返却後の最後の懇親会でトイレに行って会場から締め出された(暫くして社員の方が気付いて開けてくださった) はやく人間になりたい...

 

以下少しだけインターンの参加記っぽい記述

 

Rustについて

 

  • 所有権とかトレイトとか諸々の概念が複雑で、とりあえず書けるようになるまでが難しい
  • 型についての厳しさも相俟って、コンパイルを通すまでにかなり苦労する
  • しかし、コンパイルが通ってしまえばほぼ勝ち C++等では書いた関数が意味不明な挙動をすることもザラだが、Rustではそういうことは少ない
  • 「書いた関数を使い忘れていた」というタイプのバグ等は発生し得るが、そういうのは気付きやすい 総じてバグを埋め込みにくい/デバッグが楽な言語だと感じた

 

その他雑感

  • 例年の同コースのインターン生と比べてかなり進捗を生めたらしい。AOJ-ICPCの修行の賜物。競技プログラミングは業務の役に立つ。
  • 他の2人のインターン生は、いい感じにモデルを立てていい感じにやる課題をやっていた。多分kaggleは業務の役に立ちそう。kaggleやったこと無いけど。 
  • でも業務で使うツールとか用語とか全然知らないと恥ずかしいし不便なのでちゃんとその辺も勉強しないとヤバい。

 

以上5日間お世話になりました。有難うございました。