プロのカウンセラーがITキャリアの悩みを解決!簡単30秒カウンセリング予約

プロコン(プログラミングコンテスト)とは?おすすめの大会や参加方法について解説

更新: 2020.05.27

>>No.1エンジニア養成プログラム テックキャンプ

10年後も職を失わない人材になれる限定資料を見る

我々が利用している多くのシステムやアプリは「プログラム」によって作られていますが、そのプログラミング技術を競う「プロコン(プログラミングコンテスト)」の存在をご存知でしょうか。

プログラマが互いのプログラミングスキルを競い合う「プロコン」ですが、どんな大会なのか知りたいという方もおられるかもしれません。

はたして、プログラミングの初心者でもプロコンに参加することはできるのでしょうか。
また、プロコンで良い成績を残すにはどうするべきなのでしょう。
この記事では、プロコン(プログラミングコンテスト)についてその概要や参加方法、高い成績を残すためのコツをご紹介していきます。

プロコンに参加するための手順や参加資格はどういったものなのでしょう。具体的なプロコンの大会内容についても見ていきます。

この記事の目次

プログラミングスキルを競い合うプロコン(プログラミングコンテスト)

プロコン(プログラミングコンテスト)とは、プログラミングスキルを競い合うコンテストのことです。

システムやアプリを動作させるためには「プログラミング言語」が用いられますが、その扱い方は人によって千差万別であり、高い実力を持ったプログラマーはより効率の良いプログラミングを行うことができます。

プロコンではこのプログラミングに関する問題が出題され、答えを導き出しコーディングを行う速さを競うのです。

いわばスキルの高さを競い合うスポーツのような感覚で、プログラミングそのものを楽しむ大会になります。

普段の仕事でプログラミングを行うだけでなく、こうしたプロコンに趣味として参加する方も多くおられます。

社会人だけではなく高専でプログラムに携わっている方々も参加しており、最近では年齢幅も非常に広くなってきています。

新たな人材を発掘すべく、近年プロコンに協賛する企業の数も増えてきているようです。

また、学習用サイトの内部でプロコンを定期的に行なっていたりと、日本だけでなく海外の方も含めた大規模なプロコンも存在しています。

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

プログラミングの正確性や速さを競い合うプロコンに出場すれば、プログラミングスキルの向上にもつながります。

プロコンを勝ち抜くためには、他のプログラマよりも正確で、迅速なプログラミングスキルが必要です。

このため、必然的に自身のプログラミングスキルを見直し、向上させられるのです。

さらにプロコンは、同じくプログラミングに打ち込む仲間やライバルと出会ったり、自分以外の人がどのようなコードを書いているのか知ったりする機会にもなります。

他のプログラマーと競い合うことは良い刺激となり、自分にはない新たな発想や技術を獲得することにもなるでしょう。

また、大会の成績が良ければプログラマーとしての実績にもなるため、プロコンに参加することは多くのメリットがあるといえます。

主なプロコン(プログラミングコンテスト)の種類

プログラミングコンテストは、大きく以下の5種類に分けられます。

  • アルゴリズム系コンテスト
  • AI(人工知能)系コンテスト
  • ソフトウェアやネットワークなどのセキュリティ系コンテスト
  • ショートコーディング系コンテスト
  • 作品系コンテスト

一口に「プログラミング」といっても、作り上げるシステムの種類や表現したい分野が異なってくるため、コンテストごとに特徴が違ってきます。

自身が取り組んでいる、あるいはこれから挑戦してみたい分野を明確にし、それに適したプロコンを探してみると良いでしょう。

各大会の詳細とおすすめの大会については記事の中で説明していきます。

初心者はプログラミングスクールで基礎を身につける

これからプログラミングの勉強を始める初心者の方は、プログラミングスクールで基礎を身につけることから始めましょう。

プロコンに出場するためにも、まずはプログラミングの基礎をしっかりと身につけ、より実践的な技術やノウハウを身につけることが重要です。

独学でプログラミングを身につけようとすると、どの情報が正しいものなのか判断ができなかったり、分からない部分を調べることに時間がかかってしまったりと効率が悪くなってしまいがちです。

スクールで学ぶことで、こういった効率の悪さを解消し、挫折する可能性を低くすることができます。

ただ、元々スクールはエンジニア・プログラマーの就職・転職支援のための環境ですので、学ぶ範囲にもいずれ限界は出てきます。

プロコンに出場して良い成績を残したいのであれば、基礎を身につけた上で、さらに高度なスキルを独学する必要があるでしょう。スクールはプログラミングの第1歩を踏み出すきっかけとお考えください。

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

プロコン(プログラミングコンテスト)とは、プログラミングスキルを競い合うコンテストのことです。

プログラミングの問題が出題され、答えを導き出しコーディングを行う速さを競います。

いわばプログラミングで行う「スポーツ」であり、スキルの高さを他のプログラマー達と競い合う大会です。

スコアは随時更新され、インターネットを通じて世界中の人と対戦できるため、まさにオンラインゲームのような感覚でプログラミングを行うのです。

自身のプログラミングの成果を試したいという方にとっては、うってつけの場といえるでしょう。

プロコン(プログラミングコンテスト)に応募する方法

プロコンに参加する際には、まずは応募する必要があります。

この応募方法は大会によって様々ですが、多くの場合は各大会のホームページから応募用紙をダウンロードして郵送する形をとっています。

なかにはネットで応募をすることもできるため、参加したいプロコンのサイトにて確認すると良いでしょう。

プログラミング初心者でも応募できる?

プログラミングコンテストには、初心者向けの大会もあります。

コンテストや大会と聞くと、プログラミング上級者、熟練者ではないと参加できないように思われがちです。しかしそんなことはありません。

プログラミングの基礎を身につけただけ、という人でも参加できる大会もあるので安心です。

初心者向けの大会も数多く存在するため、学んできたプログラミングの基礎を試すという意味でも、一度プロコンに参加してみるのも良いかもしれません。

オンラインで無料キャリア相談!無理な勧誘は一切いたしません

テックキャンプ エンジニア転職は、未経験からのエンジニア・WEBデザイナー転職を実現するスクールです。
テックキャンプはオンラインでプログラミング学習が可能。「徹底したサポート」と「やりきらせる学習環境」をオンラインでも提供しています。
転職成功率はコロナ前と同水準の98.7%を維持!
キャリアに悩んだらテックキャンプの無料オンラインカウンセリングでITキャリア相談を受けてみませんか?あなただけのキャリアプランが作れます。
オンラインカウンセリングのやり方は簡単なので、ぜひご利用ください。

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

プロコンに参加すると様々なメリットがあります。

特に仕事ではなく個人でプログラミングを行なっている方にとっては、プロコンで得られるものは非常に大きいです。

プロコンに参加するメリットについて見ていきましょう。

プログラミングスキルの向上につながる

プロコンではレベルの高いプログラミング問題に挑戦するため、必然的にプログラミングの精度やスピードといったスキルの向上につながります。

出された課題に対し、それを満たすための的確なプログラミングスキルが求められます。

それと同時に、いかに素早く効率的にプログラムを組み上げるかという技量も問われるのです。

より良い成績を残すためには高度なプログラミングスキルを身につける必要があり、結果として技術力を向上させることができます。

ライバル選手と知り合える

本来プログラミングは孤独な作業ですが、コンテストに出場することで、自分以外にもプログラミングに打ち込んでいる人と出会うことができます。

プログラマーやシステムエンジニアとして仕事でプログラミングに携わっている方にとっては、同じくプログラミングに打ち込む人と出会う機会もあるでしょう。しかし、個人でプログラミングを行なっている人からすると、仕事をする中で出会いはなかなかありません。

コンテストでは様々なプログラマーの人と出会い、その腕を競い合っていくことになります。

本来はコンテストにおける対戦相手なのですが、時には目標となり、また時には切磋琢磨する仲間にもなります。

協力できるプログラム仲間を作ることで、知識や技術の共有をできるのはスキルアップにつながるでしょう。

こういった「ライバル」と呼べるプログラマーと出会えるのもプロコンならではのメリットの一つです。

自分以外の人の回答(コード)を見られる

同じプログラムを組むにしても自分以外の人たちがどのようにアプローチしたのか、無駄のないコードを書けたのかなどの回答を見ることができます。

普段、プログラミングを行う中では基準となるのは自分が書いたコードのみですので、なかなか他の人が書いたものを見る機会というものはありません。

中には自分が思いつかなかったようなコードを書いている人もいるため、自分以外のプログラマーのコードに触れることで新たな発想や着眼点を得ることができます。

こういった点はスキルアップにも役立てることができ、より多彩なプログラミングスキルを身につけることにつながります。

大会の結果が実績になる

プログラミングコンテストで良い成績を残せれば、それが自分のプログラマーとしての実績にもなります。

コンテストの結果が良かったということは、それだけプログラミングの正確性であったり、効率の良さの証明にもなるのです。

このためプログラマーとして仕事をしているのであれば、今後新たな仕事を獲得したり、転職したりするときのアピールポイントにも使えます。

もちろん、初めてプログラマーに就職する際にもコンテストの結果は、自分のスキルをアピールできる経歴になるでしょう。

プロコン(プログラミングコンテスト)の種類

プロコンにも様々な形式があり、それぞれで競い合うポイントが異なってきます。

ここからは、プロコンの具体的な種類について見ていきます。

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

出題されたプログラムをいち早く組むことが要求されるコンテストです。

課題に対して、それを満たすロジックをいかに素早く導き出すかという能力が問われます。

迅速さを競う様から、競技プログラミングとも呼ばれています。

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

AI(人工知能)を使って競い合うコンテストです。

自作のAI(人工知能)をゲームのような形で戦わせたりする形式が多く、プログラミング言語としてはPythonを使うことが多いです。

プログラムを組む速度というよりも、いかに多彩な状況に対応できるAI(人工知能)を作り上げれるか、ということが試されます。

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

ハッキングをしたり、コードのバグを探したりといった、ソフトウェア、ネットワークのセキュリティに関するプログラミングスキルを競うコンテストです。

システムの「穴」を探すため、セキュリティに関する高度な知識や技術が必要となってきます。

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

少ないコード(ビット数)でプログラムを組むことを競うコンテストです。

プログラムは同じ動作をするものでも、人によってシステムを実現するためのコード数が異なってきます。

より効率的に、短い記述でシステムを作り上げれるかということを競うのです。

作品系コンテスト

プログラミングを使って作品を作り、その良し悪しを審査するコンテストです。

アプリやシステムなど、なんらかのテーマに基づいた作品を作り上げ、その出来で競い合います。

テーマが決められている場合と、自由に作品を作る場合とがあります。

おすすめのプロコン(プログラミングコンテスト)

ここからは、各分野ごとにおすすめのプロコンについて見ていきます。

大会ごとに異なった特徴を持つため、プロコン参加を目指す方はぜひ参考にしていただきたいです。

おすすめのアルゴリズム系コンテスト

プログラムを効率的に、素早く組み上げることが要求されるアルゴリズム系コンテストですが、代表的な大会は以下のようなものが挙げられます。

AtCoder Beginner Contest

AtCoderは日本初のプログラミングコンテスト運営会社です。

2012年に設立されて以来、年々活動の幅を広げており、コンテストの運営を定期的に行うだけでなく、優秀な学生を発掘することで各企業のソフトエンジニア採用の支援なども行っています。

そんなAtCoderが運営しているプログラミングコンテストの中でも、AtCoder Beginner Contestは特に初心者向けとして開かれているものです。

競技プログラミングが初めてだったり、アルゴリズムに関する知識を必要としない方にとっても解答可能な問題が半分前後出題されます。

プログラミング初心者にとっても十分挑むことができる内容となっています。

出典:AtCoder Beginner Contest

Google Code Jam

問題を解き、「ソースコード」と「与えられた入力に対する出力結果」を提出し、その出来を競います。

問題にはsmallとlargeの2種類が用意されており、それぞれの解答に対し別の配点がついています。

smallの場合はデータセットのダウンロードから4分以内が提出期限で、間違えた場合でも4分以内ならば再提出が可能です。

また、smallは4分経過後でも別のデータセットを使うことで再チャレンジができます。

一方、largeはデータセット取得から8分以内が提出期限で、こちらも時間内なら再提出は可能ですが提出結果は竸技時間中は分からず、再チャレンジも不可能です。

異なる形式の二問を解くことで、その成果を競い合います。

出典:Google Code Jam

TopCoder

TopCoder社が主催するプログラミングコンテストです。

「Single Round Match (SRM)」「Marathon Match」「Bug Race」等の種目からなり、現在世界で最も勢いのある競技プログラミングコンテストの一つとなっています。

TopCoderの各種目に参加すると自分のプログラミングの腕前を表すレーティングと呼ばれる数値が付けられ、この数値によって全国を対象としてランキングがつけられます。

正確なコーディングとメモリや処理速度を意識したコーディングを求められることが特徴になります。

全国の参加者のコードを見ることもできるので、解き方や書き方を参考にし、取り入れることでプログラミングの学習にもつながります。

出典:TopCoder

dwango Programming Contest

dwangoが主催するプログラミングコンテストです。

プログラミングの正確さとアルゴリズム力で競う、個人戦の競技プログラミングコンテストになります。

予選・本選の二部構成となっており、本選の成績次第ではその年のdwango新卒採用において、初期の面接をパスできる可能性があります。

プログラミングコンテストに加え、就職のチャンスにもつながるコンテストとなっています。

出典:dwango Programming Contest

おすすめのAI(人工知能)系コンテスト

AI(人工知能)を用いたプログラミングコンテストも、近年では様々なものが存在しています。

以下が、AI(人工知能)に関する代表的なプログラミングコンテストです。

SamurAI Coding

AIの制御をする二人のプレイヤーが「SamurAI Jockey (サムライジョッキー)」という名のゲームで競いあうという形式のコンテストです。

SamurAI Jockeyとは、AIを制御する二人のプレイヤーがスタート位置から開始し、障害物が設置されたレースコース上でステップごとに位置を変えながらゴールに早く到達することを競うゲームです。

プログラムによって作り上げた自身のAIを相手と対戦させることで勝敗を決めるという、スポーツやゲームの大会に近い形式のコンテストになります。

出典:SamurAI Coding

CodeVS

約1,000名を超える予選挑戦者数からNo1プログラマを決める「ゲーム・AIコンテスト」です。

まずはポイント制の予選があり、その上位8名によって決勝が行われます。

プログラミングするのは戦略ゲームのAIで、優勝賞金も豪華なコンテストになります。

決勝戦はニコニコ生放送で実況されるなど、AI系コンテストの中でも有名です。

出典:CodeVS

codingame

codingameはフランスIT企業「CodinGame」が提供している無料のプログラミング学習サイトで、この参加者同士で定期的にプログラミングコンテストを開催しています。

20種類以上の言語を学ぶことができるのが特徴で、学習サイト内のSNSも非常に充実しています。

国内だけにとどまらず、海外のプログラマーの実力を見ることができるのも、大きな利点でしょう。

世界中のプログラマとつながることができるため、普段は思いつかないような新たな視点やアイデアを得ることもできるのです。

プロコンのライバルとしてだけではなく、共に協力してプログラミングを学ぶこともできます。

サイト内での学習で出される課題と同様の形式でコンテストが行われ、このスコアによってランキングがつけられる仕組みとなっています。

パズルや脱出ものといった「ゲームプログラム」をベースとして学習ができるので、AIの中でも特にゲーム系に興味を抱かれている方にとってはおすすめです。

出典:codinggame

おすすめのセキュリティ系コンテスト

セキュリティに関して様々な観点についてのプログラミングを競い合うコンテストになります。

セキュリティ系コンテストには、以下のようなものが挙げられます。

SECCON

情報セキュリティをテーマに多様な競技を開催する、情報セキュリティコンテストイベントです。

もともとは実践的情報セキュリティ人材の発掘や育成、技術の実践の場の提供を目的として設立されました。

SECCONの競技には、攻撃・防御両者の視点を含むセキュリティの総合力を試すハッキングコンテスト「CTF (Capture the Flag)」や、あるテーマにあわせてプログラムを作成して披露するプログラミングコンテスト「ハッカソン」などがあります。

出典:SECCON

おすすめのショートコーディング系コンテスト

少ないコードで、いかに効率的なプログラミングを行えるかを競うコンテストです。

ショートコーディング系コンテストには、以下のようなものがあります。

コードダンジョン

こちらは正確には「プログラマ向けのコードパズルサイト」になります。

サイトに掲載されるショートコーディングの問題を解いていく形式で、より少ないコードで書くように競い合うことから「コードゴルフ」とも呼ばれます。

ダンジョンのレベルが上がるごとに「禁止文字」が追加されていくため、限られた条件下でアルゴリズムを駆使して問題を解いていく必要があります。

出典:コードダンジョン

おすすめの作品系コンテスト

作品系コンテストでは、作り上げたシステムやアプリの出来によってプログラミング能力を競い合います。

作品系コンテストは以下のようなものが挙げられます。

U-22 プログラミングコンテスト

経済産業省が1980年から主催している、作品系プログラミングコンテストです。

優れた人材の発掘・育成を目的に開催しており、現在では世界で活躍していくような若者を応援するため、多くのIT・ソフトウェア企業もスポンサーとなり協賛しています。

コンテスト入選者にはIPAが行う未踏事業への推薦が可能です。

また、起業したい方へのスタートアップ支援など、プログラミングによってものづくりを行っていこうとする人々の支援も充実しています。

出典:U-22プログラミングコンテスト

HSPプログラムコンテスト

2003年から始まったプログラミングコンテストです。

作品系コンテストの中でも非常に長い歴史を持つコンテストで、いまもなお多数の参加者が集まります。

作品も小規模なものから大作、ツール系からゲーム系など、さまざまな分野をカバーしています。

出典:HSPプログラミングコンテスト

ゲーム感覚で楽しめるプログラミングコンテスト

プログラミングコンテストの中には、ゲーム感覚で楽しみながら技術を競い合えるものがあります。

以下は、一般的なプログラミングコンテストとは一風変わったものになります。

ハル研プロコン

ハル研究所が主催するプロコンになります。

元々は1995年に数名のプログラマーの集まりとして発足したのですが、今では会社の公式イベントとなっています。

2003年からは中学生、高校生、大学生といった学生の方々にも参加を呼びかけており、幅広い年代のプログラマーが参加しています。

ステージを攻略したり、特定のキャラに対するアルゴリズムを競ったりと、ゲーム色が強いのが特徴です。

興味のある方は、すでに終了したコンテストの問題にサイトから参加することも可能なので、まずは擬似参加という形で挑戦してみるのも良いでしょう。

出典:ハル研究所

なぜプログラミングコンテストに出場するのか目的を決める

プロコンに挑む上で、まず最初に肝心となるのは出場する「目的」を決めることです。

プロコンに参加する目的を決めることで、勉強をしたり、新しい大会に挑戦したりする意欲が出てきます。

実際、プロコンに参加される方々は様々な理由から応募し、ライバル達と激戦を繰り広げています。

「自分のプログラミングスキルを高めたい」「大会で好成績を残したい」「ライバルや仲間と出会いたい」「チームを組んで1つの目標を達成する喜びを得たい」など、人によってプロコン参加のきっかけは多種多様です。

目的を定めることはモチベーションの向上にもつながり、結果としてコンテストでも良い結果に結びつきやすいのです。

プログラミングスキルを向上させる方法

プログラミングコンテストに出場するプログラマーたちは、非常に高いレベルを身につけています。

初心者向けのコンテストもありますが、やはりより高度なスキルや実績を求めるならば、レベルの高いコンテストに挑むことになるでしょう。

そうなった場合、参加者のレベルもどんどん上がっていくため、一般的な技術や知識だけでは遅れをとってしまいます。

このため、大会で好成績を残したいのであれば、プログラミングの勉強を重ねてより専門的なノウハウを身につけ、スキルアップを行う必要があります。

独学で勉強する

スキルアップの方法としては、まず参考書や無料のプログラミング学習用Webサービスなどを使って学習する方法が挙げられます。

すでにプログラミングのスキルを持っていたり、プログラミングを仕事としている人ならば、独学でも早いスピードで勉強ができるでしょう。

一方、初心者だと開発環境の設定などに戸惑ってしまい、プログラミングに着手する以前の地点で手こずってしまう可能性は大きいです。

このため、プログラミングを一から独学で身につけるとなると時間がかかってしまうかもしれません。

以下の記事では、プログラミングを独学で身につけるための方法について解説していますので、参考にしてください。

出典:プログラミング入門完全版!初心者が基礎から独学で勉強する方法

過去問や優秀者の作品を参照する

各大会のサイトでは、過去問や過去の成績優秀者の作品が掲載されていることもあります。

これを参考にすることで、どのような問題が出題されるのか、どのような作品が高く評価されるのか傾向をつかむことができます。

コンテストで良い成績を残すためには、そこで重視されているポイントをあらかじめ押さえた上で、意識しながらプログラミングすることが重要です。

審査において高評価を得やすくするためにも、大会に出場する前にこれらを参照しておくことをおすすめします。

勉強会に参加・開催する

スキルを身につけるためには、プログラミングの勉強会に参加する方法もあります。

初級者向けから上級者向けまで、勉強会は現在日本のいたるところで開催されているため、自分のスキルにあった勉強会に参加することでよりスキルを磨くことができます。

また、同じようにプログラミングに取り組む人たちと交流することもできるため、情報交換などもでき新たな視点や技術を手に入れるチャンスにもなるでしょう。

身近にプログラミングをやっている人や、プロコンに参加している人がいるならば、自分で勉強会を主催するのも効果的な方法です。

プログラミングスクールを利用する

プログラミングスクールならば、カリキュラムが最短で3ヶ月〜半年で終わります。

このため、初心者がプログラミングの勉強をするのであれば、スクールに通うと非常に効率が良いです。

また、プログラミング経験者であっても、新しい言語を学ぶ時や改めて基礎からスキルを磨くのであれば、スクールを利用するのもおすすめといえます。

プログラミング初心者はスクールに通おう

テックキャンプ エンジニア転職フリーランスコース

これからプログラミングを勉強してプログラミングコンテストに参加したいという方は、プログラミングスクールに通うことをおすすめします。

スクールでは初心者でもわかりやすい解説のついたテキストを使い、基礎から実践レベルまでのプログラミングスキルを身につけることができます。

コンテストに参加するために必要なプログラミングの基礎スキルを短期間で身につけるには、スクールを利用するのが最適な方法といえます。

さらにスキルを高めるのであれば独学する

プログラミングスクールは、基本的にエンジニアやプログラマー転職支援のために授業を行っている場所です。

このため、プログラミングコンテスト向けのスキルを教える環境ではないという点には注意するようにしましょう。

スクールでプログラミングスキルを身につけたら、コンテストに挑むためにはさらに独学でスキルアップをする必要があります。

スクールは、プロコンに参加するための基礎スキルを身につける環境として利用するべきでしょう。

IT業界未経験・知識0でもOK!テックキャンプがエンジニア転職の夢を叶えます

「エンジニアに興味があるけれど、未経験だから不安……」と、悩んでいませんか?
テックキャンプ エンジニア転職は未経験者専用の教育プログラムだから、IT業界未経験・知識0でも大丈夫!
テックキャンプの受講生は、90%以上が非IT業界出身&99%がプログラミング未経験者です。それでも転職成功率は98.7%!
その秘訣は、オフラインでもオンラインでもやりきれる徹底したサポート体制。
まずは何でも相談できる無料オンラインカウンセリングで、あなたの悩みを聞かせてください。
「未経験からのIT転職」その第一歩を踏み出しましょう!

無料カウンセリングの予約はこちら

この記事を書いた人

Avatar
エンジニアとして活動するかたわら、まだまだ見たことがないITの世界を記事執筆を通して勉強しております。新しい技術やノウハウに目がない、雑食系です。

あなたの理想のキャリアに合わせた、テックキャンプの3つのサービス

Advertisement