ながめも

競技プログラミングについて

競プロを武器にして完全未経験から新卒でソフトウェアエンジニアになって半年経った

競プロを武器にして完全未経験から新卒でソフトウェアエンジニアになって半年経ちましたので、振り返りも兼ねて感想をブログに記します。ソフトウェアエンジニアというにはあまりにスキルが足りないので、以下では「ソフトウェアを書く人」と表現させてください。

主なテーマは「未経験でソフトウェアを書く人になることは大変か」、「競技プログラミングは役に立ったか」、「今後」です。自分語りみたいになるかもしれないので、そういうのが苦手ではない、むしろ好きだという方には読み進めていただけたらと思います。また、業務の具体的な内容を期待される方もいらっしゃるかもしれませんが、触れませんので、予めご了承くださいませ。

自己紹介

  • 修士(理学)
  • 生物を専攻
  • 研究で多少のプログラミング経験あり
  • 競プロのみを武器にして就活
  • AtCoder経由で現職場に内定

未経験でソフトウェアを書く人になることは大変か

大変でした。 buildってなんですか。APIってどうやって実装するんですか。Javaって書いたことないけどできますか。DBって触ったことないんですけど・・・。AWS知らないのに最初がそのタスク!?

職種や配属先が入社前から決まっていたこともあり、入社後すぐにいわゆるOJTで進んでいきました。先輩方に優しくなんでも教えていただいたり、あまり重くない(多少遅延しても大丈夫そうな)タスクを割り振っていただいたりしたおかげで、なんとか生き延びました。実はいつ首を切られるかとソワソワしていたんですが、いつの間にか試用期間の3ヶ月も終わり、半年も経ってしまいました。今「完全未経験でもなんとかなる!」みたい思ってる就活生の方々におかれましては、なるべく早めにインターンなどで経験を積んでおくことをオススメいたします。責任が軽いうちにたくさん失敗しておくといいかと思いますので。TLでは結構実務経験積んでてすごいと思ってみてます。

競技プログラミングは役に立ったか

競技プログラミングが役に立つどころか、競技プログラミングがなかったらこんなに何もできない状態から食らいつくことはできなかったと思います。Javaが書けないとは言っても、文法がわかれば、ロジック自体を正確に書くのに苦労はしませんでしたし、開発経験が少ないと言っても、ソースを読んで挙動を理解する力は競プロで培われていたので、部分部分では困りませんでした。設計の経験が少なかったり、可読性に対する意識が足りていなかったために、レビューでは毎回たくさんのコメントをいただいておりますが、非常に勉強になりますし、コメントの要求を一つ残らず満たすソースを考えるのは、コンテストみたいで楽しいです(マージがAC)。確かに、競技プログラミングの要求するアルゴリズムそれ自体を使うという場面はほとんどないですが、「仕様が与えられるので、バグに気をつけて実装してください」という200点問題が大量に降ってくる実務現場は、あくまで私にとってはですが、競技プログラミングの経験なしで生き抜いていける場所ではありませんでした。ありがとう、競技プログラミング

今後

ここまで半年、右も左も分からないことをいいことに、周りに甘え切って生きてきました。が、そろそろ半人前くらいの雰囲気で稼働したくなってきました。いろんな仕事を刈り取って、失敗しながら経験を積んでいけたらと思います。初年度、後半戦も頑張ります。

あと、3年以内にマラソンの知識を実務で活かすという野望があるんですが、このペースでは不可能そうです。どうしたらいいですか?

追記) 珍しく100いいねを超えたので、興味を持ってくださる方が多いということで、Twitter経由でご連絡していただけたら答えられる範囲で答えますので、特に情報が少ない就活生の方など、お気軽にご連絡ください。