paiza開発日誌

IT/Webエンジニア向け総合求人・学習サービス「paiza」(https://paiza.jp ギノ株式会社)の開発者が開発の事、プログラミングネタ、ITエンジニアの転職などについて書いています。

初心者から上級者まで、たくさんのプログラミング問題を解けるサイト7選

f:id:paiza:20161206124917j:plain
Photo by Matt Ryall
f:id:paiza:20140916135428p:plainこんにちは。谷口です。

ITエンジニアの皆さんや、プログラミングを学習中の皆さんは、プログラミング問題を解くのはお好きでしょうか?(お好きな方が多い……と信じております……)

プログラミングが好きな方の中には、「業務とは直接関係ないけどプログラミング問題をもっと解きたい!」また、「プログラミング初心者で勉強中だから、問題をたくさん解きたい!」という方もいらっしゃるかと思います。

また、競技プログラミングがお好きで既にばりばり挑戦されている方や、競プロに挑戦してみたいけど「まだ初心者だしいきなり挑戦するのはハードル高いな……まずは自分の実力アップのために練習したい!」という方も、ちょうどいいレベルのプログラミング問題が必要になってくるかと思います。

(※競技プログラミングとは、一般に、出題されたプログラミング問題を制限時間内に解いて競い合う競技大会のことです。出題者側はテストデータを使い、回答が正しいかどうか判定されるといった流れで行われるものが多くなっています。)

今回は、競プロの練習やプログラミング学習に使える、プログラミング問題をたくさん解くことができるサイトを7件ご紹介いたします。

■プログラミング問題をたくさん解けるサイト

◆1.TopCoder

http://www.topcoder.com
f:id:paiza:20150413134559p:plain
TopCoderTopCoder社が主催する、世界中で約60万人の人々が参加する世界最大規模の競技プログラミングコンテストです。

TopCoderの各種目に参加すると、プログラミングスキルを表すレーティングと呼ばれる数値が付けられます。一定以上の高いレーティングを持ち、名前が赤で表示されている人物は「レッドコーダー」と呼ばれています。レッドコーダーとは、レーティングが2200以上の挑戦者のことで、世界中のITエンジニア達の中でも一目置かれる存在です。

コンテストは「Single Round Match (SRM)」「Marathon Match」「Bug Race」等の種目があります。

「Practice」のページには過去に出題された問題があります。こちらはもちろん自分の都合のいい時に挑戦ができて期限もありませんので、「TopCoderってよく聞くけど、どんな問題が出るんだろう?」「TopCoderに挑戦してみたいけど、不安だから練習ができたらな~」という方、もちろん「とにかくプログラミングの問題を解きたい!」といった方にもおすすめです。

◆2.Aizu Online Judge(AOJ)

http://judge.u-aizu.ac.jp/onlinejudge/
f:id:paiza:20150902150517p:plain
AOJでは、様々なコースからたくさんのプログラミング問題を解くことができます。最も初心者向けのコースは「Hello World」の出力問題から始まりますので、初心者でも安心です。初心者から上級者まで、多くの方が自分のレベルに合った問題に挑戦することができるかと思います。

◆3.HackerRank

https://www.hackerrank.com
f:id:paiza:20150413134810p:plain
HackerRankは、公開されているプログラミング問題を解くことで、回答に応じたポイントがもらえるというサービスです。いつでもチャレンジできる問題に加え、期間が限られたプログラミングコンテストも定期的に開催されています。

◆4.AtCoder

http://atcoder.jp
f:id:paiza:20150413135050p:plain
AtCoderは日本語でプログラミングコンテストを開催しているサイトです。「はじめての方へ」というチュートリアルのページもあり、初心者でも挑戦しやすいサイトだと思います。

こちらでは「AtCoder Beginner Contest」という初級者・中級者向けのプログラミングコンテストが定期的(月1~2回ペース)で開催されています。過去問にはスライドによる解説もついておりますので、「ネットで公開問題とか見ても、何でそういう答えになるかが分かんないんだよな……」といった方にも大変勉強になるかと思います!

◆5.yukicoder

http://yukicoder.me
f:id:paiza:20150413135706p:plain
yukicoderは競技プログラミングアルゴリズムをゆるふわに練習する目的で運営されています。こちらも定期的にコンテストが開催されており、問題投稿をすることもできます。★の数で表されたレベルごとにたくさんの問題がありますので、まさにプログラミングの練習にうってつけです。

◆6.CodingBat

http://codingbat.com/
f:id:paiza:20150902150700p:plain
CodingBatには、JavaPythonの問題があります。英語のみ対応のサイトになりますが、自動採点ですぐに結果が分かりますので、JavaPythonユーザーの方には便利な問題練習サイトかと思います。

◆7.paiza

http://paiza.jp/
f:id:paiza:20150730172136p:plain
paizaでは、スキルチェック問題(9言語に対応)を多数ご用意いたしております。

プログラミング問題を解いた結果によりS・A・B・C・D・Eの6段階で自分のスキルのランクが分かります。問題はレベルごとに分かれており、初心者から上級者の方まで挑戦していただけますので、自分のプログラミングスキルを客観的に知りたいという方は是非チャレンジしてみてください!!

またプログラミング問題による学習コンテンツ(paiza Learning)もございますので、「まったくのプログラミング未経験者なので学習から始めたい」という方もぜひご利用ください。

さらに9月1日(月)より、「paizaオンラインハッカソンVol.6 女子高生プログラマーの大バトル ~コボール文明の逆襲~」を開催しております。こちらはマンガ+プログラミング問題で構成されたオンラインマンガとなっております。

好きな女子高生プログラマーを選ぶと、プログラミング問題が出現します。問題に正解すれば、女子高生と一緒に世界を救うことができるかも!?選択キャラクターによって、問題やその後の展開は変わります。こちらもぜひ挑戦してみてくださいね!

paiza.jp

■まとめ

プログラミング問題を解くことは勉強になりますし、何より自分のレベルに合ったプログラミング問題が解けるとプログラミングの楽しさを実感することができると思います。(学び始めの方があまりにも難しい問題に無理して挑戦して歯が立たないと、「プログラミングってつらい……楽しくない……」という印象になってしまいがちですので……)

気になるサイトがございましたらぜひ挑戦して、プログラミング実力アップにつなげていただければと思います!


paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。

↓詳しくはこちら
paiza.jp

そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
paiza.jp
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

ITプログラマ・エンジニア向け転職・就活・学習サービスのpaiza