初心者ぬまよの一流エンジニアへの道

初心者ぬまよの一流エンジニアへの道

どーもぬまよです! 初心者が電子工作やゲーム開発を通して一流エンジニアに成長していく様を、初心者目線でブログにしています。

C言語の参考書一冊終わらせただけの男が競技プログラミングで奮闘する話

f:id:tonkichi_factory:20200702165540j:plain

どーもぬまよです。


最近「AtCoder」という競技プログラミングを初めました!! 今回は初心者が競技プログラミングやってみた感想などを話そうと思います。  

 

 

競技プログラミングってなに?

そもそも競技プログラミングって知っていますか?


正直僕もよくわかってませんでした。笑
「戦うんやろなー」「プログラミングするんやろなー」ぐらいの認識でしたね。
まあ間違ってはないんですけども。

ざっくり言うと、〇〇を実現するプログラムをできるだけ速く、正確に書いてくださいといったものです!


例えば、a + b を計算するプログラム作りなさいとかですね。 さすがにもっと難しいのがでますが、、、。


ここで難しいのが、ただコードを書くだけじゃなくて、処理時間も気にして書かなくてはいけません!
「できたー!」と思っても計算回数が多すぎると処理時間が長くなりすぎて不正解になってしまいます。
そう言う時は工夫したコードを書かなくてはいけません。


つまりどのようにして指定されたプログラムも書くかという頭の柔らかさが求められるのが競技プログラミングです。

AtCoder

現在僕がやっているのはAtCoderです。
AtCoderは国内最大の競技プログラミングサイトです。(いつもお世話になってます)

atcoder.jp

なんと登録さえすれば無料でできます!
太っ腹!
毎週土日(多分)にコンテストが開催されていて好きな時にボタンひとつで参加できます。
時間はいつも21時スタートが多いイメージです。


レベルの高い人が参加するコンテストや初心者向けのコンテストなどいろいろなコンテストがあって自分に合ったものを選ぶことができます。
コンテストは数問を解くことになるのですが、初心者向けのコンテストでも後の方の問題はゴリゴリにむずいです。。。


また、成績によってレートが変動する仕組みになってます!
オンラインゲームみたいな感じですね。
そういえば昔「動物タワーバトル」というアプリが流行りましたが、レート順位でとんきちは160位になったことがあります。孫ができても自慢します。


さらにさらに、コードを書くプログラム言語はどんなものにも対応しています! 「私Javaしかできない、、、。」ってひとでも大丈夫!

なぜ競技プログラミング始めようと思ったの?

一言で言うと自分のスキルを証明するものになりそうだと思ったからです。
それとスキルアップにもつながるなと思いました。 いつか転職する時にも有利かも、、、?


あとは単純にプログラミングが面白いってのもありますね。
昔から数学の試行錯誤して答えにたどり着く謎解きっぽい感じが好きで、プログラミングにもそれと似たようなものを感じます。

競技プログラミングは初心者には難しい?

何を隠そう私はそんなゴリゴリにプログラミングやってたわけではありません。
大学まではパソコンで「面白フラッシュ倉庫」しか見たことがありませんでしたし、最近C言語の参考書を一冊終わらせたぐらいの実力です。
そんな僕でも競技プログラミングなんかできるのか気になりません?


実際にやってみると案外いけちゃうもんなんです!
こんな僕でも!


競技プログラミングってどちらかというとプログラミングの知識よりも頭の柔らかさが求められます。
なので最低限の知識さえあれば問題に立ち向かうことはできます。
しかもサイト内ではC++の基礎を教えてくれているので初めてプログラミングをするという方でも大丈夫だと思います!


ただ逆に言うと、プログラミングの知識があっても頭の柔らかくない人は難しい問題は解けません、、、。
まあそこは問題をこなしていってレベルをあげるしかないしそれが楽しいんですけどね!
なので考えるのがあんまり好きじゃない人にはおすすめしませんが、数学とか考えることが好きだけどプログラミングがわかんないって人は全然心配せずに競技プログラミング始めてみるといいですよ!

ぬまよはどれぐらいのレベルなの?

ここは飛ばしときますね😀
けしてしょぼいから逃げたわけじゃないよ?
ヒントを言うとC問題(A,B, C, D, E, Fといった感じでだんだん難しくなる)が解けたり解けなかったりぐらいのレベルです。。。

まとめ

競技プログラミングはそんなにプログラミングに自信がない人でも十分楽しめるものでした!
なんか敷居が高いと感じてる人は是非思い切ってやってみてください!
僕と一緒に最強レート目指しましょう👍