いももちのきもち

新米プログラマによる技術的メモ

プログラミング練習方法とおすすめサイト

現在インターネット上には、プログラミングの問題を解くとすぐに答えを判定してくれるサイトが多数あります。特に「競技プログラミング」とよばれる、制限時間内にいかに速く正確に問題を解くかを競う分野のサイトが勉強の役に立ちます。

他人の解答を閲覧できるサイトも多いので、人のコードを解読する経験も得られます。

今日は今まで経験したプログラミング学習サイトの中から、現在利用中のサイトを紹介したいと思います。

(1)Aizu Online Judge(AOJ)

会津大学のサイトです。競技プログラミング大会の過去問がメインコンテンツです。アルゴリズムやデータ構造の典型問題を集めたコースもあり、自習にうってつけといえるでしょう。

(2)AtCoder

競技プログラミングの開催・問題提供を主業務とするAtCoder社のサイトです。2週間に1回程度(?)プログラミングコンテストが開催されています。日本語で開催されます。

(3)Codeforces

ロシアのサイトで、参加者が非常に多い(~数千人)のが特徴の競技プログラミングサイトです。週1くらい、深夜にあることが多いです。あまりに参加者が多いので、コンテスト開始時間の数分以内はサーバーが落ちることがあります(こどふぉる)。英語の問題が解読しにくいときがあります^^;

(4)Paiza

プログラミングによる転職・就職サイトです。競技プログラミングで問われるような様々な難易度の問題が複数登録されており、これを解くことでプログラミング能力を測定します。この能力のランクによって、どの転職情報にアプライできるかが決まったり、ジョブオファーがきたりします。求職者でなくても参加できるオープンコンテストも時々開催しています(例: POH7)。
Paizaは他にもPaiza ioというブラウザ上のエディタサービスを提供しており、これは競技プログラミングのように標準入力と標準出力を扱うだけならかなりシンプルで使いやすいと思います。

(5)Codingame

オンライン上でさまざまなゲームを実装しよう、というサイトです。標準入力を読み取る部分などは最初から入力されていて、中心のロジックの実装に集中できるように配慮されています。ブラウザ上のIDEを用い、ゲーム画面を動かしながらコーディングできるようになっています。