AtCoder

AtCoder 54歳で入緑しました

AtCoder で緑コーダーになりました。50代の学びは、若い人とは異なる面があると考えています。記事の性質上、個人的な主観の側面が強くなります。ご容赦ください。

どのようにレートが上がったのか

2020年2月9日に開催された ABC154 から参加しました。この時は51歳でした。2年10ヵ月のレート推移は以下です。

Rate推移
レート推移から以下と考えています。
  • 茶色までは、順調に上がっているように見える。
  • 2度中断(10ヵ月、11ヵ月)していても、あまりレートは下がっていない。
  • これらから、わたくしの素の実力は、茶色相当だと思われる。

今年の8月、54歳の誕生日から、ブログをはじめました。AtCoder の ABC は、毎週開催されていて、投稿ネタとして扱いやすく、9月17日に開催された ABC269 から再開しました。

11月26日の ABC279 でレートがちょうど800になったのですが、次に落ちたら緑とは言えないなと考えていました。幸い、ABC280 でも緑をキープできたため、この記事にしました。

なにをやっていたのか

仕事でやっていること

わたくしのプロフィールは、ここでまとめています。

  • 組込みシステムのソフトウェア開発に従事している。
  • 業務で使うプログラミング言語は、C がほとんどで、他の言語はほぼ使わない。
  • 業務でアルゴリズムを設計することも、あまりない。

ソフトウェア開発に従事しているため、業務でソースコードを見る機会は多いですが、業務自体は、競技プログラミングの実力向上面では、あまり関係がないと考えています。

AtCoder 向けにやったこと

この年齢になると、書籍やサイトに書いてあることをやりきることが難しくなります。過去2年については、コンテストに参加していましたが、網羅的な勉強をしていませんでした。

以下は、AtCoder Prombles から取得できるデータです。画像をクリックすると、拡大表示します。

AtCoder_Achievement_20221206
AtCoder_Difficulty_Pies_20221206

灰色は、AtCoder 初期に良く解いていました。現時点で、緑以上の問題は26題しか解いていません。

やはりブログ執筆の影響は大きい

上記が示しているように、ブログ執筆をするまで、競技プログラミングの実力向上につながる活動ができていませんでした。事実、レートがまったく上がっていません。ただし、参加している間は、コンテスト(プログラミング自体)は楽しんでいました。

ブログ執筆で、AtCoder を題材として扱ってから、自分が書いた記事を繰り返し読むようになりました。記事に間違いがあり、読んでいただいた方にご迷惑をおかけしては申し訳ないとの考えが根底にあります。

また、AtCoder 公式解説を読むようになりました。別解や関連知識に目を通すようにもなりました。ブログ執筆する前は、解きっぱなしでした。特に緑以上で解いた問題は、数は少ないですが、別解を試したり、何度も小変更したプログラムが動作するか確認しています。1問あたり多くの時間を使っています。

ブログの記事にした問題については、問題を解いた経緯を説明したり、別解を紹介するなど、多面的に理解が深まったような気がします。

緑コードになった要因は、ブログ執筆を通じて、OUTPUT中心の学びができたからだと推測しています。若いときは、ある程度の量をINPUTして学ぶことができますが、年をとると、INPUTだけでは知識が定着しなくなると考えています。

これからやりたいこと

プログラミング自体を楽しんでいます。そのため、特に目標とするレベルは、設定していません。競技プログラミングは、解けると楽しいため、しばらく続けたいと考えています。

ブログ執筆の継続、質向上

自分が書いたプログラムをブログで紹介することは楽しいと感じています。いまの私が置かれている状況では、実力向上にも役立っているようです。ブログを書く中で技術的に気づくことが多くありました。

これからも、日々書いているプログラムをブログで紹介していきます。また読んでいただいている方に、質が高い記事を届けたいと考えています。

網羅的な学び

レートが800になった ABC279 では、A問題からD問題まで4題完答しました。最後に解いたD問題は 41分29秒で Accepted しました。そのあと、残り58分は、何もできませんでした。というより、あまりにも解けそうにないので、ビールを飲んで YouTube を見ていました。

年齢の関係で、網羅的なINPUTが難しいと言い訳していますが、この状況はさすがに進歩がないです。

網羅的な学びの候補としては、以下でしょうか。

  • 過去問
    始めたころはA問題とB問題を解いていました。いまのレートでは、C問題からF問題を解くのが効果的だと思います。
  • 競プロ典型90問
    自動採点もある優れた学習環境だと思います。難易度を決めて解くのが良いという記事を多く見ました。
  • 競技プログラミングの鉄則
    書籍を購入して解いていました。結果的に A07/B07 まで解いて放置していました。年齢を理由にせず、継続せねばと思います。

最後に

入緑した方の記事をいくつか拝見しました。多くの記事が、重点的に学んだアルゴリズムを紹介するなど競技プログラミングの実力向上に役立つと感じました。

一方、わたくしの年齢では、網羅的になにかをやり切るよりは、総合的な活動(ブログ執筆が典型)を通じた学びの方が効果的だと考えています。というより集中的なINPUTをすること自体が難しくなってきました。

人の成長は、個人のバラつきや環境の影響が大きいと考えています。この記事は、あくまで一個人の見解として捉えていただけたらと思います。

POSTED COMMENT

  1. taiq より:

    同学年かひとつ上の方とお見受けします。
    私も先日54歳で入緑できました!(この名前で参加しています)
    様々な方の色変記事は問題演習を続ける上で励みになりました。
    50代でも毎日頭を使うとかなり活性化されますよね。

    • anadapunch より:

      コメントありがとうございます。
      わたくしは、AnadaPunch というハンドルネームで参加しています。

      AtCoderがあるおかげで、週に1度ですが、プログラミンを定期的に楽しむことができています。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA