しがない元高専生の競プロ日記

AtCoderとかいろいろ解いてく

AtCoder Jobsで受かったFUTURE社でバイト始めて2週間が経った

自己紹介

現在豊田高専の5年情報工学科に所属してます。

来年から豊橋にある某技科大に進学します。

高専3年のタイミングで運動部を辞めてコン部に入り、パソコン甲子園で競プロに目覚めました。

AtCoder水(応募時はHighest水の緑コーダーでした)

f:id:honehaniwa:20200311232717p:plain
激冷えしてるやんけ...

大学に進学するにあたってバイト探さねぇとな~~~~~と思ってました。

あと卒業研究で深層学習を使って自然言語処理っぽいことをしたりしてました。

https://twitter.com/TT_beginner/status/1234438002190868482

応募の経緯

jobs.atcoder.jp




こんなツイートを見つけました。

元々FUTURE社のバイトには興味あったのですが、応募ページに書いてある通り、この一文で諦めてました。

※遠隔地からのフルリモートワークのご希望につきましては、
Atcoder Aランク以上、著名学会への掲載、その他コンペティションでの
上位入賞経験等の特に優れた経験をお持ちの方に対し、
ご相談可とさせていただいております。

しかし、@shomu_matchさんのプロフを見ると水コーダー&愛知県住みというのを発見。

これはワンチャンあるか???と思いツイート。

空リプにもかかわらずツカモさんから秒でリプが付き、その後数分で応募->面談の予定決めまで決まってしまいました。

f:id:honehaniwa:20200311234020p:plain
深夜なのにこの爆速の進み具合

追記:

どうやら面接担当がパンクして青以上しかダメになったみたい。 人気すぎるやろ

面接->初勤務まで

面接はラボの先生の教員室のスペースを借りてGoogle Hangoutでリモート面接しました。

なにも準備せずノリで何とかなるかな~と思ってたらよくある志望理由とか聞かれて内心やべえええええええと思いながら何とか乗り切りました。

今までの開発経験や研究関連のことを話せるだけ話して面接終了。

色々興味あるので何でもやります!って言ってたらラボの先生に「何やりたいのか分からない人みたいになってるよ」と言われました...

反省。

面接結果

無事バイトとして雇ってもらえることに!やった~~~~~~~

勝因

研究をちゃんとやってた。B2の年齢で研究してて研究内容でゴリ押しできるところが高専生の強みだなぁと思ったり。

後はチーム決めてモノづくり、みたいな授業でコン部だからという理由でメインプログラマーに任命されてヒーヒー言った甲斐がありました。

勤務初日~一週間

自分が水コーダーということもあり、一度本社にきて一週間業務体験みたいな感じでやってみて良きところでリモートに切り替えましょうか、というお話になりました。

(コロナの関係で本当はもうちょい東京にいる予定ではあったんですけど1週間で終わらせる感じになりました)

唯一、残念ポイントだったのは宿泊費が出なかったことでした...

今までは本社に来る=日帰りという想定らしく、宿泊費を出すならインターンみたいな感じにできるけど給料が出ないということで自費で宿泊費を負担して東京勤務をすることに。悲しい。

ちなみに交通費はちゃんともらえました😚

初日は業務する用のノートPCのセッティングをしたり、社内用Googleアカウントの作成や人事の人とアルバイト登録の契約書を書いたりしました。

ハンコ忘れるとヤバいです

2日目以降はこれから入るチームの候補を説明してもらって感想を言っていって入るチームを決める->実際に入って業務開始という流れでした。

話している途中で学校のグループワークでJavaを使ったWebアプリケーション開発をやったことを思い出し、それを話したらそういう系のチームの所属になりました。

それからは環境構築でバトったり、ツカモさんに昼飯奢ってもらったり(ありがとうございました)、業務終了後に何故か東京でインターンしてた同級生と一緒に東京で勤務してる先輩の家でしゃぶしゃぶパーティーしたりしました。

本社勤務ではコロナでリモートになってるチーム内の人と通話でコミュニケーションが取れるか、や開発系の知識がどの程度あるのか(git使っていきなりmasterいじってpushしようとしたりしないか程度)を見ている気がしました。

(明確な基準は聞いてないのであくまで推測)

リモートワークになってから

基本はGoogleチャットでSlackみたいな感じにコミュニケーションを取りつつ定例会議で進捗報告~という感じです。

春休みなのとリモート初週なので多めに時間取って働いてます。移動時間0秒&13時開始が許されるのが最高すぎる。

競プロerはこういう内容をする(社外秘等あるのでざっくりですが)

前提として

業務としてはいろんな企業から「○○で困ってます。どうしたらいいですか?」という困り事に対して、その解決にアルゴリズムが必要そうなら提案し、お仕事を貰ったり最適化してワーイヤッターするお仕事です。

意外なのは、深層学習やディープラーニング系は業務プログラミングとしては最終手段として使われるそうです。

まず、要望としてはできるだけ100%の精度で動いて欲しい内容が来ます。

その時に学習過程がブラックボックス化されており、精度が完全に保証されない深層学習系より、単純なルールベースやソート等、動作が明確で後の仕様追加や変更も容易な手法を採用すべきだからです。

それでも無理そうな内容ではAIパワーに頼ろう!となって初めて深層学習使おうか、となります。

Jobsでのバイトはいきなり深層学習とかマラソンっぽいような最適化部分の前に、必要な基本的な処理の実装を担当することが多いと思います(Kaggleとかで強そうな成績出してたりするとデータ検証系にぶち込まれるかも)。

次にレート別の業務内容はこんな感じです。

茶~水くらい?(自分がやってる or やった内容)

現行のWebサービスのブラッシュアップとして落ちそうなテストケースをHackする(ある項目に大量の文字や特殊文字を打ち込んでエラーにさせる等)。

↑で見つけたテストケースとか、その他品質テストを自動化するプログラムを書きましょう。

最適化で作った内容をビジュアライザーでいい感じに表示しよう。

まだ仕事が来てないだけでメインの最適化の方も来るかも?

強そうな人がやる内容

学習モデルの構築やシステムの根幹の最適化部分(レートが低くてもマラソンそれなりにやってたりするとこっちになるかも)

Jobsバイトのいいところ

  • 自分の応募したバイトはバイトまとめ役がツカモさんになっているのでコミュニケーションが超楽。競プロerのことをよく分かってくれているので安心感がある
  • 現実世界のデータで色々やれるので動いてるワクワク感が全然違う。
  • AtCoderみたいな数字や謎の1e5文字の文字列ではなくちゃんとした店舗名だったりが入力されてビジュアライザーまで組まれてたりで開発もええやん!となる。競プロみのある内容なので尚更楽しい。
  • 就職とか考えるときに競プロはこんな感じで社会に役立つんだな~とか考えたり。
  • 社員さんも結構ユーモラス("情報系の人間")なので会話してて不都合等も無くて楽しい。
  • 社内競プロサークル的なのもあり、所属してる人のレートが監視されてます(いい事なのか?)

ざっとこんな感じ。

競プロサークルは大体人数は20人くらいで上位10+x人は青以上、水、緑、茶、灰もそれなりにいます(全員がJobsバイトerではないのでバイトとしての色の相関は分からず)。

リモートの問題点

  • 月1~2で面談で東京に行けるのですが、平日限定なので少し厳しい
  • 社外秘の情報を扱うので寮生活とかしてると結構注意しないといけない(自分が来年そうなので)
  • 回線が遅いと厳しい?(画面共有しながら電話したりするのが快適程度は速度が欲しい)。

こんな感じ。

会議用のマイクとかは配布されてるPCの内臓マイクで大丈夫そうなので買わなくてもよさそうです。

その他の問題

  • 週15hは働いてほしいそうなので編入後とかは忙しめの人だと時間的に厳しいかもしれない(ある程度は融通を利かせてくれるらしい)。
  • 休日働けない(正社員の人と共同で開発するためそれはそう)

最後に

実は編入する高専生をバイトerにするのは初めてのモデルケースらしいので高専生もやれるんやぞというのを示していきたい所存。

FUTUREのjobsバイトに受かりそうなアドバイスは、

  • やはり開発系をやってると嬉しいらしい
  • 研究でもそれなりに開発っぽいものをするので卒業研究は大きな実績作りのチャンス
  • Rust とかでイケイケ開発~というイメージよりは Java とかそれなりに読めて書ける感じの方がよいっぽい
  • 深層学習系は Python 、お隣の部署だと Go が主流らしい
  • ディープラーニング系はよほどできるマンではない限り厳しそうでマラソンマッチできる方が重宝されがち?
  • 東京近傍じゃなくてAtCoderレートが低くても交渉次第でなんとかなる!

という印象でした。

まだB1,2(高専4,5年)とかだし開発もしたことないけど受かりたい!なら

  • 競プロのレートを上げる(一番手っ取り早いかもだが開発系の経験がNULLだとリモートとかは厳しそう)
  • git、GitHubを使った開発(これは最低限経験してないと無理。集団開発でGitHub使わないは地獄なので)
  • 競プロ以外でも環境構築とかをしてみる(Python+chainerで深層学習できるようにしました!とかPATHを通す、が分かるとか実際にやってみないと分からないことは多そう)
  • Unityでも何でもいいからなんか作りてぇなぁで作品を作ってみる!コーディング力はAtCoderで鍛えてるので使うツールとかの仕様と格闘して検索力を上げればなんかできる!(はず)

とかなイメージです。研究で入った人間なので何とも言えないですが...

個人的には暇してる高専生4~5年生とか興味持って来てくれたらうれしいな~と思ったり。

とりあえず募集の文面見ただけでこんな感じになってる人はなんやかんやでいろんな縁があったりするので一度行動してみるといいと思います!

なんやかんやで5000文字くらい書いてたんですね...

どおりで今午前3時な訳だ。

最後にツカモさんのありがたいお言葉で締めたいと思います。ここまで見ていただき、ありがとうございました。

追記:ちゃんと会社の許可は取ってます👍