今回は競技プログラミング始めたきっかけを徒然と書いてみる.
就活の際コード選考という面白い採用方式をしている会社があり,腕試しを兼ねて受けてみた.
この時私が受けた会社は,経営とITをデザインをする会社である.
選考に申し込むと,コード試験をするリンクが送られてくる.
https://tracks.run/function-test/functions/
Giveryという会社が運営しているtrackというコードテストサービスだ.
テストを始めると問題が表示され,与えられた時間の中で問題を解く.
このサービスでは,ブラウザ上でプログラムを書くことが可能であり,提出ボタンをクリックすると点数が出た.
問題は,ちょっとしたクイズのようなものだった.
与えられた標準入力に対し,題意に沿った標準出力を出すプログラムを書く.
私が用いた言語はC++である.
標準入力は,std::cinで受け取り,標準出力はstd::coutで書く.
競技プログラミング(以下,競プロ)をやったことがなかった私には,全てが新鮮だった.
まず標準入力をちゃんと受けとるところからつまづいた.
そして,ようやく入力を受け取ることができ,いざ問題を解くのだが,
アルゴリズムのなかに,ソートがたくさん出る.
当時,std::sort()の存在を知らなかった私は,ソートから手書きで書きまくる.
そして,問題を1問,2問と順調に解き,4問目からはなかなか解けなくなってくる.
どうしてもパスしないテストデータが入ってくるようになった.
最終的に5問解いたのだが,うち3問ほどは解け,2問は半分ほどしかテストをクリアしなかった.
全て終わったとき,なんとも悔しかったが,楽しいという気分が大きかった.
結果的に選考は順調に進み最終面接を辞退したのだがとてもいい会社だと思った.
というのも,それまで日本のITコンサルというと,開発は下請けに任せるため技術的な知識はなくてもいいという文化なのだと思っていた.
技術好きな私としては,なんとも興味が湧かない業界である.
かといって,そんな人にこき使われるのも面白くない.
そもそも,技術力がない人が,コンサルできるのか甚だ疑問だ.
このように私はITコンサル会社に対して,全く印象がよくなかったが,この会社は違った.
コンサルなのに技術者を尊重している.
面接してくださった方も技術者だったため,短い時間だったが技術トークに花が咲いた.
ローソンや佐川の事例のお話を聞き,これぞITコンサルだと思った.
いい会社だと思うので技術好きな後輩たちは是非受けてみてほしい.
話は逸れたが,これが私の競プロとの出会いである.
競プロは恐ろしくできるプログラマーが多く,それまで少し怖いものだと感じていたのだが,ちょっとしたクイズだと思えばなんとも楽しい.
また,アルゴリズムやデータ構造といったCSの基礎を知らない私は,とても勉強になることも多い.
プログラムがすごいできるという人でなくとも,プログラミングをこれから始めるという人にとっても,競プロは学べることが多くゲーム形式で楽しいため,おすすめだと思う.
徒然文を最後まで読んでいただきありがとうございました.