競技プログラミングやコードゴルフ
プログラミング学習で、特定のプログラミング言語の
- 基本的な構文
- 一通りのコンセプト
- 各種機能
などを学んだ後には、自分で作りたいもの、興味があるものを作るという流れがお勧めです。
今日は、自分で何か作り始めるという以外の選択肢、競い合いながらプログラミングを楽しめる
- 競技プログラミング
- コードゴルフ
などのプログラミングコンテストについて紹介します。
プログラミングの能力や技術を競い合うプログラミングコンテストには、いくつもの種類があります。
競技プログラミングでは、参加者に課題が与えられ、その課題により早く、要件を満たすプログラムをコーディングする、という点で競い合います。
コードゴルフでは、参加者にアルゴリズムが与えられ、可能な限り短いソースコードを作成する、という点で競い合います。
これらのプログラミングコンテストは、実際にプロダクトを作成するときに、直接活かされるか、という点を除いても、
- 競い合いながらプログラミングできる
- パズル的な要素があるので楽しめる
など、プログラミング学習に対してポジティブな面があると思います。
プログラミングコンテストは多数あります。そのいくつかを紹介します。
様々なコンペティション
CodeChef
CodeChefは、世界中で利用されている競技プログラミングのコミュニティです。
CodeChefでは、競技プログラミングに参加できる他に、
など多くのリソースを活用できます。
Codeforces
Codeforcesは、広く知られている競技プログラミングのプラットフォームです。
英語とロシア語に対応しています。
CodinGame
CodinGameは、Webブラウザでプログラミングの基本から学習できるプラットフォームです。
他の参加者と競い合うことができ、競技プログラミングへの参加はハードルが高い、という人も、
- サイトで学習しつつ
- 慣れてきたらコンペティションに参加する
という使い方ができます。
- Java
- Python
- Kotlin
- Swift
など様々なプログラミング言語で学習を進めることができます。
Topcoder
Topcoderは、世界的に知られた競技プログラミングを開催している会社です。
コンペティションのプラットフォームには、プログラミング学習に活用できるリソースがあります。
チュートリアルが用意されています。
AtCoder
AtCoderは、競技プログラミングを運営する日本の会社です。
AtCoderは、競技プログラミングの開催の他に、アルゴリズム実技検定という検定を実施しています。
このほかにも、
- 求人とプログラミングのスキルを組み合わせたHackerRank
- 競技プログラミングの練習ができるyukicoder
- データ分析や機械学習に特化したコンペティションのKaggle
- 情報セキュリティのコンペティションSECCON
など、多様なプログラミングコンテストがあります。
プログラミングの学習に
プログラミング学習を続けて行くと、
- 自分の作っているプロダクトのプロジェクトが上手く進まない
- モチベーションが下がってきた
- コミュニティに参加したい
など、色々な場面が出てきます。
そんな時に、今日紹介したような色々なコンペティションやコミュニティに参加することで、
- 今までと違ったプログラミング言語に触れる
- 新しいアルゴリズムを知る
- 他の人が書いたコードを読む
など、新しい経験や発見を得るチャンスを作ることができます。
気になった人は、一度プログラミング学習として、プログラミングコンテストに参加するのも良いのではないでしょうか。
コメント