はじめに
Qiitaを見ていると競プロの色の話がよく出てくる。それを見て自分もやる気が出てくる日が今までに何回かあったけど(今日)、持続した最高日数は2日。
習慣化と、成長記録+備忘録も兼ねてQiitaにこの長い長〜い道のりを残したいと思います。
まず筆者はこういうステータスの持ち主です。
筆者(@KyongminS)のスペック
- 学部までは電気電子工学系、大学院は情報系の研究室にいた
- 来年(2025年)で社会人4年目
- プログラミングは完全独学から始めて今年(2024年時点)で6年目
- 仕事以外はプログラミングしない(ただ土日に友達の仕事を手伝うとかで大体触っている)。独学は必要になったらやる程度
- 3日坊主。好きな言葉は「YAGNI」
- 好きな言語はJavaScript。フロントエンド、バックエンド、ブラウザ、アプリまでなんでも作れるから
今までの挫折の原因の一つに「ゴールを決めていなかったこと」があると思うので、ゴールを設定します。
あと、やらないことも決めておきます。変にやる気が出そうなことは特に除外します。
ゴール
2025/3/31までにAtCoderで入緑する
途中で「入茶」の壁があるので、中期ゴールも設定します。
2025/1/15 までにAtCoderで入茶する
やらないこと
平日休日関係なく守ります(※ 土日のAtCoderのコンテスト参加時は除く)。
- 1日2問以上練習問題を解くこと
- 1時間以上競プロに時間を割くこと
- 練習問題で解答見ない縛りをすること
- 「入水」を目指すこと
- JavaScript以外の言語に浮気すること
- 他人と比較すること
使うツール
こちらも必要最低限に抑えます。ポモドーロとか使い始めると挫折の可能性が高まるので使いません。
- VSCode
- 必携。この際Vim縛りにしてついでにVimマスターしようかなと思ったけど、続かない要因になりそうなのでVSCodeを使う
- リマインダー
- Macに初期搭載されているアプリ。こちらでやっていなかったらリマインドが来るようにする。ツール探しもできるだけサボる
- Qiita
- 日報代わり。各記事もできるだけ簡略に書く
参考記事
このQiitaの記事だけにします。一つの参考書を使い古した高校生の時のように、この記事だけを頼りに競プロを進めていきます。
早速先ほどの参考記事を見ると、
- AtCoder:AtCoder Beginners Selection
- AOJ:Introduction To Programming I
をやれと仰られているのでこれからやっていきます。
アルゴリズムの学習
先ほどの参考記事を見て学習します。1日30分くらい。
AOJ
Introduction To Programming I
Hello World
クソ余裕。罠かと思ったくらい。
console.log("Hello World");
ACいただきました。
AtCoder
AtCoder Beginners Selection
PracticeA - Welcome to AtCoder
挨拶がわりにしてはちょっとめんどくさそうと思ってしまった。
const [_a, _bc, s] = require("fs").readFileSync("/dev/stdin", "utf8").split("\n");
const a = parseInt(_a, 10);
const [b, c] = _bc.split(" ").map(v=>parseInt(v, 10));
console.log(a+b+c, s);
ACいただきました。
最初間違えてDenoで走らせて「RE」となったので「あれ?」と思ったけど、ランタイムが変わるので標準入力周りの記法が違うみたい。そらそうか。
でもNode.jsの方が4倍早い。
const input = new TextDecoder().decode(await Deno.readAll(Deno.stdin));
今日はこの辺で。
ダメ出し、アドバイスなど大歓迎です。
余談
Macを使う時全画面表示で時間がわからなくなる時があるので、AtCoderの右下の時計機能は欲しいと思った。
余談2
この記事を書くこと自体が挫折の要因になるくね?と思った方。
はい。その通りでございます。挫折しそうです。