はじめに
こんにちは! ぽんです。皆さんがプログラミングを勉強しててこんなことはありませんでしたか?
勉強しようとして初心者用の本を読んだはいいけど..
- 実際に使う場面・アウトプットする場面がない。
- 文法の使い方・応用的な使い方がわからない
- 何ができるのかわからない.
そんなときには競プロ(競技用プログラミング)がおすすめです!
競技用プログラミングを利用することで以下の有利な点があります!
- 学んだことを使用できる
- アルゴリズムを学ぶことができる
- 実績作りにすることができる
学んだことを使用できる
競技用プログラミングの問題では、実際に本で学んだことを使った問題がでてきます。
問題にもよりますが基礎的なプログラミング文法を使った問題があります。
例えば a + b の計算を行う問題や入力・出力の書き方を実際に使用できる問題から、
文字・文字列の入出力・編集等の問題もあります。
私も高校時代何も知らない状態から問題を解いて基礎的なプログラミングの文法を学んでいきました。
アルゴリズムを学ぶことができる
競プロの問題にはアルゴリズムを使って解決するような問題もあります。
アルゴリズムには基礎的なソート方法や深さ優先探索、ダイクストラ法等様々あり、実践的にまなぶことができる
私は実際に競プロの問題で深さ優先探索やダイクストラ法等を実際にプログラミングで実践しながら学ぶことができました。
実績作りにすることができる
競プロを解いていくと意外な場面で活躍することがあります。
Atcoder等でプログラミングコンテストを解いていくことで、自分がプログラミングのスキルとして頑張ったこととして実績にすることができます。
自分の場合は高校時代に競プロ問題を解いていた実績と競プロのコンテストの成績を大学の面接にて話すことができました。大学を合格する際に有利な点の一つであったと思います。
注意点
今まで競プロの利点等について説明させていただきました。
説明より文法・アルゴリズム等の使い方を覚えることができることは分かったと思いますが、
アプリ・ゲームの開発力を競プロのみで培うことは難しいです…
それは競プロがあくまで問題を解くようなプログラミングを行うのに対して、
アプリ・ゲーム等はGUI・Web等を動かすようなプログラミングであり、個人的にはジャンルが若干異なっているので一定の開発力の助けにはなりますが、アプリ・ゲーム等は実践的に作成していくしかないと思っています。
最後に
最後に競プロをやっていく上でおすすめのサイトを紹介させていただきます。
・AOJ
Welcome to AOJ | Aizu Online Judge (u-aizu.ac.jp)
会津大学が用意しているオンラインの競技用プログラミングサイトです。
簡単な文法から複雑なアルゴリズムを使用した問題までそろっています。
私は高校時代はずっとこのサイトにお世話になっており、これなしでは今の自分はありませんでした。
・Atcoder
AtCoder:競技プログラミングコンテストを開催する国内最大のサイト
世界最高峰の競技用プログラミングコンテストです。
レーティングがあり自分が自身の実力を高めていくことができます。
個人的には、AOJに慣れた後に実際にやってみるといいかもしれません。
コメント