【目標になる】プログラミング初心者向けコンテスト6選!
プログラミング初心者のみなさんや、及び、初心者を脱出したいみなさん。
「プログラミングコンテスト」というものをご存知ですか?
「コンテスト」と聞いて、難しそうに感じるから自分には無関係だと思うかもしれません。
しかし、実は初心者向けから様々なレベルや趣向のコンテストが開催されているため、「今の実力はどんなものか」「制作物以外で、自分の目標をみつけたい!」と思っている向上心溢れる初心者の方にもおすすめです。
そんなプログラミングコンテストですが、どんなものが開催しているのか、初心者でも参加できるコンテストはどんなものがあるのか、みなさん気になりますよね。
今回は、初心者の方に向けて、「プログラミングコンテスト」について詳しくご紹介いたします。
そもそもプログラミングコンテストって何?
プログラミングコンテストとは「プログラミングの技術を競い合う大会」であり、参加者全員に同じ問題(または課題)を与えられ、解答スピードや正答率・アイデア等を競います。
パソコン上で競うことができるので、インターネットを通じて日本中もしくは世界中の人と対戦できることが一般的です。また、「プログラミング」と言っても様々な種類がありますから、当然「プログラミングコンテスト」にも様々な種類があります。
アルゴリズム系コンテスト – 競技プログラミング
与えられた課題を解決する効率的なアルゴリズムを設計して、プログラムとして実装することを競うコンテストです。的確でスピーディなコーディングを求められるので、基礎的な力を試すことができます。「競技プログラミング」と呼ぶことが多く、プログラミングコンテストの中ではもっともメジャーであると言えます。
人工知能(AI)コンテスト
自分で人工知能(AI)を作り、競わせるコンテストです。例えば、ボードゲームをするAIを作成して対戦相手と戦わせて勝敗を競うものの他、「ロボコン」などロボットにAIを組み込んで試合をさせるものがあります。
セキュリティ系コンテスト - CFT(Capture The Flag)
CFT(Capture The Flag)とは、コンピュータセキュリティ技術を競う大会のことです。Capture The Flagとは、互いに相手陣地の旗を奪い合う屋外ゲームを指しますが、派生して相手サーバを奪うコンピュータ競技のことも指すようになりました。競技では、自分のサーバを防御しながら、他チームのサーバを攻撃(改ざんや情報取得など)することで得点を獲得し、その獲得した点数を競います。相手の攻撃を察知したりどう攻撃すれば良いかを考えたりするため、敵の心理を読む実践力を磨くことに繋がります。「ホワイトハッカーなど高度なセキュリティ技術者を育成することができる」ということで注目され、公的機関主催でも行われています。
「ウェブサービスを高速化する」コンテスト
初心者にはかなり難易度が高いですが、サーバ/インフラのチューニングの技術を競うコンテストも存在します。噛み砕いて言うと、ウェブサービスを支える土台(サーバ)をいかに高速化できるかを競う大会です。
参加者は他のコンテストよりも、Web業界の屋台骨となるような「実力者たちが多い」という傾向があります。
「今の働き方に不満はあるけど、日々の業務が忙しくてゆっくり考える時間がない…」
そんな悩みを持つ方に向けて【DMM WEBCAMP】では無料のキャリア相談を実施しています。
ビデオ通話で相談をすることができるため、仕事で忙しい方でもスキマ時間に気軽にカウンセリングを受けることも可能です!
プロのキャリアカウンセラーと一緒に、今後のキャリアについて考えてみませんか?
プログラミングコンテストに出る理由
「自分の実力」を知ることができる
コンテストによっては、レベルに合わせて開催していますので、自分が今どのくらい理解できているのかを把握することができます。特に、アルゴリズム系コンテストでは、「正しいプログラムを書くことができているのか」が顕著に現れます。「長年プログラマとして働いていたのに、こんな簡単なプログラムで間違えるとは」と言う感想をもつ人も多数見受けられます。実力を知ることで、自信を得たり悔しさからモチベーションが上がったり、自分にとってプラスになることでしょう。
上手な人のプログラミング技術を知ることができる
コンテスト終了後には、他の人が回答したプログラムや作品をいくつか閲覧することができます。初心者のうちは、どれが良いかを判断するのは難しいものです。しかし、コンテストの場合は参加者に順位がつけられますので、どれを参考にすべきかは一目でわかります。
自身の成長スピードアップに繋がる
上手な人の技術を見ることは、実装されているWebサービスやプログラミング教室で学ぶこともできます。そして、もちろんそれは勉強になります。
しかし、それらの勉強とコンテストに参加することの違いは、「自分も参加して解いた問題に対する模範回答をたくさん見ることができる点」にあります。上手な人の回答と自分のとを照らし合わせることができるので、弱点やつまづいたポイントを潰していくことができます。
ピンポイントで自分の弱点を潰すことができるため、成長スピードのアップが期待できます。
有名なプログラミングコンテスト
では、実際にはどんなコンテストが開催されているのでしょうか?
テレビやインターネットニュースでも取り上げらるような、有名なプログラミングコンテストを3つご紹介いたします。
Google Code Jam (GCJ) – アルゴリズム系コンテスト
https://code.google.com/codejam/
googleが開催しているアルゴリズム系のプログラミングコンテストです。
与えられた問題を制限時間内で解いて競う大会で、年 1 回開催されて世界中の実力者が集まります。
SECCON(セクコン) – セキュリティ系コンテスト
日本ネットワークセキュリティ協会が主催する、日本における最大規模のCTF大会です。
世界65ヵ国から3,000人以上が参加する、世界的に見ても最大規模とも言われる大会です。
ISUCON – 「ウェブサービスを高速化する」コンテスト
お題となるWebサービスが与えられ、決められたレギュレーションの中でチューニングを行い、限界まで高速化を図る大会で、2016年の優勝賞金100万円。
3人1組で参加することができ、毎回予選を通過すたチームは公式サイトで開示されるため、常連チームはWeb業界で一目置かれる存在です。
初心者向けの書籍なども公開されているので、参加する分にはハードルは低いと言えます。
「今の働き方に不満はあるけど、日々の業務が忙しくてゆっくり考える時間がない…」
そんな悩みを持つ方に向けて【DMM WEBCAMP】では無料のキャリア相談を実施しています。
ビデオ通話で相談をすることができるため、仕事で忙しい方でもスキマ時間に気軽にカウンセリングを受けることも可能です!
プロのキャリアカウンセラーと一緒に、今後のキャリアについて考えてみませんか?
初心者向けプログラミングコンテストの紹介
「プログラマを育成すること」もプログラミングコンテストの目的の一つです。
ハードルが低く、初心者の方にもおすすめのプログラミングコンテストを3つご紹介します。
AtCoder Beginner Contest (ABC)- アルゴリズム系コンテスト
「コンテストを通じて、プログラミングやアルゴリブムを学習するサービス」を提供するAtCoderの初心者向けコンテストです。
練習問題や過去問を見ることができるので、勉強した上で本番に参加するとより楽しめるのではないでしょうか。
また、様々なレベルに合わせたコンテストが開催されているので、初心者問題だと物足りない方は同企業のAtCoder Regular Contestにチャレンジしてみてはいかがでしょうか。
セクコン ビギナーズ – セキュリティ系コンテスト
http://2016.seccon.jp/about/beginners.html
SECCON(セクコン)の主催する、初心者向けのCFT勉強会です。
CTFに必要な基礎知識を学ぶことができ、実際に演習課題が与えられCTFを体験することもできます。全国各地で開催され、原則無料ですので、セキュリティに興味がある人におすすめです。
CODE VS – 人工知能(AI)コンテスト
チームラボやKLabなどIT業界で活躍する企業がスポンサーとなっている本大会。年一回の開催で、2016年決勝戦はnicofarre(ニコファーレ)でイベントとして開催され、参加者からは「楽しかった」と大盛況でした。予選はインターネット上で参加できますので、初心者の方も参加しやすい大会となっています。試しに予選に参加してみて決勝戦に足を運び、上位者の技術を学びつつ交流を深めるのもありかもしれません。
まとめ
プログラミングコンテストでは、「問題を解くことを通して技術者を育てていくこと」「競い合って技術を磨くこと」を目指しており、「初心者の育成」もプログラミングコンテストの目的の一つであることを理解いただけましたでしょうか。
初心者向けプログラミングコンテストは、学習教材や講習会が設けられていますので参加しやすいものばかりです。また、コンテスト上位者はハンドルネームやチーム名でインターネット上に公開されますので、有名なプログラミングコンテストで上位に入れば日本中もしくは世界中の人があなたを知ることになります。
誰もが最初は初心者です。まずは取り組みやすいところからチャレンジしてはいかがでしょうか。
DMM WEBCAMPについて
DMM WEBCAMPは3ヶ月間で未経験から即戦力エンジニアを育成する転職保障付きのプログラミングスクールです。1ヶ月でプログラミング・Webデザインを学ぶ通い放題の「ビジネス教養コース」も展開しています。
DMM WEBCAMPを運営する株式会社インフラトップ では、「学びと仕事を通して人生を最高の物語にする」という理念で会社を経営しています。
キャリアアップを目指す方は、この機会に私達と一緒にプログラミングを学んでみませんか?
プログラミング初心者がプログラミングスキルを身につけてプロになるまでの具体的な方法が知りたい方は、こちらの記事もぜひ参考にしてください。
プログラミング初心者は全員必読!【1人前のプログラマーへの道程】