#0. はじめに
こんにちは、sak と申します。これは「競技プログラミングを始めたばかりの人に伝えたいこと Advent Calendar 2021」への寄稿記事です。
ここまでのアドベントカレンダーでは、それぞれの方によって「競技プログラミング (以下「競プロ」) をはじめた方に伝えたいこと」という題材で記事が公開されました。開発環境や具体的なアルゴリズムの勉強法、モチベーションの保ち方など、それぞれの記事が様々な視点から書かれており非常に価値の高い内容となっております。
一方で、「Advent Calendarの枠が限られている」「言いたいことはあるが記事を書くほどの分量ではない」「執筆のハードルが高い」など、様々な理由で世の中に公開されていない「伝えたいこと」はまだまだたくさんあります。これらの声が届かないのはもったいないと感じこの記事を企画しました。
実際にアンケートを作成し回答を募ったところ、総勢122人(121人+自分)から声をいただくことができました。(ご協力ありがとうございました!)この記事では、122人が「競技プログラミングを始めたばかりの人に伝えたいこと」をダイジェストで紹介いたします。なお、スペースの関係で全てを載せきれないことをご了承ください。
なお、アンケートで募った質問は次の通りです。
-
- 属性
- 1-1. 競プロ歴
- 1-2. 競プロのスキル
- 1-3. 普段の職業/学部など
-
- 競技プログラミングを始めたばかりの人に伝えたいこと]
- 2-1. 競プロを始めた理由/きっかけ
- 2-2. 競プロをおすすめしたい人
- 2-3. 初めて良かったことやアドバイスなどの伝えたいこと
#1. 回答者の属性
回答者の属性は次の通りでした。
##1.1 競プロ歴
過半数の競プロ歴が「1~3年」とある通り、回答者の多くは競プロを継続的に嗜んでいる方でした。
##1.2 競プロのスキル(AtCoderのレート(アルゴ))
AtCoderではレート帯ごとに色が対応しており、灰色から赤色まで存在します。(正確には最上位層は色を自由に変えられますがここでは省略します)
回答者のレートは黄色までは各色満遍なく分布しており、母数の少ない橙以上の方も回答くださりました。なお、本来のレート分布ではボリュームゾーンは灰色であり、この図はあくまでこのアンケートに協力くださった方のレート分布であることに注意してください。
##1.3 普段の職業/学部など
全体の8割が次の3つのいずれかでした。
- IT職 (SE, クラウド系エンジニア, 研究開発)
- 大学や高専で情報系を専攻している方
- 中学生/高校生
また、全体の1割は非情報系の大学生でした。
一方で、残りの1割には様々なバックグラウンドの方(高校教師、医師、経理職など)がいらっしゃいました。
#2. 122人が「競技プログラミングを始めたばかりの人に伝えたいこと」
##2.1 競プロを始めた理由/きっかけ
###知り合いに勧められた
- Pythonをpaizaで勉強し始めて、その際にハマりました。Atcoderは高校のTAさんから勧められて始めました。(1~3年, 高校生)
- 友達に勧められたから (1~3年, 工学部大学生)
- エンジニアの方にプログラミング入門として薦められたから(1~3年, 経理職)
- 教授におすすめされた(1~3年, データサイエンス系の学部)
- 部活です。部で出会えたのはとてもよかったです。(1年~3年, 中学生)
- Twitterの友人などがやっているのを見て(1年~3年, 大学生(教養課程))
情報系の学生や、逆に全く関わりのない職に就いている方に多くみられた回答でした。前者は「みんなやっているから自分もやってみたい」、後者は「自分の知的好奇心を場所を見つけたい」というモチベーションが背景にあるのかなと思います。
###自己研鑽
- プログラミングに慣れるため(~6ヶ月, 技術職/薬学部)
- 来年から専門学校で勉強するから(~6ヶ月, フリーター)
- 授業で有利になればいいな、と思い始めました(1~3年, 情報系の高専2年生)
- Webページを作ろうとしたが必要な知識が多く感じ、そういうのがニガテなので挫折。一方でProgateとかで出された課題に適したコードを書くのは楽しかったので、そういった類のものが無いか探したところ、検索にヒット。(1~3年, 理学部)
「プログラミングをしたいけれど自分で作りたいものは特にない」「数学的な考察とプログラミング学習が両立できるのが楽しい」という意見が多くありました。
###就活
- つよいプログラマになりたかったから(真面目な回答は、転職が有利になるように、プログラマとしての実力と、その実力の客観性が欲しかったから)(6ヶ月~1年, SES)
- 就活に使えると思ったから(1~3年, 工学部大学生)
- 就活のため(1~3年, ソフトウェアエンジニア)
- リリアン氏のように、理学部情報科学科を出ていない人がエンジニアとして働くために必要な技能を身につける一助になると考えたため。(6ヶ月~1年, システムエンジニア)
特に非情報系出身の新卒や異業種の方など、業務での実績を作りづらい環境の方が回答する傾向が高かったです。
趣味
- 妻の妊娠をきっかけに、新たな趣味を探していた。(1~3年, 歯科医師)
- パズルのようで楽しそうだから(6ヶ月~1年, 学生)
- なんとなく、面白そうだったから(1~3年, 工学部(機械工学))
もともとパズル的な考察が好きな方にとって競技プログラミングはガッチリハマる趣味となりうるのかもしれません。
##2-2. 競プロをおすすめしたい人
###数学やパズルなど考えることが好きな人
- 考える事が好きな人。(5年〜, ITコンサルタント)
- 「パズル(広い意味で)」が好きな人(6ヶ月~1年, 数学科)
- 中学受験算数が好きな人(1年~3年, 情報系学生)
- パズルやプログラミングが好きな人(1年~3年, 電子情報系の学科B4)
- 問題を解くことを楽しいと思える人、プログラムを学びたての人(6ヶ月~1年, webシステム開発)
- 数学が好き or プログラミングにちょっと興味ある(3~5年, 大学生(工学部))
- パズルが得意な人や問題解決能力が高い人、またそれらに類似する能力を高めたい人
- ゲームが好きで数学に抵抗のない人、文句をいいながらも継続できちゃう人
6割程度の方がこの回答でした。競技プログラミングはデータ構造とアルゴリズムを主に取り扱う以上パズル的(一部数学的)な考察は避けて通れないこともあり、抵抗がない(むしろ好きだと感じる)人はとにかく向いているようです。パズルや論理的思考力に関する問題を考えることが好きな方は取り組んでみて損はないと思います。
###とにかくコードをかけるようになりたい人
- プログラミングをやってみたい,楽しいがこれを作りたいという熱があまりない人(1年~3年, ソフトウェア開発者)
- プログラミング学習の意欲はあるが、具体的な目的(制作物など)が決まっていない人(~6ヶ月, 学生)
- プログラミングをしてみたいが続けるモチベーションがない人(1年~3年, 医師)
- 「これを作りたい!」という明確な目標はないがコードを書くのが好きな人(1年~3年, 研究開発)
- プログラミングをやりたいがまだ詳細な目標までは決まってない人(3年~5年, AI開発)
こちらの回答では「特に作りたいものはないが」という枕詞が多くみられました。プログラミングは「フレームワークなどを使ってプロダクトを作ること」というイメージが先行しがちですが、仕組みの実現手段/計算手段としてのプログラミングに興味がある場合は競技プログラミングはうってつけだと思います。
###好奇心旺盛な人, ゲームを楽しみたい人
- やる気がある人。好奇心旺盛な人。(6ヶ月~1年, 大学院で研究)
- 業務でプログラミングしたりロジックを実装したりする機会が少ないことからフラストレーションを抱えている方(6ヶ月~1年, SE)
- 競争や順位が可視化されることが好きな人(1年~3年, SE)
- 趣味を作りたい人(6ヶ月~1年, 理学部数学科)
- プログラミングをゲームと思える人(1年~3年, 会社役員)
競プロを「頭脳を使った対戦ゲーム」として捉えられる方が向いている、という意見も多くありました。中にはこの質問に対して「音ゲーマー」と答えた方もいらっしゃいました。(実際に、音楽ゲームは競技プログラミングの競技性に似た部分があり、その両方にハマっている方も多く見受けられます)
###自分のペースで楽しめる
- 過去問がたくさんあるから新しい言語覚えようってときに丁度いい分量が好きなときに書ける(6ヶ月~1年, WEBエンジニア)
- 自分のペースでプログラミングの考え方や技術を身につけたい人(~6ヶ月, 地方私大の情報系学部)
AtCoder Problemsのような問題をまとめたサイトを利用すると自己研鑽の手段として使える、という意見もありました。
##2-3. 初めて良かったことやアドバイスなどの伝えたいこと
###競プロは楽しくて役に立つ
- 良かったこと: 競プロのお陰でアルゴリズムの引き出しが増え、プログラミングで作れる作品の幅がグッと広がる。それに加え、実装力も上がるので簡単なコードであれば爆速で開発ができるようになる。(6ヶ月〜1年, 高校生)
- 私はプログラミングの理解や練習の一環として競プロをしています。コーディング力やアルゴリズム力を身につけるには数こなすことが一番だと思いますし、競プロはまさにそれに最適なツールでした。レートは目に見える一つの実力値で、上がっていくと自信にもなりました。プログラミング初心者の人で何か始めたい、アウトプットしたいという方にオススメだと思います。(3年~5年, 大学生(情報理工学部))
- 私もまだこの世界に足を踏み入れたばかりですが、仕事で見た利息計算のロジックがいもす法で組まれているのに気がついた時はなかなかに感動しました。そんな感動をみなさんも味わえる日が祈っています。(6ヶ月~1年, システムエンジニア)
- 競技に熱中していたら、いつの間にか自分でモノを作れるようになったことで、単なるユーザーからクリエイトする側になれたこと。(1年~3年, ソフトウェアエンジニア)
- 直接的にも間接的にもコーディング能力が格段に上がるため、業務でコードを書く人は、業プロが大分楽になります(1年~3年, SE)
- 子育てで錆びついた頭のいい運動になってて、仕事早くなってると思います。脳トレにもなるし、新しいスキルも学べて楽しいです。(1年~3年, SE/情報系大学院出身)
競プロから入ってプログラミングに楽しさを見出し、世界が広がった/就職や転職につながったというコメントをくださった方が2割程度いました!2.2の「とにかくコードをかけるようになりたい人」で述べた通りプものを作ることだけがプログラミングではないので、興味次第では競プロがプログラミング入門やキャリアの最短経路となる場合もあるようです。
###競プロはゲーム、楽しむのが第一!
- 競プロの 4 割はアルゴリズムです.競プロの 3 割は数学です.競プロの 2 割は実装力です.そして残りの 1 割は戦略です.(5年〜, 東京大学 1 年(前期教養課程))
- あまりレートを伸ばそうと思わなければ、普通の人でも楽しめるし、実際楽しめている。レートを伸ばしたいのなら、ある程度の精進が必要(1年~3年, 高校生)
- 初めてすぐにできなくても、誰もが初めはそうなので気負わず強気にいきましょう(1年~3年, 工学部非情報系)
- 初めのうちは楽しむこと第一でやりましょう!(1年~3年, 高校生)
「競プロは楽しくて役に立つ」で述べたのとは逆に、「楽しいから競プロをする」という姿勢の方も多くいらっしゃります。「競プロは楽しくて、人生に直接役に立つわけではないが手札が増える」くらいのつもりで取り組むのも1つの方法です。
###世の中の広さがわかる
- 競プロを始めて、世界の広さを知りました。(6ヶ月~1年, webシステム開発)
- 難関校の現役生やつよつよエリートな社会人の方たちと肩を並べて競い合うことができること。自分は知るのが遅すぎてJOI等に参加できる年齢を過ぎてしまいましたが、幸運にも記事を見つけることができたのなら一度経験してみて欲しい。(3年~5年, 大学生(工学部))
- 競技としての面白さももちろんだが、競プロ以外にも突出したスキルを持った人たちと交流できたことがとてもプラスになった。(1年~3年, SE)
競プロは最難関レベルの学校に通っている方も沢山嗜んでいます。例えば、AtCoderに登録している大学生について、東大生の割合が他に比べて圧倒的に多くなっています。普段からプログラミングやパズルが好きで世界の広さを手軽に知りたい、という方にも競プロは向いていそうです。
###モチベーションの管理が大切
- モチベのないことはしなくてもいい。競プロやってて楽しい瞬間の為に競プロやるのがオススメ。(1年~3年, 工学部(情報系))
- 楽しいからだまされたと思ってまずやってみよう!あとレートを目標にすると下がったときに不必要に落ち込んでしまうので、意識しすぎないこと。解ける問題を増やすことを目標にしよう!(6ヶ月~1年, 某地方都市不動産会社勤務)
- レートを意識しすぎない方が競プロを楽しめるかなと思っています。(1年~3年, 工学部情報工学科の学生)
- 焦らず、マイペースに進めるのがコツだと思います。レートは本質ではなく、問題が以前の自分と比べて沢山解けるようになったかどうか(=つまり自分が以前よりどれだけ成長したか)を意識して取り組むようにし、周りの成長を気にしすぎることのないように取り組むとモチベーションが保ちやすく、またかえって実力も伸びやすいとも思いました。(3年~5年, 情報系学科の学部生)
- 課題や研究の息抜きにちょっと過去問を解いたりするととてもリフレッシュできます。レートに関しては、「上がったらしっかり喜ぶ、下がってもあまり気にしない」マインドがおすすめです。(6ヶ月~1年, 大学生/工学部情報学科)
競プロはコンテストに参加した結果でレートが変動する性質上、モチベの管理が難しくなることがあります。「世の中の広さがわかる」で述べたとおり、様々な分野のトップ層が競プロの世界には多数おり、果てしなく上を目指すと心が折れることも少なくないかもしれません。その場合は「自分がなぜ競プロをやっているのか、どうして興味を持ったのか」ということを立ち止まって考えてみるといいかもしれません。
###全ての回答
その他にも環境構築や言語の選び方など沢山の観点からのアドバイスをいただきました。どれも全て貴重なアドバイスだと感じたため、全ての回答を折り畳み形式で掲載します。(約120人分の回答が表示されるので注意してください!)
初めて良かったことやアドバイスなどの伝えたいこと
・ 良くも悪くも、賢い人が多いなと痛感しています。まわりに気を取られすぎず、自分のペースでやるのが大事なのかなと思います。 ・ 自力で解けた易し目の問題(灰色diffくらいの貪欲など)もしっかり証明をして、Editorialやいろんな人の解説ブログや実装を見るとその後の伸びがいいかもしれないです(自分はやらずに後悔してます) ・ 技術情報はテキストファイルへのメモではなく、タグを付けた文章、シンタックスハイライトされたコードで保存することで初めて再利用可能な知識になる、そうQiitaでは考えています。 ・ どうしてもレートが気になりますが、気にしすぎると下がったとき過剰に落ち込んじゃいます。あくまで趣味だと思って気楽にやるといいです。 ・ その日の調子で上下するレートよりも、単調増加する指標、例えば解いた問題数とかを意識すると精神の健康によいです ・ レートはあくまで一つの指標に過ぎないので、自分で満足できるようになることを目標にすると精神的に楽かもしれません。 ・ 成長時期は人によって違うので、焦らず、純粋に問題を解くことを楽しみたい! ・ 初めての色変である茶色になるためには二分探索や基本的なDP、BFSDFS等一昔前は緑レベルだった知識が必要となりますがアルゴ式をきちんとやる事で見につくと思いますので頑張ってください ・ ABSと典型90とアルゴ式をやろう ・ 上を見始めたらキリがないので、気軽にやって貰えるといいのかな、と思います。 ・ 「要領が良い」人が何をしているのかが分かった(気がする)。「解かないといけない」より「解けるようになりたい」問題で精進した方がいい。 ・ 存在さえ知っていれば、人生のどこかのタイミングでまた出会うことがあると思うので、急いで無理に続けなくて大丈夫です。 ・ 直接的にも間接的にもコーディング能力が格段に上がるため、業務でコードを書く人は、業プロが大分楽になります ・ 自分が分からないことが分かる瞬間、理解が繋がる瞬間の快楽はどんなものにも代えがたいと思います。周りと効率や熱量を比べて焦ったり悲観したりすることもありますし、やる気が別の方向を向いて休むこともありますが、結局は戻ってきちゃう場所なんだなあと思います(適当) ・ 競技に熱中していたら、いつの間にか自分でモノを作れるようになったことで、単なるユーザーからクリエイトする側になれたこと。 ・ 始めて良かったこととしては、以前よりコードを書くのが楽しくなった、というのがあります(計算量を競プロテクで削減してニヤニヤしたり)。実務の細かいところでも色々役に立つのも推しポイントです。まず典型90の星の数が少ないものから埋めるのが良いです。 ・ 解説とかを見て賢さに触れまくってほしい ・ ある時期までは、基本的なアルゴリズム等を学んだりCodingの力をつけるという観点でとても有用だと思います。それ以降は、一般的な意味では役立たないかもしれないですが、楽しければ趣味として続けるとよいと思います。 ・ コンテストに出るだけではレートは上がらないので予習復習をしましょう ・ 長らくC++の勉強を何かと理由をつけて後回しにしていましたが、AtCoderとそのコンテンツであるAPG4bを始めてからある程度書けるようにはなりました。 ・ 日常での思考力が上がる。大人になるとフル回転で考える機会は意外と少なく、コンテストに集中して取り組むことで錆び付いた頭が活性化されていくのを感じた。 ・ 高校生の頃に競技プログラミングに熱中していたおかげで本当に色々な経験ができましたし、競技プログラミングが自分の青春と言っても過言ではありません。是非楽しみながらのんびりと取り組んで欲しいです。 ・ エディタは妥協しない。ユーザースニペットを活用する。ユーザースクリプトはドンドン試す。C++は書けなくてもいいが、多少読めるようにする。atcoder easy testは入れた方がいい。 ・ とにかく極度精進しましょう ・ 初めてすぐにできなくても、誰もが初めはそうなので気負わず強気にいきましょう ・ 私程度が述べるのも恐縮ですが、競プロが強いことは、競プロが強い以上のことを意味しません。勝つためには相応に練習をする必要があります。競プロが好きで、本気で打ち込みたいと思うなら積極的に練習をしましょう。好きだが、そこまででもないなら、ほどほど程度に楽しむのも向き合い方の一つだと思います。 ・ 初めのうちは楽しむこと第一でやりましょう! ・ とにかくコンテストに出てみてください。問題を解いてるだけでも楽しいと思いますが、コンテストの緊張感の中でACした時の快感はヤバいです。 ・ 毎週または毎日のように問題を解く楽しさを知ること 他人と比べないこと ・ 自分のペースで精進していって欲しい ・ 競プロの 4 割はアルゴリズムです.競プロの 3 割は数学です.競プロの 2 割は実装力です.そして残りの 1 割は戦略です. ・ 他の人のレートを気にしすぎない ・ 素晴らしい攻略本のたくさんあるゲームで、しかも得たスキルを活かして茶コーダーでもPythonでRPAや在庫管理のアプリをつくるなんてこともできます。ぜひ続けてみてください! ・ (地頭パンチができない人などは余計に) 早い段階で一緒にやる友達(リアルでもネットでも)がいないと続かないと思います そういう大学などにいない場合SNS力が必要です ・ 競プロの存在は前から知っていたものの,数学的には美しくない問題を計算機の能力で解く競技,だと思い込んでいました.もし同じような勘違いをしている人が居たら,これは数学パズルだ,と教えてあげたいです. ・ 自分が凡人だとわかるので人間として角が取れて丸くなれます ・ 選んだ言語で基本構文書くのに抵抗がなくなります ・ 課題や研究の息抜きにちょっと過去問を解いたりするととてもリフレッシュできます。レートに関しては、「上がったらしっかり喜ぶ、下がってもあまり気にしない」マインドがおすすめです。 ・ レート1100でアドバイスするのは烏滸がましいかもしれないが、初めの内は自身のレートよりやや難しめの問題を解いてアルゴリズムの知識を得るのが上達の近道だと思う。 ・ いくらでも上のレベルの人がいるし、基本的にみんな親切なので色々聞くといいのでは ・ 子育てで錆びついた頭のいい運動になってて、仕事早くなってると思います。脳トレにもなるし、新しいスキルも学べて楽しいです。 ・ 才能ない人は頑張りすぎないようにすると長続きすると思います。 ・ 楽しいなら続けて、就職などのためなら別の事をしたほうが役立つ ・ 競技としての面白さももちろんだが、競プロ以外にも突出したスキルを持った人たちと交流できたことがとてもプラスになった。 ・ 優しい人が色々教えてくれるので、始めたての頃は分からないところはすぐ人に聞きましょう ・ 就活のためやスキルアップのためだと続かないと思っている。単純に競技として楽しめる人じゃないと続かない。 ・ 環境構築の時点で諦めてしまうことが多いと思います。プログラミングが必須でないのであれば、他の技能を伸ばす方に舵を切った方がいい場合もあるでしょう。 ・ 人それぞれの付き合い方があると思うので、自分にとって最もよい付き合い方を探してみてください! ・ 上には上がいる ・ 問題の難易度がかなり高いのがネックだが解けると楽しい ・ はじめの10回くらいはレーティングが上がらなくても我慢やで。過去問をやると、強くなれるで。あと、解けることも大事やけど、いかに速く解くかの戦術も大事やで! ・ 色んな人の提出コード見るの結構おすすめです、特に提出が速い人のコードは無駄がないので学べることが多いです。 ・ 焦らずによく考えて、何を書けばいいかが明確になってからキーボードを触ること・きりみんちゃんの動画を見ること ・ 自分が競プロをやってからタイピングが速くなったり、論理的思考能力を鍛えたりすることができました。競プロが直接に役に立つ可能性は低いですが、″今後の人生″において競プロで身につけたスキルは間違いなく役に立ちます。一緒に頑張りましょう! ・ よかったこと:休日を有意義に過ごせるようになった、資格取得への意欲につながった(基本情報、応用情報など) ・ プログラミングそのものに対する抵抗感が減った。はじめは簡単な問題でもいいからたくさん解いて、ACの楽しさを感じてほしいです! ・ プログラミングに入門するのが目的ではなく、パズルを楽しみたい・レートを上げたい人は難しく感じる問題にもどんどん手を出した方がいいと思います、灰茶埋めは時間がもったいない。 ・ 競技プログラミングは主に競技的なproblem-solvingのいち側面と、基礎的な思考力やプログラミング力を磨く手段としての側面に分かれると思います。後者の目的で競プロを始め、前者の目的で向上を目指す人を見て挫折・不安を感じる人も多く見受けられますが、そのために競プロにネガティブな印象を持つことは非常に残念だと思います。あくまで競プロは楽しんでするものだと思って、気軽に挑戦してほしいです。(全然簡潔じゃなくなったごめんなさい) ・ あまりレートを伸ばそうと思わなければ、普通の人でも楽しめるし、実際楽しめている。レートを伸ばしたいのなら、ある程度の精進が必要 ・ 良かったこと: 競プロのお陰でアルゴリズムの引き出しが増え、プログラミングで作れる作品の幅がグッと広がる。それに加え、実装力も上がるので簡単なコードであれば爆速で開発ができるようになる。 ・ 毎週末にある(だいたい土曜の夜)ので習慣にもなるしオススメです♪ 解けた時の達成感もいいですよ〜 ・ 自分がまだまだ始めたばかりなので省略 ・ モチベのないことはしなくてもいい。競プロやってて楽しい瞬間の為に競プロやるのがオススメ。 ・ 義務とかではないので自分のペースで楽しめる範囲でやるのがいいと思います ・ 現在はアルゴよりやりたいプログラミングが見つかったのでアルゴをやっていないが、アルゴの経験はとても活きている。ある程度プログラミングをやってから初めてやりたいことが分かることもあるので、まずはアルゴから始めても全く問題ない。 ・ 就活のための競技プログラミング、多分効率悪いです。レートが上がらず苦しい場合はPaizaが楽そう。勉強のためならアルゴ式が良さそう。 ・ コンテスト やり込み信じて 回すガチャ (コンテストの結果に一喜一憂しすぎないようにしましょう) ・ 競プロを楽しいと思ったなら、競プロの才能があります。自分より強い人がたくさんいるとかなかなか強くならないとか思う時もあるかもしれませんが、楽しい気持ちを大事にして続けていって欲しいです。 ・ ABCとARC/AGCはゲーム性が割と違うので両方出てどっちが楽しいか見定めてみよう ・ 入力生成器・愚直ソルバー・WAになるソルバーを入力すると、WAになるケースを探してくれるストレステストランナーを作っておく ・ コードを読んだりアルゴリズムを理解したりするのがしやすくなり、コードの書き方の習得だけでなく間接的にも色々研究に役立った。モチベーション次第で色々な参加の仕方があるので、ガチらないなら他人と比べず自分の中での成長を喜ぶと良いと思う。 ・ 脱ネトゲの処方箋にはなりませんでした ・ 環境構築をやりましょう。しんどいけど非常に便利になります。インテリセンスが超便利。フォーマッタも使うと良いです。コードが読みやすくなってバグが減ります。初心者は特に恩恵が大きいです。 ・ ただ続けるだけじゃ結果は出ない ・ レートは気にせず自分のペースで ・ コーディング速度とコードを読む速度が確実に上がりました ・ 言語に触れる時間が長くなり、コーディングスピードが上がった ・ 正直、業務で役に立つことはあまりありません。どちらかというと、競プロ仲間と反省会をしたり、ワイワイするのが楽しいです。順位を気にすると続かないので気楽にやるのが良いです ・ 初めて良かったこと: いろいろなアルゴリズムを知れること アドバイス: Twitterのつよい人や自分の順位を気にしないで、自分のペースでやること ・ 使えるものはなんでも使え ・ 焦らず、マイペースに進めるのがコツだと思います。レートは本質ではなく、問題が以前の自分と比べて沢山解けるようになったかどうか(=つまり自分が以前よりどれだけ成長したか)を意識して取り組むようにし、周りの成長を気にしすぎることのないように取り組むとモチベーションが保ちやすく、またかえって実力も伸びやすいとも思いました。 ・ とにかく続けること。 自分が(新しい知識やテクニックに対して)納得出来るかどうかを判断基準にして勉強すること。 ・ 多少なりともプログラミングやアルゴリズムが好きな人は是非やるべき ・ 最初から全部解けなくてもいい, A問題に取り組めば君も立派な競プロer! (近年のABC難易度拡張に苦しむ人々をよく見かけるため) ・ レートを意識しすぎない方が競プロを楽しめるかなと思っています。 ・ ツイッターをやる。とだけ書くとアレなので…一人で黙々とやっても挫折しがちなので、ツイッターで適度に情報発信したり他の人と交流しながらやるのがいいと思います。 ・ 就活に役立つよ!(ある程度は) ・ 楽しいからだまされたと思ってまずやってみよう!あとレートを目標にすると下がったときに不必要に落ち込んでしまうので、意識しすぎないこと。解ける問題を増やすことを目標にしよう! ・ 学びたいアルゴリズムがあれば高度であるかは気にせずに学んだ方がよいと思います ・ 競技プログラミングでPythonとRust覚えて転職にもつながったよ ・ C++ vs Python、どっちもやってみたんですが競技プログラミングについてはC++のほうが情報量が多くて学習が楽でした ・ 強い人の思考に触れるのが楽しい! 自分にとって難しい問題をACできたときの快感がすごい ・ ちょっと自分の学力などに自信がある人は最初の方にARC・AGCに出ると落ち込んでしまうかもしれないのでABC一本に絞った方がいいかもです ・ ABCのC程度の計算量削減ができると、たまに仕事の役に立つかも。とはいえ、役に立つかどうかは二の次で、楽しんだほうが良いです。 ・ 競プロを始めて良かったこと:趣味ができたこととプログラミングとパソコンが少しできるようになったことです。 ・ 無理して続けなくていいんだよ, っていうことは言いたいです(メンタル的な理由で ・ 数Ⅲ、AB 未履修でも意外といけるので数学苦手でも気軽に足を突っ込んでほしいと思います。なんなら AtCoder で数学を学べます ・ 目標によって競技との向き合い方が大きく異なると思うので、まず自分の目標をはっきりさせることが重要だと思う。 ・ 私もまだこの世界に足を踏み入れたばかりですが、仕事で見た利息計算のロジックがいもす法で組まれているのに気がついた時はなかなかに感動しました。そんな感動をみなさんも味わえる日が祈っています。 ・ 競プロが堅苦しいものでなく手軽に取り組めるものであることを伝えたい。 ・ 難関校の現役生やつよつよエリートな社会人の方たちと肩を並べて競い合うことができること。自分は知るのが遅すぎてJOI等に参加できる年齢を過ぎてしまいましたが、幸運にも記事を見つけることができたのなら一度経験してみて欲しい。 ・ レートは気にしない事(自分の中でレート以外の目標を立てる事)・どう書いていいかわからないときは他の人のコードを見る事・いつ始めてもいいしいつ辞めてもいいこと ・ Twitterで同じくらいのレベルの人をフォローして切磋琢磨する ・ 競プロをやっていますと言うと話しかけてくれる人がいる. ・ 私はプログラミングの理解や練習の一環として競プロをしています。 コーディング力やアルゴリズム力を身につけるには数こなすことが一番だと思いますし、競プロはまさにそれに最適なツールでした。レートは目に見える一つの実力値で、上がっていくと自信にもなりました。 プログラミング初心者の人で何か始めたい、アウトプットしたいという方にオススメだと思います。 ・ 競プロを始めて、世界の広さを知りました。 ・ 楽しい!!!! ・ 競プロを始めてから、自分のメンタルの微妙な変化とか、内省的な観察が増えて自分への理解が深まりました。良かったです。3. まとめ
ここまで読んでくださりありがとうございます、ぜひ競技プログラミングに入門する際の参考にしていただければ幸いです!
また、アンケートに協力くださった皆様は思いの丈をぶつけてくださり本当にありがとうございました!あなたの協力のおかげでこの記事を実現できました。
それではよき競プロライフを!