徒然露草の競プロ日記

露草(@constant_drops)の競プロ日記です

競プロで思い悩むあなたへ〜露草のお気持ちポエム記事〜

こんにちは。

水色になった露草です。正直、始めた当初の目標だったので嬉しい!

「露草」という名前も、水色の一つで、twitterを開設した時の意気込みが反映さています(2020年内到達が目標だったので、4ヶ月ほど遅れたのは目を瞑りましょう)

 

さて、今回の記事はサイレントアップロードです。あまりにも侵襲性が高い内容であるので大々的に執筆したことは言わないでおこうと思います。

思い悩んだ未来の自分が、自分のプログを開いた時のためのメッセージ的なものを精神的に余裕がある時期に書き連ねたものです。なので、自己満足的・本来発信すべき内容なのかもわからない内容、口調になっているのはご容赦ください。ただ、誰か一人であってもその心にこのお気持ちが正確に届けば幸いです。もし本当に、競プロで思い悩んで、この記事にたどり着いた方がいたとしても、いくつか注意事項があります。

 

この記事を読んだあなたは競プロをやめてしまうかもしれません。お気持ちお気持ち言いながら、なんだかんだ競プロを楽しめているのならばブラウザバックしてください。他人と競い合ったりしているのが楽しければそれでいいと思います。伸び悩んで、ライバルたちに置いてかれて悩んだ時に再訪問してください。今の自分の競技プログラミングとの付き合い方に満足している方も、回れ右です。いつでもお気持ちポエム記事は読めます(と思います)。

 

本当に読んでくれるのですか?あなたの心にかなり侵襲しますよ?侵襲というのは、僕の考えにそのまま洗脳されるだけでなく、僕の考えを「否定」したくなり、「怒り」などを感じることも含みます。それに、あくまでも僕の個人的な考えであり、同様に考えることを他人にも矯正しませんし、他人の振る舞いに対して普段からこう考えているわけではありません。調子が悪くなった時にどう考えれば良いのかをまとめたものです。ただ、読んでしまった以上は良い悪いどちらの方向かはわかりませんが、認知が変動してしまうのではないでしょうか。これが最後の警告です。本当、別に、思い悩んでなければこんなに考える必要ないと思います!

 

この先言葉が強くなりますが、想定読者は未来の露草なので、そういうことです。傷ついたら本当ごめんなさい。お願いなので、嫌いにはならないでください。。。

 

 

 

あなたはなんで競プロをやっているのですか?

これは「月刊競技プログラミングは役に立たない」になってしまわないよう文脈に気をつける必要がある内容です。あなたはなぜ競プロをやっているのですか?もちろん、楽しいからだと思います。就職などに役立つスキルになるからかもしれません。知的好奇心を満たしてくれるからと思っている人もいるでしょう。どんな理由でもいいです。ただ、

 

あなたは、自己承認欲求を満たすために競プロをやっていませんか?今、ドキリとしたあなた、完全否定したあなた、別に今すぐ認める必要はありません。人は誰しも誰かに褒めてもらいたい、認められたい欲求があるからです。別に恥ずかしいことではありません。でも、自己承認欲求を満たすために競プロやっているのに伸び悩んでいるのならば、今すぐやめた方がいいです。あなたの欲求が満たされることはありません。色変したらおめでとうツイートがたくさんくるかもしれません。でも、別に誰もあなたの努力(笑)を褒めてはくれませんよ?すでに競プロで自己承認欲求を満たせているかたは想定読者ではありません。繰り返しますが、ここ以下を読んでも得られるものがゼロであることを保証します。

 

競プロを楽しいと感じる瞬間はいつでしょうか。正直、僕はレートが上がる時です。はい。まだまだ未熟ものですね。。。ただ、レートに固執していると伸び悩んだ時に壁に当たります。どんなtouristでも永遠にレートは上がりません。

 

 

競プロの先にあるのは競プロです。はてなき知への旅です。そこには他人もレートもライバルもいません。あるのは自分の知識量と地頭。それが時代時代で相対的にレートとして具現化しているだけ。なので、競プロの問題を解くこと自体を純粋に楽しめそうにないならやめた方が良いのではないでしょうか。人には人の得意分野があるので、自分の得意分野で自己承認欲求を満たした方がはるかにいいです。競プロやめてしまいましょう。

 

まず、この点に関してどうしたら良いのか。レートが上がる時だけでなく、ACした瞬間、新宿にある某社から届く『解けた!』を受け取る時にこそ喜びを感じられるように思考を矯正しましょう。これはだいぶ難しいと思うのですが、この思考を身につけられればだいぶ楽になるのではと推測しています。人のレートも気にしないようにしましょう。TwitterのプロフにAtCoderのリンクがあると、自分と比べてしまう行為をしていませんか?危険行為です。

 

それに、これらの方々にはもっと根本的な問題があります。

 

だって、あなた、練習量足りてないじゃん。典型全部把握しているんですか?何ACしたんですか?Code ForcesやAOJ、Topcoderもやったんですか?(僕は全然やれていません)

 

大体のひとは、「いや、俺はまだまだだから頑張らなきゃ」「典型全然分かってない、、まだまだ」というと思います。いつになったら「その時」は来るんですか?内心、自分よりもAC数が少ないのにレートが高いライバルをみて、嫉妬心や自己否定感に覆われているのを無理矢理誤魔化して、「いや、俺はまだまだだから頑張らなきゃ」「典型全然分かってない、、まだまだ」と思うようにしているのではないでしょうか。自分の本当の思いに素直にならないと心壊れますよ。

 

今、「いや、AC数はそれなりにあるよ?俺練習してるじゃん」という声がどこかから聞こえた気がします。ありがとうございます。AC数は評価軸として用いるべきではないと思います。1ACごとの難易度が含意されているTEE(Top Player-Equivalent Effort)を用いて評価してみてください。これはあなたがこれまでに解いた問題の全てをレート4000の人が解くのに必要な秒数です。思ったよりもあなたの競プロ時間、短くないですか?

 

そうです、練習量という軸で考える時、時間は皆に公平にはありません。あなたが解くのに1時間かかる問題、隣にいる暖色erは5分で解けると思います。12倍も時間が違います。解法が思い浮かばず悩む時間が長いので、初心者ほどこの差は大きいです。なので、弱い人は練習量が圧倒的(本当に圧倒的に)に足りないんですよ。この瞬間も赤コーダーは1問ACしています。もっと解きましょう。その気力もないのに「もっと強くなりたい」「なんでこんな低レート?」と悩むのは、贅沢ですね。あ、先程の赤コーダー、もう次の問題ACしましたよ(流石に早すぎか。)。

 

では、どうしたら健全に楽しく上を目指していけるのでしょうか?

 

競プロはネットゲームである

さてここで突然、月刊競技プログラミングは役に立たない風な文言とともに強い主張が出てきました。そうです。お気づきでしょうか、競プロは就職の役やスキルになる可能性が少し高い、ネットゲームです。

 

ネットゲームなのに過度に精神すり減らしていませんか?それは、競プロが強い人の経歴や学歴が強いことに関連していて、

競プロが上手いOO社/大学/高校のあの人←→競プロが下手なOO社/大学/高校の自分

というふうに結びつけが他のコンテンツよりも強く影響をうけるからだと考えています。某怪文書みたいな書き換えですが、先程の構図の【競プロ】を【太鼓の達人】におきかえましょう。

太鼓の達人が上手いOO社/大学/高校のあの人←→太鼓の達人が下手なOO社/大学/高校の自分

もしかしたら太鼓の達人を本気でやっていて、それでも伸びなくて、学歴・職歴コンプレックスのある人にはダブルパンチかもしれません。でも、太鼓の達人と学歴や職歴にはそこまで相関がないことにはすぐに気づくでしょう。別に職歴や学歴がなくても太鼓の達人が上手くなる可能性を捨てる人は少ないと思います。だって、G社で太鼓の達人めっちゃうまい人でも、それは太鼓の達人が上手いG社の人って存在にしかなり得ませんよね?

 

ですが、競プロは若干違います。数学やコンピュータサイエンスが絡む分、かなり学歴とレートに相関があり、コンプレックスが増幅される危険性があります。実際、東大生の橙・赤コーダーの量は他大学を圧倒していますし、水・青の中堅そうの厚み。灰色の薄さもすごいです。

これは、競技プログラミングが「役立つ」一つの弊害であると思っています。OO社/大学/高校でしかない自分は、競プロもできなくて当たり前だ、という自然な発想になっても仕方ありません。そしてそんな自分は「地頭」も悪いから競プロを練習しても上手くならないという結論に自分の中で至ります。FPS(形式的冪級数ではないですよ!一応!)なネットゲームであれば、こんな現実社会と交錯した問題は生じないのではないでしょうか。

 

だから、今、僕は、正義感を持って強く主張します。

 

競プロはネットゲームである!

 

はい、どうぞ。あなたも一緒にご唱和ください。

 

競プロはネットゲームである!

 

他人にこの月刊誌の存在を否定されてもいいです。ですが、もし他人の色々と比べて落ち込んでいるのならば、一度競プロがネットゲームの一つであり、特に役に立たないものであると思い込んでみてください。たしかに今はOO社/大学/高校のあの人よりも競プロが下手かもしれませんが、それによってこのネトゲの成長具合に上限があると思ってしまうのはもったいないのではないでしょうか。ですので、ある程度レートと学歴に正の相関が見られる中エビデンスを持って言い切るのは厳しいのですが、

 

競プロと学歴は関係ない!

 

とあえて言い切りたいと思います!これでいいですか?はい、いいですね?どんなデータを見せられてもリジェクトします。だめですよ?赤コーダーと東大生の図?シリマセンネ

 

さて、今競プロはネトゲであると思い込めたと思います。余計な邪念は捨てられたものと仮定します(え?)では、今こころに残ったものはなんでしょうか。それは

 

あの日感じた、純粋な競プロへの楽しさ。学ぶことへの好奇心

 

ではないでしょうか。その感情こそ今一番重視すべきものです。この気持ちの前に色やレート、他人との競争心など無意味です!!!!!

 

※もしここで心に何も心に残らずもぬけの殻になった方がいればごめんなさい!!!

 

ふぅ。新境地に気持ちを入れ替えられたあなたに対して、ここからはもう少し実践的なことについて話して行きます。

 

精進をやめろ!頑張るな!

冒頭の話に戻ります。他人と比べる競プロの原点、そしてそれによる辛さの原点には、自己承認欲求があるという話をしました。

これは持論なので、反論もたくさん受け付けるのですが、僕は「精進」という言葉こそこの自己承認欲求の表れではないかと思っています。精進という言葉は、

悪を断ち、善行を実践し、雑念を去って仏道修行にひたすら励む積極的な姿勢

  wikipedia「精進」

という意味から生じ、一つのことに精神を集中して一生懸命に努力すること、という意味で使われます。ただ、精進や頑張る、という言葉はなんだか見返りを期待しているふうな部分があると最近感じるようになりました。

 

精進ツリーは最悪です。自己承認欲求目的になっていませんか?自分はなっていました。あんなの見返した記憶がありません。(※これは他人の精進ツリーを批判しているわけではないです!見返す人もいるそうですので。でも、もし伸び悩んでいるあなたがせっせと精進ツリーを書いているのであれば、もっと有意義な時間の使い方があるのではとあえていいます。)

 

さて、部活の練習は精進でしょうか?確かに「精一杯精進いたしますのでご指導ご鞭撻のほどよろしくお願いいたします」などと言う場面もあるかもしれません。でも、その場合に使う「精進」と競プロの「精進」はなんだが違いませんか?言語化が下手でごめんなさい。

 

結論から先にいおう。頑張ろうと思っている限り、強くはなれない。

 

だって、現に今あなた、頑張っていますよね?冒頭で”誰も褒めてくれない”なんて言ったのに手のひらを返します。そうです。伸び悩んでいるあなたも、十分頑張っています。この記事に辿り着いた時点で”あなたの中では”頑張れる量は最大域に達しています。

 

なので、頑張っている限り、高みには到達できません。これは何事でも言える普遍的な事実です。思い出してください。競プロはネットゲームです。ネットゲーム、頑張るんですか?もしくはこれはどうでしょうか。なんでもいいです。あなたの人生で突出した才能見出せた分野、もしくはそんな才能をもった周りの人を思い浮かべて見てください。確かに、すごい時間を費やしていましたよね?でも、頑張っている感じでしたか?そうです。無意識に楽しくやっていたらいつの間にか強くなっていた、の方が流れとして自然ではないでしょうか。

 

よく言われるように、1万時間もやっていればかなりの物事はトップクラスになれると言われています。大体の人が、自分の才能のなさに絶望してやめていくだけです。それに、人には得意不得意あるので、最初の駆け出しには差があるかもしれません。それに駆け出しだけで黄色や橙に到達してしまう人は、本当は駆け出しではなく、実は競プロ参戦以前の経歴で類似分野(研究・壮絶な受験勉強など)で相当な時間を積んでいることがほとんどです。才能の差が生じるのはせいぜい最初の2、3年でしょう。僕もそんなに競プロを長くやれるかはわかりませんが、途中からはおそらく「長く続けるかどうか」で決まってくると思います。これは競プロに限った話ではありません。どんなに才能があっても、2、3年で黄色や橙でやめてしまっては意味がないのではないでしょうか。どんな仕事をやろうとも、どんなに転職をしていたとしても、経験をつみ40年50年かけて誰しもが自分にとっての赤コーダーになっていく必要があるのではと思っています。競プロの同じです。もっと長期的な目で見れば、今のレートなんてそこまで木にする必要はないのではないでしょうか(トップの、本当に「競プロ選手」と言われる人々は違いそうだな、と初心者ながらに感じております)。

 

つまり、話が脱線しましたが、大事なことは、「いかに、自分が頑張っていないように錯覚させながら楽しく競プロを楽しむ」かです。

 

結論がおそくなってしまいましたが、つまり競プロで思い悩んだ時・思い悩まないようにするには、極力辛い部分を排除し、競プロを楽しめるような環境に調整するのが大切です。競プロにもう楽しい要素を見出せないかたは、正直やめて良いのではないでしょうか。最後にPASTでもやって認定をとっておきましょう!(唐突な宣伝)

 

各論的なテクニックとして、思い悩む時期は

・競プロはネットゲームである!、と思い込ませる

・レートの上昇であまり喜ばないようにし、問題1問1問のACに喜びを感じられるようにする(実践的なテクニックとして、のいみ塾では毎回のレート上昇+50を0として考えているので心理的な抑制としてうまく機能します)

・くじかつなど娯楽的な要素を楽しむ

・「精進」を「練習」に言い換える

・そんなに他人と競わない。有益なツイートをする上位陣以外をみない

ストリークをつなげない(頑張っている感が出るので。この間ryusuke_h君の色変記事でも言及されていて少し考えましたが、意味なくストリークを繋げるのはまさに「頑張っている感」を醸し出せる最高なテクニックなので、最悪です。もっと自分に「俺は全然頑張ってない!」と思い込ませるようにして練習しましょう。)

・自己満的なお気持ちツイートをしない!(素振り)

 

などが戦略の候補としてあげられると思います。

レートが伸びている時は何していても楽しいので大丈夫ですが、そうではない時を乗り越えるためにも各人自分にあった楽しみ方を模索するのがいいでしょう。 

大事なことは長期的な視点と、競プロを楽しむこと、そして本当に楽しくなくなったらいっそやめることではないでしょうか。

 

ここで唐突ですが疲れました。以上にします。

未来の自分、参考にしてくれますか?参考にしたようです。ありがとうございます。

 

10年後もなんだかんだ競プロやっていたいですね!何色になれているかな??(ここまでの内容全爆破)(最悪お気持ち記事でした)ドーン

年の瀬に、初めまして。

2020年も終わりですね。

初めまして、露草@constant_drops)です。 今年の8月くらいから競プロを始めたわけですが、年の瀬ですし、軽く振り返りでもできたらと思って、ブログを開設してみました!更新頻度は未定です。(書く内容を思いつかないので、、) どういう内容を書けば良いのかわからないのですが、とりあえずは備忘録的な位置づけだと思っています。 今回は少し、今までしてこなかった自己紹介的なのもして行きます〜!

露草さんって何してる人ですか?

慶應義塾大学に通う学部4年生です。 4年生ですが、学生生活はあと2年間残されているので、それなりに来年以降も競プロを続けると思います。(なのでB4ですが、就活などの話題にはついていけません、、)

足りない才能と知識を精進量でカバーしたい。(切実)(n回目)

自分的にはコツコツ努力するのが好きで、座右の銘は「 雨垂れ石を穿つ」(だからconstant_drops笑)なのですが、口先ばかりで量が伴っていないのが反省です笑

あ、ちなみに使用言語はC++です!C++大好き! ただ、むかーーーしに機械学習を挫折したこともあり、pythonにもいつかリベンジしたいと思っています。

ちょっとは競プロ以外のことも!精進をしていない時は筋トレや陸上、もしくは学業をしています。。筋トレを大学に入ってからっずっと継続しているのですが、ベンチプレスのベストは97.5kgと中途半端なので100kg達成したいですね〜 最近少し太り気味なのでダイエットを検討中です(検討中なだけで実践はまだ)

なんで競プロを?

正直、最初はここまでやるつもりではなかったです。 競プロ自体を知ったのは、部活でお世話になった東大の先輩が橙コーダー(当時から定性的に凄いことは知ってたが、その凄さを定量的には知らなかった)だった部分が大きいです。

そして同時期に、友達と起業をしようと思っていてビジコンにも出たりしていました。その関連でアプリとか作る技術があればアイディアの幅が広がると感じたのがプログラミングの勉強を始めたきっかけです(周りでプロダクトありで起業できてる人はアプリ作っている人が多かった)。実際に作りたいアプリの構想などもあったので、iOSアプリの初心者むけの本を6月くらいに買って、勉強を始めました。そこからは記憶がなくて(?)、気づいたら8月で競プロをやっていました(???)。競プロって、面白すぎますよね(笑)

2020年のレート推移

f:id:constant_drops:20201230012506p:plain
レート推移

2020年のレート推移は0→879です。プログラミング自体を本格的に始めたのがこの夏なので、初回パフォは56とかでした笑 最近はちゃんと精進をするようになって伸びてきていたのですが、最後のABC186で、典型への理解不足により早解きに失敗してしまってレートを落としてしまいました。。。もっと頑張る!!
f:id:constant_drops:20201230012633p:plain
2020年のパフォーマンス
当初の目標は年内に水色だったのですが、精進量が圧倒的に足りませんでした。。さて、備忘録ですから、ここで現時点での精進量をみておきましょう。 f:id:constant_drops:20201230015755p:plain f:id:constant_drops:20201230015742p:plain 後述しますが、rated point sumに注目すると一日平均709点といったところですね。特段精進量も多くなく、レートの伸びももっとすごい人がいるので、練習方法などは割愛します。

来年の目標は?

ICPCアジア予選に進出する!

青〜黄コーダーになる!

ですが、レートを目標にするのは本質的ではないので、

Rated Point Sumで合計で50万点を達成!

にします!小目標としては毎月4万点といったところでしょうか。 直近ではEDPCやAOJコース、蟻本、けんちょん本などをやる予定です。 あとはCodeforceも始めたい!!

終わりに

2020年は変な年でしたね。。。でも、自分にとっては競プロに出会えた最高の競プロ元年でした!色々な方に出会い、助けてもらいました。この場をお借りして、関わって下さった全ての方々に感謝申し上げます! 来たる2021年が競プロer全員にとって、より良い年でありますように。
2020年年末 露草