見出し画像

ついに入茶できた件について

どうもみなさん、aliasです。コンテスト21回目のABC310にてみごと茶色コーダーに昇格することが出来たので、それに関する記事を書いていこうと思います。

筆者のプロフィールとモチベについて

筆者のプロフィール

電気通信大学の大学生です。4年なのに研究室未配属とか口が避けても言えない。そんな笑えない冗談はさておき、プロフィールについて整理します。

  • 電気通信大学4年

  • 経営社会情報学専攻

  • ドイツに留学中

  • C++, Pythonが使える(若干のJavascriptとLispも)

上記のようなあまり誇れるようなところがないプロフィールとなっています...

AtCoderへのモチベーションについて

ではなぜAtcoderを始めようと思ったのかというと、自分のコーディング力の無さ、アルゴリズムへの理解の浅さに絶望したからです。電気通信大学という名前を聞くと情報系のイメージが沸くと思いますが、I類の経営社会情報学専攻は半分文系的な内容や生産系の内容を扱う専攻です。なので、アルゴリズムの講義は2年後期の必修以外は取る必要がなく、プログラミングを使う講義もさほど多くありません。したがって、大学の講義を受けるだけではプログラミングは出来ません(断言)。無論大学はプログラミングスクールではないのでそこは自分でやれよという話ですね。

次に、私が絶望したのは技術系のインターンを申し込んだときのコーディングテストで全くコードを書くことが出来なかったことに起因します。これが3年の夏です。留学準備や留学中ということもありそこからAtcoderの勉強は断念してましたが、この絶望は僕の大学で培った自信を大きく損なうものでした。だって大学のプログラミング講義は優取れてたし...ということで留学中も下火ながらも勉強したい欲がありました。

では、なぜ留学中に再開したの??って話ですが、彼女と疎遠になったからです。詳しいことは割愛しますが、留学先で出来た彼女が最近全く会ってくれなくて暇になったという話です。

茶色になるまでにやったこと

こんな大袈裟な見出しをつけていますが、やったことはシンプルです。

  • Atcoder Problemから過去問の穴埋め

  • 蟻本(2章3節まで)

  • for文、if文の分岐、配列の操作、setやmap等の関数の理解

以上の3点をやっただけで行けます。ガチです。
Atcoderの過去問埋めは試験や受験を体験したことがある一般の方であればその重要性はおのずと理解できると思います。実際の書き方になれるためにやってました。
蟻本については途中なのですが、貪欲法や動的計画法はC問題やD問題でも頻出なので理解する必要性があります。
関数の理解ですが、わかっていても使えないと意味がないので英単語同様繰り返し学ぶことで意識せず使えるようになります。

Atcoderに限らず学ぶ上で大切なこと

筆者はAtcoderとは別に現在深層学習についても学んでいるのですが、学びはアウトプットが大事だと思います。自分は2年後期のアルゴリズムの講義でナップザック問題やDFS,BFS等のアルゴリズムについて知りました。しかしながら、Atcoderで出された際に実装することが出来ませんでした。知ると理解するは全く異なる概念なので、聞いただけで理解したようにふるまうのではなく、実際に使えるようになるまで理解するのが大切だと思います。でもそれが一番難しいのはよく分かる。

この記事が気に入ったらサポートをしてみませんか?