前編:AtCoder経由で入社したメンバーたちの現在地 - estie 競技プログラミング経験者座談会(前編) - estie inside blog
メンバー
fukushima:
大学卒業後、メディア系コンサルタント企業に従事。その後、AI 系スタートアップを複数経由し、2024年3月よりestie に入社。
競プロ好きなコンサルタントが不動産TECH企業に飛び込んでみるまで - estie inside blogriano_:
2022年8月、Web 開発未経験の状態でソフトウェアエンジニアとして estie に入社。AtCoder 橙。
品質の斧と速度の斧 - estie inside blogjunshin:
大学院卒業後、化学メーカーの AGC に開発職として入社。競技プログラミングにハマったことをきっかけに、2024年3月に estie へ入社。
競プロをきっかけに化学メーカーからestieに飛び込んでみて - estie inside blog
fukushima: みなさんここまで真面目にお仕事の話をして貰ったと思うんですが、もうちょっとゆるめの話ができればと思います。
1日に1回同僚とコーヒーを飲む
fukushima: 会社ってどんな雰囲気ですか?好きな社内制度ってあります?
僕から答えると、僕はフリーアドレス制度が好きだなと思っています。まあ僕自身はそんなに席を変えるタイプではないんですけど、隣に座る人が違うと結構自然に会話が発生するなというのは、ほぼ毎日出社してるんで感じる部分ではありますね。
あとはあれですね、社内で雑談をするときにあんまり気がとがめない部分があって、集中したい人は遠くの席に行くしみたいな、そういう会社の雰囲気が好きです。
junshin: 僕はよもやまが好きですね。よもやまっていう制度があるんですけど、出社したら 1 日に 1 回だけ同僚と 450円以内でお菓子とか食べ物を買えたりするんですよね。何かを買って、その後もなんか雑談したりするんですけど、そういう感じで雑談できる環境とかタイミングが結構あったりします。
茶菓子を制するものはコミュニケーションを制す?estieのよもやまって何? - estie inside blog
僕はコーヒーが大好きなので1日1回頼みますね。
fukushima: よく使うお店とかありますか?
junshin: 大体セブンかスタバに行きますね。セブンだったらコーヒーと他にも何かを買えるので、おなかが空いたときはそっちに行きます。
riano_: 好きな制度というか好きなところの話をすると、とりあえず任せてみようっていう雰囲気は結構好きですね。
説明責任って言葉があると思うんですが、説明じゃなくて結果を出すことが責任だと自分は思っているので。
もちろん、滅茶苦茶やるわけにはいかないので、ちゃんと考えた上でなんですが、とりあえずやらせてみて、それに対して結果を出すという方法で応える、という関係性のあり方は好きですね。
junshin: 分かります。自分は結構何でもやりたいというタイプなんですけど、やろうやろうという感じでやらせて貰えるのですごいです。
fukushima: 特にこれやらせてもらえるのすごいなって思ったことあります?
junshin: 認証周りの機能整備なんかはそうですね。プロダクトの根幹に関わる部分なので。
riano_: AtCoder のコンテストがまさにその一例ですね。今年も ARC をやるってことになっていますけど、去年時点で ARC をやるって相当思い切った決断だったと思いますよ。あとは最初の方に話したバックエンドを作り替える話もそうですし、共通基盤を整える話もそうですね。
ダイクストラ法がきっかけでアルゴリズムに目覚めた
fukushima: せっかくなので競プロの話をしましょうか。
まず最初に、仕事をしながら競プロに取り組む時間ってあります?
riano_: やる気があればある、だと思います。実際自分もやる気があるときは競プロをちゃんとやっていますし、やる気がない時期は全然やっていませんでした。
junshin: 僕も結構取り組む時間自体はあると思うんですけど、今はそれ以外でもやりたいことがあったりするので今はやっていないです。
fukushima: 最近は CTF に挑戦したりしていましたよね。
ちなみに僕も仕事や他の趣味に浮気をしてちょっと離れていたんですが、最近少しずつ再開しつつあります。
競プロを始めたきっかけって覚えていますか?
junshin: 僕の場合は、 Google Maps とかで最短経路が出てくるじゃないですか、あれってどうなってるんだろうって思ったのがきっかけですね。
自分で調べてみて、ダイクストラ法って面白いなって思って、それで研究室にいたパソコンに詳しそうな人にその話をしてみたら、競技プログラミングの存在を教えてもらいました。
fukushima: 最短経路問題がきっかけだったんですね!ダイクストラ法がコンテストにでたらうれしくなったりします?
junshin: ないです。笑
fukushima: そうなんですね。笑
僕の場合はあんまり覚えていなくって、確かエンジニアとしての就職の役に立つみたいな話をネットサーフィンで見たんですよね。
あと昔から chokudai さんのことは知っていて、あの chokudai さんがやっているサイトか、と思った記憶があります。
riano_: 僕の場合もあんまり覚えていないんですが、競技プログラミングの存在自体は大学時代から知っていたというか、大学のサークルの後輩がやっているらしいと噂で聞いていました。
ただ当時は尖った考えをしていて、PC は邪道、紙とペンで物理法則の深淵に近づくんだ、と考えていたので手を出しませんでした。例えが数学で恐縮ですが、4色定理の証明を気に食わない感じといえば分かる方は分かるでしょうか。
それからしばらくして、営業の仕事をやっていたときに、ふと理系的なものが懐かしくなって始めました。実は物理と競技プログラミングって結構似ていると思っていて、どちらも純粋な数学というより、数学を土台にして物理現象であったり問題であったりを解釈していくというイメージを持っています。
fukushima: それで始めてみたらまんまと。
riano_: そうですね、思っていたより全然面白いものだったと気付きました。
オンサイトに行きたい
riano_: 実はこの話には続きがあって、その後輩に2年くらい前の TOYOTA コンの決勝で会いました。そういう再会の仕方をするとは思っていなかった。
fukushima: 嬉しいですね。
オンサイトということで言うと、僕にとっては結構モチベーションになっていて、競技プログラミングで一番嬉しかったのはヒューリスティックのコンテストでオンサイトに行けることが決まったときでした。
長期コンテストだったんですけど、最初は全然解法が分からなく、解法を思いつくまで家に帰らずに歩き回るみたいなことをやってました。よく訪れていた新宿の地下街を歩いたり、家の近くの川を上流に向かって遡ったり、みたいな感じですね。
それでなんだかんだあって解法を思いついて、それがいい感じのスコアになってオンサイトに行けるぞ!となったときはすごく嬉しかったです。
junshin: オンサイトってそんなに行きたいですか?僕はそんなに行きたいとは思わないです。
riano_: 行きたいですね。単純に、同じぐらいのレベルで競技の話ができる人と会うのって楽しいですけど、まあなかなか難しいじゃないですか。あとはちゃんと実力で選ばれるということに対する嬉しさもあります。
fukushima: 僕は結構その後者寄りの感覚で、正直招待される水準の順位を取れれば行かなくてもいいかなみたいな気持ちがありました。
メダルをとったみたいなうれしさですかね、順位自体が嬉しいですし、単なる順位ではなく意味のある順位というか。
話は変わりますが、思い入れのあるアルゴリズム・データ構造ってありますか?
僕は動的計画法を最初に勉強したとき、結構1日くらい感覚が掴めなかったんですよね。あるレコードを更新したり、そのデータを使って別のレコードを更新したりなんてことをしていたら収集が付かなくなってしまうんじゃないかと思ってしまって。
でもある時すっと腹に落ちるものがあって、その瞬間は印象に残っています。
riano_: 初めたばかりの頃で言うと、同じく動的計画法で、この問題が印象に残っています。
この問題を解く前、特に組み合わせの問題は、ノートの上で問題を解ききって、そうすると二項係数とかを含んだ式が出てくるのでそれを計算するプログラムを書く、というものだとしか捉えていなかったんですよね。
でもこの問題を解いたときに、紙の上で閉じた式として解ききらなくても、答えを求める手順をコードにできればよいんだということに気付きました。そういう意味で印象的でしたね。
これは先ほどの「PC は邪道」という自分が持っていた偏見に対するアンサーにもなった気がします。こういう問題の解き方ができるということがプログラミングをする良さなんだなと。
機会を開くことで社会は少し変わるはず
fukushima: いよいよ質問も最終盤です。ちょっと身構えてしまうような質問なので気軽に答えてほしいんですが、どういう世の中になってほしいと思いますか?
riano_:「興味に嘘をつかなくていい社会」になってほしいです。
ちょっとここは長く喋ってもいいですか?
自分の生き方を振り返ると、一貫性が無い人生に見えると思うんですよね。物理の勉強をして、営業もやってみたかったのでやってみて、競技プログラミングをやって。結果として26歳までプログラミングなんてしたことがなかったのに今はこういう仕事をしている。
ただそんな中で、1つだけ一貫していたのは、その時々に心から興味を持ったことをやっていた、ということです。
ちょっと無責任な物言いになってしまうんですが、今の世の中って直接的に役に立つことが求められすぎていると思っています。ただ、例えば学生時代にそれが役に立つからといってプログラミングを勉強していても、自分は大して身につけられていたとは思わないんです。
本気で物事に取り組むときの集中力は、仕方なく取り組むときの数十倍、あるいは数百倍あるかもしれません。自分は物理に本心から興味があったからこそ、そういう集中力で取り組み、それに比例して論理的な思考力や問題を抽象化して捉える力のようなものを身につけてきました。結果としてそれは、今の仕事に活きています。営業経験も、競技プログラミングも全部そうです。
一方で、今の社会では、例えば開発経験がないとソフトウェアエンジニアになるのは難しい、という現状があると思います。そのような社会では、「役に立ちそうな経験」をしておく方が損をしない選択です。しかし先ほどの話に立ち返れば、本当にそのことに興味を持っていた人以外にとってはむしろ、能力を伸ばす機会を失っているということにならないでしょうか。
今この仕事を通して示したいことは、ソフトウェアエンジニアとしての活躍に必ずしも業務経験やよくある経歴が必要ではないということです。もちろん経験がある方が活躍しやすいとは思いますが、絶対の条件ではなく、それに代わる資質と意欲とを示せるならば活躍度の期待値は変わらない。そう認めてもらうことができれば、今まで十分な資質と意欲を持ちながら機会を得られなかった人が機会を得ることができます。
そしてそれは、翻って「直接的に役に立つ経験をしておかなければならない」という制約を取り払い、人々を自分自身の興味へと誘います。自分が幸運な偶然によって通ってきた細い道を、そういう生き方が期待できるくらいには広げたい。それを望む人々がそういう人生を送れることは純粋に豊かであるとも思いますし、そういった人々が興味を突き詰めた経験の中で磨く無形の力は、結果的に社会全体の役に立つものでもあると信じています。
すみません、喋りすぎました。でもこれが偽らざる本心です。
junshin: 僕も riano_ さんほど言語化はできていないですが、同じような考えを持っています。自分のやりたいことにチャレンジする道が常に開かれている社会になってくれると嬉しいです。
estie に入社してください
fukushima: ありがとうございます!それでは最後の質問なのですが、どういう人に estie に入社してもらいたいですか?
僕がぱっと思いつくのは、常にうっすらと機嫌がいい人ですね。
junshin: 僕も話しかけやすい雰囲気を持っている人が好きです。あとは、プロダクトをよくしようとたくさん考えてくれる人であれば、なんとかなるんじゃないですかね。
fukushima:「プロダクトをよくしようとたくさん考えてくれる」ってその人の素質だと思います?それとも心がけですか?
junshin: 心がけですかね、誰でもなれるものだと思っています。
riano_: 自分としてはいろいろとあって、まずさっき話したような社会全体に対しての影響を考えると、自分と同じような経歴の人(ソフトウェアエンジニアの業務経験がない人)に入って貰ってサポートさせていただきたいと思っています。
趣味の範疇では AtCoder 黄色上位から赤くらいの現役の人が入ってきてくれると嬉しいです。
一緒に仕事をするという観点で言えば、フラットに物事を見られること、前提を疑うことができることが大切だと思っています。
当たり前のように扱われていることに対して本当にこれってそうなんだっけ?と疑問を持つことであったり、手段に固執して目的を見失わないことであったり、言葉にすると一見当たり前に見えるかもしれませんが、一筋縄ではいかないことだと思いますし、自分も何度も失敗しています。
ただ、少なくともそういうスタンスのある人であれば、失敗の中でちゃんと改善していけるだろうし、仕事を任せられると思います。
fukushima: ありがとうございます!
それを聞いて僕もちょっと思い出したんですけど、抽象度の高いタスクを、仮説と思い切りの力で具体に落とし込める人が好きですね。ふわっとした要求を形にしていける人が最高だと思っています。
fukushima: 話し足りないこともある気がしますが、時間がきたのでそろそろおしまいにしたいと思います!
それでは本日はお集まりいただきましてありがとうございました!