LoginSignup
6
2

入緑しました。これまでやったことと、競プロをやっていてよかったこと

Posted at

入緑記事です。振り返りです。
image.png

やったこと

毎週参加

C問題まで解けて、ある程度D問題も解けたので、パフォーマンスがだいたい800を超えていました。
800ちょい超え程度だと、上昇量は少ないです。でもやっていれば上がります。
そうして、とにかくやっていたら緑になりました。
image.png
途中Unrated続きで心が折れてました。折れながらもルーティン的に続けられたので、習慣の勝利。(^^*)
結果論、Unratedだとしても、1時間40分集中しているときが一番成長を感じるので、それも含めて糧になっていると思います。

資格取得

基本情報と応用情報を取りました。
資格自体はAtCoderの特効薬にはなりませんが、取得の過程で身についた力がAtCoderに活きていたと感じました。

アルゴリズム問題で身についた力は3つ、問題に取り組む忍耐力と、仕組みを考える力と、具体的な実装に起こす力です

高校数学やり直し

数Ⅲまで一通りやりました。あと、線形代数もやりました。
具体的に技術が身についたわけではありませんが、問題の解像度を上げるのに貢献しています。

例えば以下のような問題に活きていたと思います。

  • 動的計画法を使うなど、漸化式的考えが必要
  • Σや微積など、直接的に数学が出てくる

こちらの件はQiitaの記事にしています。
1年目エンジニアが半年かけて高校数学をやり直した記録

競プロをやっていてよかったこと

コーディングテストに強くなる

AtCoder茶程度あれば、難しいものを除くと、だいたい解けます。

現在、2days~5daysのインターン4社に参加が決まっています。
全部コーディングテストが解けたおかげです。

具体的な内訳は、

  • Track Job経由→2社
  • Paiza(Aランク)経由→1社
  • 選考過程でコーディングテスト有り→1社

です。

毎週参加していれば、なまることもないので、急なコーディングテストでも安心です。

ちなみに、大変お世話になっているTrack Jobでは、25卒向けのインターン獲得できる(かも)なコーディングテストが開催されています。一緒にやりましょう
https://job.tracks.run/challenges/programmingtest-25-01

実務をコードで効率化できる

Excelやテキストファイルのチマチマ業務に時間を取られていたところ、VBAやPythonを書いて効率化できました。
実務でやっていること(≒競プロの問題で達成したいこと)を、どう実装するか考え、具体的な実装に起こす、という過程がまさに競プロで培ったものでした。

なんの参考にもならないと思いますが、以下実際にやったことになります。
「コードを書けたから業務が回った」なんてこともあり、私なりにバリューを発揮できたのは嬉しかったですね。

  • VBAで書いたもの

    • 60万行のデータから、6千個のグラフを作成する
    • Excel管理のデータベース定義情報から、自動でDDL作成
    • マクロの記録でツギハギされた複数VBAを、必要なロジックだけ抽出し1つにまとめる
  • Pythonで書いたもの

    • スキーマ名を変えてSQLファイルを複製する作業を、ファイルパス入力のみで実行
    • 数万行のSQL実行ログから、正規表現で必要な情報を抽出
    • テーブル作成DDLで、テーブル毎に個別の設定値を記入

あと、競プロではC++、業務ではVBAやPythonを書いていた私から言わせると、
競プロで身についた力は他の言語でも発揮できます。
頭の中で・紙の上で考える段階までは全言語共通で、具体的な実装も言語差あるものの共通点が多いですから、当然ですね。

ちなみに、VBAは置いといて、なんでC++じゃなくPythonなのかというと、
Pythonはライブラリが豊富で雑な書き方でもコードが動くので、ぱっと書いてぱっと使うハードルが低いです。
私の業務では競プロと違って、1,000,000,000の入力なんて無く、せいぜい1,000、多くて1,000,000程度です。O(N)で解決できる問題ばかりで、未コンパイルPythonでも十分高速ですから、C++よりもすぐコード書けるPythonを使っていました。

おわりに

お読みくださりありがとうございました。

Twitterで話しかけて頂けると喜びます。よろしくお願いします。
また、CodeQUEEN参加予定です。参加される方も、されない方も、ぜひ仲良くしてください。(女の子のエンジニア仲間と、25卒仲間、ほしい…)

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2