なにこれ
スペック
- 無職アラフォーエンジニア
- バカ
- 最終学歴は工業高校卒
- 数ⅢCってなに?食えるの?*1
- 蟻本は昔に挫折済み
- 最終学歴は工業高校卒
- 所有資格 (老人会)
- 数年以上前に CodeIQ とか AOJ とか LeetCode やってた
- DP とか完全に忘れる
- グラフアルゴリズム…?
- 当時は若く、累積和の存在を知りませんでした
短いまとめ
- 必ずやる
- 鉄則本をやり切ろう
- 毎週 ABC に参加して復習しよう
- 競プロ典型90問やろう
- 人による
- 「勉強の仕方」を学ぶ
- 「勉強」をする
本編
きっかけ : Rust とアルゴリズムの勉強を始める
- コーディング面接対策しておきたい
- 人は働いておちんぎん貰わないとご飯が食べられない、という真理
- と言いつつあまり真面目に就活してなかった
- コーディング試験やると頭が真っ白になって何も考えられなくなるタイプ
- 時間制限あってやり直し(再試験)ができない状態でコーディングするのがクッソ苦手
- 場数こなせば改善するかも、という淡い期待
- 人は働いておちんぎん貰わないとご飯が食べられない、という真理
- Rust でも始めるか
- なんで???
- Rust の勉強ついでに、Rust でアルゴリズムの勉強するか
- LeetCode とかやる
- 数年ぶり
- 2023/03/02 購入した鉄則本が届く
- 2023/03/04 AtCoder の ABC292 に参加するか…(沼)
- なお2完だった模様(バカ)
勉強
- 鉄則本を読んでやり切る
- 「やり切る」とは本を見なくてもすべての演習問題が解けるレベルになること
- ★7みたいなのを除く
- ただしヒューリスティックの章と力試し問題は飛ばした
- バカなので2周する覚悟で臨む
- のでとりあえずガンガン読み進める
- 分からなかったところや正誤情報の補足を付箋に書いて貼る
- 本に直接書き込みしないマン
- 忘れた頃に読み終わった章へ戻って応用問題解いたり解き直したり
- 一度勉強したことを「長期記憶」に持っていく
- 何も見ずにやって、分からなければ本とか解説見る
- 各問題が AtCoder で常設コンテストになってるので活用する
- 苦手な所は AOJ の問題も活用する
- 巡回セールスマン問題 ( bit DP ) とかやった
- paizaラーニングの一部の問題セットはチケット不要だったのでやった
- 「やり切る」とは本を見なくてもすべての演習問題が解けるレベルになること
- 「勉強の仕方」を学んで「勉強」する
- 大学受験系の動画を YouTube で見るのがマイブーム(だった)
- そもそも「勉強の仕方」が分かってない(はい)
- 今まで「勉強」らしい「勉強」をしてこなかった(それはそう)
- 参考動画
- ドラゴン細井の受験期を振り返る【渋幕・ena・駿台】 - YouTube
- そもそも勉強の仕方が分からないことに自分で気づく時点で地頭がよい(バカ並みの感想)
- 最高の勉強法・効率的な覚え方【科学的根拠のある効果的な学習方法について医者が解説】 - YouTube
- プログラミングの場合、強制的にアウトプットが発生するのがよい
- 【受験生必見】東大生のノートは、なぜ点が取れるのか? - YouTube
- アウトプットの重要性は1つ前ので分かるとして、複数媒体の情報を自分なりに1つに集約することとか参考になった
- Zennに「バカ(俺)向けABC C 問題完全攻略」という記事の下書き作って、それをノート代わりに更新していた(未公開)
- 一応 D 問題の下書きも作っていた(未公開)
- 現代文が伸びない人の特徴【宗先生の勉強法】 - YouTube
- これ見たのがきっかけで、自分が間違ったことをルーズリーフに書くようになった
- 始めたのは割と勉強始めて時間経ってから
- ただしあまりキレイには書かない(書いてない)
- 書いてても同じミスをすることはある
- ただし同じミスをしたことはすぐ思い出せるし、思い出す度に記憶は強化される
- これ見たのがきっかけで、自分が間違ったことをルーズリーフに書くようになった
- 勉強した内容を「完璧」にする
- 今、あえて語る青チャートの真の使い方! - YouTube
- 参考書などの内容が「完璧に身についた」の定義
なんでその問題がそのように解けるのかっていう論理/ロジックまで理解した上で問題を見た瞬間どうやって解くかを思いつけるようになる
- 参考書を完璧にしても大学受験で不合格になる理由 - YouTube
- 基本的に分野別に勉強しますが、本番ではどの分野の問題か自分で判断する必要がある
- 今、あえて語る青チャートの真の使い方! - YouTube
- ドラゴン細井の受験期を振り返る【渋幕・ena・駿台】 - YouTube
- 写経する時は脳死しない
- ABC だけ必ずリアルタイム参加する
- 自分的にはこれだけで充分だった
- ARC とか他のコンテストにも出たい人は出ればいいと思う
- 自分がやりたいと思ったことを制限する理由はない
- 基本的に ARC は ABC の E 問題が安定して解けるレベルまでやらなくてよさげ (公式解説放送の snuke さん談)
- ARC とか他のコンテストにも出たい人は出ればいいと思う
- 無職のバカに失うものなどないので、常時 Rated 参加
- 余裕があるときだけ過去問にバーチャル参加
- 基本的に鉄則本やり切るまでトピック網羅できないので、週一の本番受け続ける方が重要
鉄則本始めたての頃は後ろの章にあるグラフ問題が出ないように祈祷力を高めておく
- 自分的にはこれだけで充分だった
- ABC で解けなかった問題と1~2つ先の問題ぐらいまで復習する
- 色んな人に死ぬほど言われてる
- 本番でウンコード提出した自覚がある問題は解き直す
- 当日中か翌日
- G~Ex まで解説動画見ることあるけど、基本的にエンタメとかアニメ見てる感覚(休憩)
- 他の人の提出解答見たりする
- スマートな解法は単純に参考になる
- コード長と実行時間を参考に探す
- Rust 初心者なので知らなかった関数とか学べる
matches!
マクロとかIterator.chain()
とか
- スマートな解法は単純に参考になる
- 休憩がてらに蟻本(第2版)で気になったトピックを読む
「読める!読めるぞ!」- トピックの網羅度がすごいので、補完によい
- 無理に買う必要はない
- 鉄則本やり切ったら競プロ典型90問
- https://atcoder.jp/contests/typical90
- 各テストケースは dropbox 上で公開されている
- 鉄則本の力試し問題飛ばして、これを始めた
- 茶色 (パフォーマンス : 緑色) の時期
- 解いた問題
- ★5以下全部やる
- 基本的に5完を狙いに行く段階のため
- ★6は鉄則本の範囲でできそうならやる
- 「あっ、これ鉄則本でやったところだ!(解けるとは言っていない)」
- ★7はやらない
「いつやるか?今じゃないでしょ!」- 解いてない問題は自分の提出(得点)状況から分かるので
- 今消化不良起こすぐらいなら後でやった方がよいという判断
- 時間は有限
- 部分点がある問題は学びがあるのでやってもよい(少しやった)
- ★5以下全部やる
- 鉄則本の範囲外の典型が学べる
- https://atcoder.jp/contests/typical90
ABC 日記
鉄則本購入後
- 2023/03 ~
- 競プロ、アルゴリズムをゼロベースから勉強したい場合の must buy アイテム
- 良くも悪くも鉄則本の影響で C~D 問題の難易度が上がってる気がする…
- 就活そっちのけで読んだり演習問題解いたりしていた(働け)
- Rust の構文の勉強もやっていた
ABC292 初参加
- 鉄則本届いて2日後にノリと勢いで参加
- C 問題が解けずに 2完
- C 問題で早々に心を折られた後、Ex 問題やって WA & TLE 出して終了
- なぜ解けると思ったのか、コレガワカラナイ
ABC293 - 297 3完安定期
- 鉄則本最強
- とはいえ意外と C 問題に壁があることを感じた
- Zenn に C 問題攻略記事の下書き作ってまとめ始める
- とはいえ意外と C 問題に壁があることを感じた
- 3回目の 294 で初4完
- 297で2回目の4完
ABC298 - 299 unrated 回
- 悲しいなぁ
- 勉強の甲斐あって引き続き3完は安定
- 相変わらず D 問題が解けない(バカ)
- Zenn に D 問題攻略記事の下書き作ってまとめ始めた気がする
- C 問題が意外と早々に安定してしまったため
- Zenn に D 問題攻略記事の下書き作ってまとめ始めた気がする
ABC300 大躍進回
- 1855位 1096 パフォーマンスで rating +144
- 終了直前で D - AABCC の AC を通した
- 41分で C 問題が終わった後、残り時間を D に全力投球することを決め、考察してなんとか解法ひねり出せた
- 典型がまだ身についてないので簡単な考察系の問題の方がワンチャンある(ない)
- この回から
proconio
を使い始める- 元々コーディング試験対策で始めていたが、標準入力取得コードは完全に覚えたため
- 余談
- この前日、数年前に解けなかった paiza の「A012:最適な練習」が解けた
ABC301 - 302 ?????www??www?w???wwww
- あと1回3完で入茶できるでしょ、って状態から2回連続で3完すらできず(なにしてんの???)
- 302 は B 問題の WA が取れずに1完終了とかいう体たらく
- C 問題も初見だとだいぶ厳しい問題だった
- 302 は B 問題の WA が取れずに1完終了とかいう体たらく
- この反省から自分が間違えたことをルーズリーフに書き出すの始めた
- 結果的に C 問題攻略メモの内容が強化された気がしないでもない
ABC303 入茶
- 気合の 0 WA 4完で入茶
- とりあえず3完して入茶、みたいな考えを完全に捨てていた気がする
鉄則本読了後
- 2023/06 ~
- ABC304~312の頃
- 3~4完で rating が微増していく日々
- 311 - 312で連続4完できて、「4完安定するようになってきたなぁ」とか思ってた
- 305 / 309 では5完しかける
- 終了15分後とかに WA の原因分かって AC 通ったりして悔しい思いをする(バカ)
- 一応、グラフ問題で全く何もできない、と言う状態ではなくなった
- ABC 解説放送などで復習していたこともあり
- 競プロ典型90問を少しずつ解き始める
- 基礎を固めつつ、5完 ( E 問題攻略) を視野に入れていった
- 記事を書いたりもした
- 自分がこれまで何をしてきたのか記録しておくため、「この記事」を書き始める
- やってきたこととか書き出してみると反省や再発見がある
求職活動期
- 2023/08 ~
- いい加減お仕事探さないといかんでしょって感じだったので、転職ドラフトに登録
- 指名対応とか面接対策で競プロの勉強の時間が全く取れなくなってきた時期
- 単純なコーディング能力よりも設計能力とかの方が求められがち
- 競プロ典型90問の進捗が完全に止まる
- ABC 参加後の復習は引き続きやっていた
ABC313 - 315 暗黒期
- 4完すらできなかったり、4完でも時間かかり過ぎで rating が横ばいになる
- 4完安定(笑)とはなんだったのか
- 「最強プログラマー学生選手権-予選-」ではボコボコにされ2完
- 最後までバグが取れなかった
- 就活のコーディング課題でクソコード書いたり時間足りなくて落とされたりもしたけど、私は元気です
- そもそもこの対策のために始めたのでは…
- 316 は けつばん
ABC317 初5完
- E 問題が425点のラッキー回で初5完達成
- ギリギリ初水色パフォ (1201)
- ありがとうゲームフリーク(?)
- E 問題を徹底的に安全なコーディングに倒して、40分ぐらいかけて解いた
- なお変数を間違えて WA 1回出した模様(バカ)
- この WA を冷静に修正できた点に成長を感じなくもない
- なお変数を間違えて WA 1回出した模様(バカ)
ABC318 - 319 グダグダ期
- 4完すらできない時期が続いて凹む…
- 就活で2社ほど体験入社の話が進んだり、色々ゴタゴタして相変わらず全く勉強ができてなかった
- 特に319は方針は合ってたのにバグり散らかして2完で終わったり散々
ABC320 入緑
- 2社の体験入社が始まっていて相変わらず勉強してなかった
- 超久しぶりに競プロ典型90問 ( 070 - Plant Planning(★4) ) やったけど、解き方分からず死亡
- 前日寝不足で体調が最悪だったので「今回もアカンかなぁ…」と思いつつ、開始30分前に仮眠取って頭を整えた
- 結果、なんと2回目の5完で入緑達成
- ABC 過去最高順位 & パフォーマンス
- E 問題が475点の割に解きやすかった
- 過去の復習が活きたのを実感した回
- WA 0だったので、前回2回分の反省も活かせた気がする
まとめ
ポイントは tl;dr に書いた通り。
- 基本的に「鉄則本」&「ABCリアルタイム参加 & 復習」&「競プロ典型90問」やるだけで rating は上がっていく
- 上がり方は人それぞれなので、比較対象を常に「過去の自分」にする
- 意外とボリュームはある
- 自分で考えたりまとめたりする時間も含まれるため
- 今まで勉強習慣がなかった人は、自分にあった勉強の仕方を学んで実践するのが良さそう
- 自分が継続して努力できる方法を探す
- ハードルを上げ過ぎない (基本的に ABC だけやり続けた文脈)
- 自分が継続して努力できる方法を探す
雑感
- 早く ABC 5完安定させて ABC & ARC で水色になりたい…。
- rating の上がり方的に水色目指すなら6完目指すことになるので、だいぶ時間がかかりそう
- アルゴリズムの勉強は楽しいのでまだ続けられそうな気はしている
- ただし勉強の時間が取れず競プロ典型90問の記憶が薄れてきてる
- 早く職を決めて勉強(生活)のリズムを安定させたい…(社会は厳しい)
Appendix
比較対象を常に「過去の自分」にすることについて
あるいは他人と比較しないことについて。
「競技で他人と競い合う」ことと「自身の成長スピードを他人と比較しない」ことはそれぞれ独立で直交っぽい。勝負の世界に生きているトッププレイヤー方々は成長の基準点を自分自身に置いてることが意外と多い。*2
gendai.media youtu.be www.youtube.com youtu.be youtu.be www.youtube.com