【AtCoder】茶コーダーになったので勉強を振り返る【非情報系から緑コーダーを目指して】

アルゴリズム
スポンサーリンク

AtCoderのランクが茶コーダーに達したので,その感想や勉強の振り返りを書きました.

1. 茶コーダー到達までの道のり

私は,大学4年生(理学部物理系)の後期からPythonを触り始めました.3年生の講義でもFortranを少し扱いましたが,自分で考えてプログラムを組むことは、Pythonによる課題研究のデータ解析において、始めて体験しました.

大学院に入ってからは,実験を主としたの研究を行っていたので,Pythonに触れる機会と言えば,Excelデータの解析に使う程度でした.しかし,偶々お勧めに出できたYouTubeテレ東BIZのチャンネルで,競技プログラミングAtCoderというコンテストが今ホットです!と紹介する動画を視聴したのがきっかけで,競プロの存在を知りました.

  • 自分の解けるレベルギリギリの問題を解くことで,実装力が身に付く.
  • 問題を解きながら,アルゴリズムなど、新たな学びを得ることができる.
  • 実力を数値化することができる.

といった点に魅力を感じ,修士1年の5月頃,AtCoderのコンテストに参加し始めました.

しかし,就職活動や研究のため勉強時間が取れず,修士1年9月から修士2年6月まで完全にサボってしまいました.よって,AtCoderに参加し始めてから,下で書いた「茶コーダー」になるまでは実質3から4か月が経過したことになります.

そして,これまでのコンテスト参加の結果,レートの変動は次のスクショ画面のようになりした.(2023年3月現在の画像です)

就職活動が終わってから,アルゴリズムや実装の勉強を再開し約4か月(サボっていた期間を入れると約1年)で茶コーダーに到達することができました!

AtCoderの存在を知った当初の目標は,まず,ABCコンテストでC問題まで30分程度で解き,D問題まで完答できるようになり,緑コーダーになることでした.ですので,「C問題を解けたら,調子がいい程度」の現在,まだまだ脱初心者もいいところです.

しかし,ここまでの道のりが楽だったわけではないので,茶コーダー到達の喜びと,これまでの勉強をここに記録しておこうと思いました.

2. これまでの勉強

  • B問題の過去問の練習をメインに行った.(AtCoder特有の入力値の受け取りに慣れる)
  • コンテスト本番でB問題をほぼ確実に解けるようになった.
  • C問題の過去問を隅々まで解いていった(未だ半分くらいですが).
  • C問題埋めと同時に,時々Paizaの無料チケットをゲットして,基礎的なアルゴリズム(動的計画法や二分探索など)を体系的にマスターした.
  • 本サイトでのアルゴリズムに関する記事の執筆を通じて,知識のアウトプットおよび,理解したことの整理を行った.

3. 茶コーダーの実力を客観視する

私は情報系の学生でもなく,自身の相対的な実力がどの程度なのか全く分からないので,AtCoder代表の高橋直大さんのブログを拝見しました.そこでは,茶コーダーは以下のように評価されていました.

茶色 (Dランク Rating 400~799 上位50%)
茶色になる条件は、Ratingが400以上になることです。茶色で保証できる実力ですが、正直、AtCoder内ではあまり高いレベルではありません。ただ、ここにたどり着く前に辞めてしまう人が多いので、十分にやる気がある人であるとは言えるでしょう。

なお、他社転職サイトと比較すると、このレーティングでも上位1~2%の最高ランクに到達出来る人が数割いるため、一般的には十分高いレベルであると言えます。

個人的な印象としては、

・情報系の学生が茶色であれば、ちゃんと勉強してるなって印象になる
・派遣で来たプログラマがAtCoder茶色だったら結構安心する
・茶色があればエンジニアとしてアルゴリズム面においての安心感があるかと言われたら、正直物足りない

みたいな印象があります。スキル的に確実に保証出来る点は、

・標準入出力、if、forなどの単純な操作はできる
・問題文を正しく理解し、計算量を考えない仕様通りの実装をすることが出来る

の2点です。ただし、完全に上の能力しか持っていないと茶色になることはできず、

・MARCH理系学部以上に入れる程度の数学力や論理的思考力があり、数学的な工夫が必要な問題を正解出来る
・典型アルゴリズムに関する知識を多く持ち、探索による全列挙や単純な動的計画法など、典型的な問題に正解することが出来る。
・コーディングや読解速度が早く、単純な問題を早く正確に実装することが出来る

などの特徴を持っていなければ、茶色になることはできません。このレート帯に達する人は本当にバラバラなので、保証出来る点は少ないですが、何かしらの強みを持っていなければ、茶色に到達することはできません。

もちろん、保証出来る点が少ないと言っても、コーディング試験でおなじみFizzBuzzなんかは全員が当然一瞬で組める水準です。

引用元:https://chokudai.hatenablog.com/entry/2019/02/11/155904

「情報系の学生が茶色であれば、ちゃんと勉強してるなって印象になる」

というのは,嬉しいコメントです.というのも,私はプログラミングを独学で進めているためです.就活時には,情報系の学生の需要の高さに絶望したこともあります(理学部で,単純な知的好奇心だけに従って勉強していたので,就職に強い学部にしといた方が良かったかな?と落ち込んでいたこともありました).

最後に

まだ目標の緑コーダーに到達していませんが,再度気を引き締めて学習を続けていきます.

次なる目標は

  • C問題の早解き
  • D問題を少しづつ解けるようになる

です!

コメント