今年8月、「夏休みだ!新しいことを始めたい!!」と言い出し
「だったらプログラミングやってみようよ」という言葉にほいほい乗っかり
c++を一から独学でホームページやらプログラマーの方やらにお世話になりつつ勉強し…
早2ヶ月半経ちました。ほんと早いな。
で、この記念すべき時に自分で勝手に目標にしていた
「AtCoderのBeginner Contestについて、最新から始めてABC50までA,B,C問題をすべて解く」
が達成されたのでちょっと今までやったこと含めてまとめて書き留めておこうかなぁと思った次第です。
社会人やりつつどこまでやれるかなって今から始める人の参考にもなれば良い。
ほぼ時系列で書いていきます。
・C++入門で基礎知識を0から勉強
1、2、3、5、10、11,12、13、19、20をやった。
・AtCoderに登録
・下サイトに従って過去問精選10問などをごりごり
10問やった後は紹介されている類題やらおすすめ問題やらを解く。
・DPの勉強に手を出す(DP完全に理解してない)
DP以外にもmap, 累積和, 二分探索, BITなどなど…なんか問題を解いている中で出会って大事そうだなってものはインターネットで適宜調べたり人に聞いたりして勉強(全部scrapboxに蓄積)。
基本実装してなるほどーってやっていくスタイル。
・蟻本を手に入れ蟻本を読みつつ下ページの類題を解く。
一気にやるのではなく取り敢えず全部一度は実装してみよう、というノリ。
・AtCoder Beginner Contestに適宜参加。
・AtCoder Beginner Contestの過去問をA, B, C問題すべてabc50まで解く。
で、今に至ります。
今は取り敢えず「一日1AC!」を目標に毎日一問はabcの過去問などを解くようにしています。
で、新たに学んだことをscrapboxに蓄積して、やったことややりたいことはgooglespreadsheetsにまとめていく感じ。
そんな感じで進めてきて、今やっとabcをリアルタイムでやったときにC問題まで解けるかどうかってレベルです。
正直実装力が全然ないので、アルゴリズムとかは「こうやればいける…!?」と思いつくこともあるのですが、文法ミスったり逐一調べてerror吐きまくったりって感じで中々スムーズにはいきません。
ちゃんと勉強すべきだったかなぁと思いつつ、でもまぁ必要に駆られなきゃ身につくものでもないかな…なんて…
過去問だったらC問題まで割と余裕で解けるようになってきました。過去問が簡単なのかもしれないけども。
最初のごてごて具合に比べれば大変なめらかにやれるようになったなぁという感じです。
蟻本は「なるほど頭よいな…」と思うことばかりですが本当の初心者状態ではちょっと厳しいのではないか?と思います。
多少の知識をつけてから蟻本着手が良いかと思われます。
早くリアルタイムにD問題が解ける人間になりたいです…が、果てしなさそう…
本業と両立させつつがんばります