プログラミング

プログラミングの練習問題を解ける初心者向けサイト

GOODWORK 2018/12/04
プログラミングの練習問題を解ける初心者向けサイト
FacebookGoogle+TwitterHatena

情報化社会の発達とともに、プログラミングスキルを持つ人の需要は高まっています。

2020年から、小学校でのプログラミング教育が必修となることもあり、国家レベルで取り組みが始まっています。

今回は、プログラミング学習を志す人に対し、初心者向けの練習問題サイトを紹介します。

プログラミング練習をゲーム感覚でできるサイト

サイコロにGAMEの文字
プログラミングの練習・学習は、モチベーション維持が大切です。

ゲーム感覚で利用できるプログラミング学習サイトは、モチベーションの維持や学習の継続に役立ちます。

練習問題を解いていくことで、自分がどこまで理解しているのか・いないのかがわかりやすくなりますし、「楽しい・面白い」と感じることは記憶の定着向上にもつながります。

そこで、「楽しみながらプログラミングを練習できる」というコンセプトのものを中心に集めました。

練習サイト1.CodinGame

CodinGame
CodinGameは、Web上でゲームを作成しながらプログラミングを楽しめる学習サイトです。

作成するゲームには様々な種類があり、ゲームの仕組みを少しずつ構築していきながら学んでいきます。

作成するゲームは、次第に難易度が上がっていき、その際に構築したアルゴリズムなどは実践的なものです。

単にゲームを楽しむだけでなく、「きちんとプログラミング言語を学習したい!」という方でも満足できるサイトであると言えるでしょう。

Python(パイソン)やJava(ジャバ)はもちろん、様々な言語を網羅しているのも特徴で、学べる言語の幅が大きいのもメリットです。

学びと楽しいを両立したいという方におすすめします。

練習サイト2.CheckiO/Empire of Code

CheckiO-Empire-of-Code
CheckiO/Empire of Codeは、プログラミングと戦略シミュレーションゲームをかけ合わせたWebサービスです。

兵士や戦車などを動かして自軍の基地を強化したり、相手の基地を攻撃したりします。
しかし、ゲーム中の軍の行動はプログラムで行う必要があり、この仕組みが練習要素となります。

例えば相手兵士を攻撃する・拠点を守る・施設の建設といった行動プログラムを作成し、行動させます。

プログラミング言語はPython(パイソン)かJavascript(ジャバスクリプト)のいずれかを選択することが可能です。自分が学びたい方を選ぶと良いでしょう。

全ての行動がプログラムによって動くというゲームであるため、戦略性だけでなく、純粋なコーディング能力も問われます。

ゲームで勝つには、効率の良いプログラムを作成できるようにしなければなりません。

PythonやJavascriptを勉強したい・効率の良いプログラムの作成の仕方を覚えたいという方におすすめします。

練習サイト3.Elevator Saga

Elevator-Saga
Elevator Sagaは、プログラミングを用いて、エレベーターのシミュレーションを行うWebサービスです。

ゲームの目的は、Javascript(ジャバスクリプト)を用いてエレベーターを制御することです。
エレベーターの移動・階数の指定などを、アルゴリズムを構築して行います。

ゲームで作成できるエレベーターアルゴリズムは、実際のエレベーターで使用されているものもあり、答えが複数あるのが特徴です。

実際に存在するシステムをゲーム感覚で構築することができるため、どのような仕組みでエレベーターが動いているのかがわかります。

少し難しいため、ある程度プログラミングに慣れた方や、Javascriptでアルゴリズムを構築したいという方におすすめします。

練習サイト4.Code.org

Code.org
Code.orgとは、コンピューターサイエンスの発展のために運営されている、非営利のプログラミング学習サイトです。

何か特定の言語を学ぶのではなく、プログラミングに必要なロジックや基本概念を学ぶことが目的となっています。

コーディングではなく、ロジックブロックを組み合わせてプログラムを完成させる方式を採用しているのが特徴です。

初めてのプログラミング学習などに向いており、難しいコーディングよりも直感的で楽に学ぶことができます。

コードはよく分からないけど、プログラミングに挑戦してみたいという方におすすめします。

プログラミング練習を言語別でできるサイト

ソファの上に男性2人とノートPC1台
ここまでは、「ゲームをしながら、楽しくプログラミングを覚える」といったサイトを紹介してきました。

次は、逆に「覚えたいプログラミング言語があるから、その学習向けのサイト」を紹介します。

具体的な業種が決まっていて、必要な言語が絞れる人は、そのプログラミング言語の習得から始めるのが効率的です。

ぜひ参考にしてみてください。

Python学習・練習サイト

Pythonのお勉強 問題集
Python(パイソン)向けの学習サイトには、『Pythonのお勉強 問題集』が存在します。

『Pythonのお勉強 問題集』は、Pythonの問題がまとめられている、まとめWikiです。

Webサービスという訳ではなく、和を求める・最小公倍数を求めるといったPyhtonプログラムが紹介されています。

Pythonのアルゴリズムは機械学習などで頻繁に使用されるため、AIの事業に関わっている方は覚えておきたいところです。

様々な問題がまとめられているため、初めてPythonの勉強をする際の参考になります。

Java学習・練習サイト

エンジニアの入り口 【初心者向け】勉強になるJavaの演習問題まとめ
Java(ジャバ)向けの学習サイトには、『エンジニアの入り口 【初心者向け】勉強になるJavaの演習問題まとめ』がおすすめです。

具体的には、アルゴリズムの構築や知識・オブジェクト指向について、詳しく内容が記載されています。

そのため、初めてJavaに挑戦する方におすすめです。

また、エンジニアになりたい人向けの、無料の資料請求や質問メールなどにも対応しています。

プログラミングの勉強は分からないことがあると進めにくくなるので、こうしたバックアップがあると便利です。

C言語学習・練習サイト

C言語 練習問題
C言語向けの学習サイトは、『C言語 練習問題』がおすすめです。

問題と解答は別々になっているため、自分でプログラムを組んでから答え合わせをすることが可能です。

問題は全部で9つのステージに分けられており、計算問題だけでなく、ファイル出力などのプログラム問題なども用意されています。

問題の種類は豊富であるため、ひととおりマスターするだけでも実力がつきます。

初めてC言語に挑戦するという方は、ぜひご覧ください。

Ruby学習・練習サイト

Ruby初心者にオススメ。Array・Hashの練習問題
Ruby(ルビー)の練習には、『Ruby初心者にオススメ。Array・Hashの練習問題』がおすすめです。

『Ruby初心者にオススメ。Array・Hashの練習問題』では、RubyのArrayとHashの使い方に特化しており、ソースコードも紹介されているため、文字列の処理や使い方を覚えるのに適しています。

Rubyは、日本人が開発したプログラミング言語ということもあり、日本語で解説したサイトや書籍も多数ありますので、併せて熟読すると良いでしょう。

プログラミングの練習を中級者レベルにしたい人におすすめのサイト

ビジネスマン【ステップアップ】
ある程度プログラミングに慣れてくると、さらに上を目指したいと思う人もいます。

上達したい人に向け、中級者向けのサイトを2つ紹介します。

初心者の方にはおすすめできませんが、慣れてきたら、挑戦してみてはいかがでしょうか?

中級者向け練習サイト1.TopCoder

TopCoder
TopCoderは、競技プログラミングと呼ばれるコンテストサイトです。

世界中の方が参加しており、自身のプログラムスキルを駆使して競技に臨んでいます。

コンテストは週に複数回行われており、難易度によって開催される日が違うのが特徴です。

自分のレベルに合ったコンテストに挑戦して見ましょう。

コンテストに参加すると、自分の成績にレーティング(格付け)がつきます。
世界中からの参加者と比較して、自分のレベルを知ることができるので、モチベーション維持に活用できます。

また、他の参加者のプログラム例を見ることができるので、参考になります。

サイト内は全て英語表記であるため、訳す必要がありますが、翻訳アプリなどを利用すれば問題ないでしょう。

世界中の方と競い合い、自身のプログラミング能力を高めることができます。

中級者向け練習サイト2.CodingBat

CodingBat
CodingBatは、Java(ジャバ)とPython(パイソン)の、2種類のプログラミングを学べるサイトです。

問題は英語で表記されているため、自分で翻訳する必要がありますが、問題自体はとてもシンプルです。

プログラムを作成し、出力が正しければクリアとなります。

問題の難易度は低いものから高いものまで揃っており、自分のレベルに合ったものを選択することが可能です。

プログラムの内容も短く、アルゴリズムを覚えるといった感じで利用すると良いでしょう。

プログラミングの練習でスキルを上げたらコンテストにチャレンジ

ノートパソコンが複数置かれた机の上で、チームメンバーが拳を合わして結束
プログラミングのスキルが上がったら、プログラミングコンテストにチャレンジしてみるのはいかがでしょうか?

先述のTopCoderをはじめ、様々な場所でプログラミングコンテストが開催されています。

成果物のアプリコンテスト・アルゴリズムを作成する・AIの精度を競う・ハッキングなど、様々な種類のコンテストがあります。

日本で有名なコンテストには、U-22プログラミングコンテストがあります。

自身のスキルを公開したり、他の参加者のスキルを学ぶこともできるため、参加してみてはいかがでしょうか?

まとめ

黒髪女性が屋外でアイパッドを操作
今回は、おすすめのプログラミング練習サイトを紹介しました。

プログラミングの勉強は覚えることが多くて複雑であるため、モチベーションを維持して継続していくのが難しいものです。

紹介した練習サイトを利用して、楽しみながら覚えたりコンテストで競い合ったりして、スキルを磨いていくのがおすすめです。

プログラミングの学習方法についての記事がありますので、併せて参考にご覧ください。