1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

「数億規模スタートアップのCTO講師」と「エンジニアキャリア専門のポテパン」が贈る、実践型Rubyスクール。

【初心者向け】腕を磨くのに最適!プログラミングコンテストとは?

Pocket

プログラミングを勉強している過程で、「これまでの成果を試したい」と思うことはないでしょうか?
まずは制作する方法もありますが、なにから手をつけていいかわからない、今の自分の状態を知りたい場合などはプログラミングコンテストに出場してみることもおすすめです。

ここでは、プログラミングコンテストとは何か、どんな種類のコンテストがあるかについてご紹介します。

プログラミングコンテストとは?

プログラミングコンテストはいわば「プログラミングでやるスポーツ」です。
形式は参加者が皆同じ問題を解いて、スピードやスコアを競い合います。オンラインゲームのように、スコアは随時更新され、インターネットを通じて世界中の人と対戦できることも醍醐味と言えます。

プログラミングコンテストでどんな問題を扱っているかより具体的なイメージをつかみたい方は下記が参考になります。
勉強か?趣味か?人生か?―プログラミングコンテストとは

プログラミングコンテストに参加するメリット

1.他人の解答を見て視野を広げることができる

プログラミングの勉強をしたり、プログラマーの仕事をしていると、指定された要件を満たすプログラムを作成することがあります。
勉強の過程では、教科書などでお手本を参考にすることがあるかもしれません。
ですが、教科書以外の場面では、自分が考えつかなかったものを目にする機会は少ないですよね。
プログラミングコンテストは、大会からの解説や同じ問題に取り組んだ人の解答例などを確認する貴重な機会となります。

2.多くのライバルと知り合うことができる

コンテストは世界中のプログラマが集まり、コーディング能力を競い合います。参加することで自分と同じように頑張っている仲間を見つけることができます。勉強会やコミュニティに参加して同じような人と出会える効果をコンテストでも得られます。

プログラミングコンテストの種類と特徴

プログラミングコンテストについて紹介してきましたが、コンテストの中身もいくつか種類があります。

アルゴリズム系コンテスト

出題された問題の要求を満たすプログラムを、より早く提出する、「競技プログラミング」と呼ばれるコンテストがあります。
競技プログラミングでは、出場者が同じ問題を解くことで競うため、普段見ることのできない他の人の解答を見るいい機会になります。また、点数や順位などを気にすることで、技術力を向上させる目標設定がしやすくなります。

ソフトウェア・ネットワークのセキュリティ系コンテスト

ハッキングやバグ探しを競う、セキュリティ系のコンテストもあります。
一例としては、Web・ネットワーク・バイナリ・暗号などの問題を解いて点数を競う、「キャプチャー・ザ・フラッグ(CTF)」とよばれるコンテストがあります。
下記のページにこれから学習される方に参考になる情報があります。
Capture the flag! -タタカエ・セカイのために-

ショートコーディング系コンテスト

少ない文字数(バイト数)で機能を実装することを競う、コードゴルフと呼ばれるコンテストがあります。
コードゴルフ向けに、「GolfScript」や「Flogscript」などの言語もつくられています。
Code Golfについて

人工知能(AI)系コンテスト

ゲームなどの人工知能(AI)をつくって競うコンテストです。AIプログラム同士をゲーム上で戦わせる対戦型AIプログラミングとなります。
言葉ではイメージしづらいので、下の動画でイメージをつかんでもらえればと思います。
スプラトゥーンみたいなゲームで、マスを8方向囲うと塗りつぶことができ、多く塗り潰したほうの勝利になります。

作品系コンテスト

作品を提出し競うコンテストで、テーマに沿ってつくるもの、自由につくるものがあります。「プログラミングのコンテスト」と聞いて、想像しやすいのはこのタイプかもしれませんね。地震の揺れを感じたら通知させるシステムを作成する作品が提出されるなど、かなり創造性の高いコンテストとなります。

おすすめコンテスト紹介

では実際に、どのようなコンテストがおこなわれているのでしょうか。
各ジャンルからひとつずつ、おすすめのコンテストをご紹介します。

アルゴリズム系コンテスト

AtCoder

初心者向けのコンテストである「Atcoder Beginner Contest (ABC)」では、プログラムを勉強しているけどなにをしていいのかわからない、という人向けの問題も用意されています。その他、「プログラムをはじめたばかりの人から腕に覚えのある人」までを対象としているコンテストや、企業などのコンテストを実施していることもあります。

AtCoderのほかに、世界的に有名なコンテストでは以下のようなサイトもあります。
google code jam
TopCoder
Codeforces

また、練習に使用するのなら競技プログラミングの問題を解くことができ、かつその結果をリクルートに役立てることができる「codeiq」を試してみるのもいいかもしれません。

ソフトウェア・ネットワークのセキュリティ系コンテスト


SECCON

「CTF for ビギナーズ」という初心者向けの大会も開催されています。コンテストは年7回の頻度で行われる予選を突破すると本選に参加できます。予選は2日間にかけてかなりの量のクイズ形式の問題を解き、本選は攻防戦方式となります。クイズ形式の問題は下記のサイトで演習することができます。
問題サイト

ショートコーディング系コンテスト

過去「CODE FESTIVAL」などでは、ショートコーディングとしてコンテストが実施されたりしています。
コードゴルフの問題が解けるサイトとしては、以下がありますので、大会に備えて練習しておくのもいいかもしれません。

コードダンジョン

人工知能(AI)系コンテスト


SamurAI Coding
AIプログラム同士を戦わせる対戦型AIプログラミングのコンテストです。プログラミングスキル、アルゴリズムやストラテジー、設計スキルなどが必要となります。
プログラミング言語は、C++、Java、Pythonなどから選びます。ゲーム内容は、ゲーム内容「SamurAI 3×3」は、 異なる武器を使う3人のサムライが軍団を組み、同じく3人のサムライからなる相手軍団と対戦して、獲得した領地の広さを競うゲームです。

SamurAI Codingのほかに、下記のコンテストがあります。
CodeVS
codingame

作品系コンテスト


HSPプログラムコンテスト

HSPでつくられた作品について、審査・表彰するコンテストです。作品をつくってコンテストに出場するのに抵抗がある方でも、応募作品にふれられる点が嬉しいポイントです。また、実行委員会の審査員のほかネット審査員の評価をもとにして審査されており、登録を行うことでネット審査員になることも可能です。

おわりに

参加できる資格はコンテストによって異なりますが、学生向けや海外コンテストであれば更にさまざまなコンテストもあります。
是非自分の目的にあったコンテストを探して、勉強に利用したり、成果を試したりしてみてくださいね。

【おすすめ記事】
初心者にもオススメ!競技プログラミングの問題を解けるサイト8選
オール日本語!ひまわり、なでしこ、TTSneoで学ぶプログラミング基礎

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

おすすめスクール

全国30校舎で展開されるヒューマンアカデミーのWeb講座は修了者数4万人超、講師とカリキュラムの満足度がどちらも9割を超えています。就職や転職に必要なレベルの実務スキルを身に付けられます。

初心者がプログラミングで挫折しない学習方法を無料動画で公開中。オンラインに特化したプログラミングスクール「TechAcademy(テックアカデミー)」が解説。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

イチ押しランキング

1リナックスアカデミー

リナックスアカデミー

2システムアーキテクチュアナレッジ

システムアーキテクチュアナレッジ
ページ上部へ戻る