ひよこからやり直すのは心の健康にいい

まあ聞いてくれ。

自分はAtCoderという競技プログラミングサイトに登録して、たまにコンテストに参加しては玉砕し、ズブズブ灰コーダーの道にハマっている。*1

たまにABCのC問題まで解けるが、酷いとB問題でハマって抜けられなくて諦めるという事がしばしばあり、成績が安定しない。*2

 もともと組み込みの仕事でC言語を使ってコーディングしていたのでCでやっていたが、どういう形で処理すればいいのかは分かるのに実装で躓いた。scanfやprintfなんぞ業務でほぼ使ったこと無かったのでポインタや引数の仕様で色々な混乱が発生した。あとC言語にはstringが無いので文字列処理をint[ ]でやってたら手間のかかることかかること。

エラーの処理もうまく行かないしこのままWAになって踊っているとモチベがだだ下がって終わってしまうと考え、プログラマ超初心者用のAtCoder Programming Guide for BeginnersでC++の勉強をしてこれまた初心者用のAtCoder Beginners Selectionに挑戦することにした。

 

ド初心者と考えて一からやり直すと、意外とこれが良い。

まずC言語C++になったことで文字列処理が楽になるだけでなく、入力や出力で変数の型を考える必要がなくなった。*3

そもそもC++にはCのバージョンアップしたライブラリが標準搭載されているのは当然だが、sort書くだけでも記述量が全く異なり、Cでは関数を用意せねばならなかったのがC++では一行で済む。天国か?

エラーの弾き方も学習内容に入っているため、進めていくとバグ取りの速度が上がっているのを体感できる。ACは健康にいい。

それでいて自分はド初心者ではないので、「難しい」と書いてある問題でも何が必要でどう解けばいいのかおおよそ理解できるので、疑似俺TSUEEEEが出来る。実際に強いかは関係ないのだ。上を見るとカラフルで眩しくて勉強する前に心が折れるから、下を向いて小さな承認欲求から積み上げていく小市民になるのだ。

 

兎に角、壁にぶつかったら最初からやり直してみるという手はアリなのだと体感した。AtCoder Beginner Contest 166 3完したいなぁ。*4

 

 

*1:灰コーダー…AtCoderはプログラムの腕によってランク分けされており、赤が一番強くて橙、黄、青、水、緑、茶と弱くなって灰色は下の下で一回でも参加すれば色がつくレベル

*2:ABC…AtCoderBeginner Contest とりあえず最初はこれやっとけ的なコンテスト。初心者じゃない人も参加可能だがランクに影響しない

*3:Cだと入力はポインタになる。出力は変数でよい

*4:ABCは難易度によってA~F問題まであり、A~C問題まで正解する事を3完という。A~Dだと4完