プログラミング学習では、コードを書いてアウトプットすることがとても大切です。
コードを書けるようにならなければ、どれだけ知識をインプットしてもあまり意味がありません。
さらにアウトプットには、知識が記憶に定着しやすくなるメリットもあります。
これまで学習してきたことのアウトプットに、プログラミングの練習問題を利用してみてはいかがでしょうか。
あなたが今どのくらい学習内容を理解できているか、何が足りていないのかなどがわかるはずです。
そこで今回は、プログラミング学習の初心者でも取り組める、練習問題のインターネットサイトや動画、本を紹介していきます。
特に実践形式のプログラミング問題は、現場で役に立つスキルの習得につながりますので、プログラムをたくさん書いて、アウトプットに役立ててみてください。
【お知らせ】
2000名以上の人生を変えるキッカケになった「好きなことで生きていく!WEBデザイナーという働き方セミナー」では、
などをお伝えしています。今だけ無料で開催しているので「WEBデザインの学び方がわからない」「WEBデザイン業界について知りたい」という方はぜひご参加ください。
>>詳しくはこちら
プログラミングの練習問題に取り組むメリット
まずは、プログラミングの練習問題に取り組むメリットを確認しておきましょう。
自分が何のために問題に取り組むのか、メリットを把握するのとしないのとでは身の入り方が違ってきます。
自分の苦手なことがわかる
プログラミング学習の途中で出てくる自分の苦手なことは、きちんと知って克服することが必要です。
練習問題に取り組むと自分の得意なことだけではなく、苦手な部分や理解不足な部分がわかります。
苦手を把握し、克服すべきポイントを集中的につぶしていけば、効率的に次へステップアップしていくことが可能です。
苦手をつぶすことで自信も生まれ、理解度と比例してプログラミングの学習が楽しくなっていくでしょう。
また、苦手なポイントが出てきた際には、なぜ苦手だと思っているのか、なぜ理解できていないのかを分析し、自身の勉強法が合っているのかを振り返ってみるのもおすすめです。
より効率的な学習法に気づくなど、新しい発見が生まれるかもしれません。
実践を想定した演習ができる
学習がインプットに偏ると実際にコードを書くイメージが湧きにくく、普段から書き慣れていないとすぐには書けません。
のちほど紹介するプログラミング問題を扱うサイトや動画などでは、多くの実践的な問題に触れることができ、どのような場面でプログラミングが活用されるのか具体的にイメージできます。
また、転職や就職での採用面談時には、今回紹介するサイトで掲載されている練習問題と似た問題が出題されることがあり、採用基準の1つになっている場合があります。
プログラミングの仕事を依頼された場合や採用面談のロールプレイングだと意識して取り組むと、より実践に近い演習になるでしょう。
問題解決能力が身に付く
問題解決能力は、実際に仕事を請け負いたい方やプログラマーとして働きたい方であれば、必ず身に付けておきたいスキルです。
何が原因でエラーになったかを見つけ出し、修正するところまで自分一人でできるようにしておきましょう。
プログラミングは奥が深いので、すべての知識を覚える必要はありません。
単に知識をたくさん覚えようとするよりも、問題に挑戦して失敗からどうやって修正し解決に導くのか、または知識が無いなかでも答えを見つけるにはどうするか、という考え方を身に付けることがポイントです。
プログラミング問題への取り組み方
プログラミング問題に取り組むときは、記述し答えを確認して終わりではありません。
練習問題を効果的に活用するための、取り組み方のポイントを紹介します。
コードを書いて実行までおこなおう
練習問題ではコードを書き、実行結果を確認するところまでおこないましょう。
なぜならプログラマーが実行結果を確認しないで提出することは、実際の現場では有り得ないからからです。
あなたが今後、プログラミングの仕事に就いたり、請け負ったりしていきたいのであれば、練習問題であってもきちんと実行されるまでは、何度でも修正をおこなう根気を養う必要があります。
とはいえ、プログラムの実行までおこなうには、環境構築が必要になる場合があります。
環境構築とは、プログラミング言語に応じたハードウェアとソフトウェアを用意することです。
もし自分で環境構築をするのが難しければ、最近ではWebブラウザ上でコード編集できるオンラインコードエディタを利用できます。
プログラムの動作確認ができる環境で、プログラミング問題に取り組みましょう。
間違えた問題は復習しよう
学生時代のテストや参考書の勉強と同じで、間違えたところの復習は大事です。実際の現場では、間違えた問題は自力で解決しなければなりません。
正しく内容を理解をしているか復習し、時間をあけて1週間後などにまた同じ問題を解いてみるとよいでしょう。
また復習する際には、間違えた理由を分析することもおすすめです。
間違えた原因には、考え方がわからなかった、問題文をきちんと理解できていなかった、などが出てくることでしょう。
たとえば、問題文をきちんと理解できていなかったのであれば、図を書いて考えてみたり、内容を整理できるよう読み方を工夫する必要があります。
実際にプログラミングの依頼を受けるとなると、プログラミングの要件は練習問題よりもっと複雑になることはあります。
さらに、クラウドソーシングなどではテキストベースでの依頼も多いので、問題文(指示書)をきちんと読んで理解することは思いのほか重要なことです。
【お知らせ】
まずは無料でWEBデザインを学びませんか?
デザインに少しだけ興味がある方に向けて、豪華な無料プレゼントを用意しました。
✔️ WEBデザイン20レッスン
✔️ WEBデザイナータイプ診断
✔️ 60分でバナーが作れるレッスン動画
✔️ 月収3万円が叶う!副業ロードマップ
✔️月100万稼いだデザイナーによる特別動画講座
プログラミングの練習問題ができるおすすめサイト13選
プログラミング問題に取り組むことができるWebサイトは数多くありますが、その中から厳選した13のサイトを紹介します。
ゲーム形式やコンテスト形式など、さまざまなタイプがあるので自分に合ったものを探してみてください。
paizaラーニング
paiza(パイザ)ラーニングは、ITやWebエンジニアに特化した転職者、就職者向けの学習サイトです。
Webブラウザ上でプログラミングを実行できるので、環境構築が不要です。
学習コンテンツは、オンラインの動画を使ったプログラミング入門で、動画1本が3分程度のためスキマ時間に学習でき、それぞれのチャプターに応じた演習課題が用意されています。
演習課題には以下の言語があります。
- Java
- Python
- Ruby
- PHP
- C言語
- SQL
- JavaScript
- HTML、CSS
PyQ
PyQ(パイキュー)は、完全オンライン学習サービスで、Pythonの初級者~中級者におすすめです。
PyQ上のWebアプリケーションを起動すると作成したプログラムを実行できるので、自分で環境構築する必要がありません。
実践的な問題が1,000問以上用意されています。
ライトプランとスタンダードプランと2種類のプランがあり、それぞれ月額費用がかかります。
実践に近いPythonのコード実装演習ができるので、初級を学んで次にステップアップしたいと考えている人におすすめです。
Rubyがミニツク
Rubyがミニツクは、無料で利用できるRubyに特化したプログラミング学習サイトです。
コースにはRuby入門コース、Ruby on Rails入門コース、Ruby演習コース、Certified Ruby Programmer Silver Preparation Course(認定ルビープログラマーシルバー準備コース)、技術者認定試験対策コースの5つあり、初心者から上級者までレベルに応じて多くのことが学べます。
コースに合わせて選択式の問題集形式のドリルと、コードを書く演習課題が用意されています。
Quest
Quest(クエスト)は、オンラインプログラミング学習サービス「Progate」が、2021年7月から期間限定で実験的に公開しているプログラミング問題サイトです。
用意されているのは「コードリーディング問題」と「アルゴリズム問題」の2種類で、それぞれ3~4ステップ用意されています。
コードリーディングにはRuby on Railsの知識、アルゴリズム問題にはJavaScriptの知識が必要です。
ただし、このサイトには問題を解くための学習コンテンツや答えは用意されていません。
わからなければ、自分でインターネットの情報を調べながら解いていくことになります。
また公開が期間限定とされていますが、いつまでとは明記されておらず、サイトの閉鎖や問題の変更、仕様が変更される可能性があります。
TECH PROjin
TECH PROjin(テックプロジン)は、IT専門スクール「システムアーキテクチュアナレッジ」の講師陣が運営するブログサイトです。
初中級者向けのサイトで、ソフトウェア開発またはインフラ技術の基礎を学べます。
主に、内容理解ができているかを確認できるプログラミング問題になっています。
使用可能な言語は以下になります。
- Python
- HTML、CSS
- PHP
- Java
- C++、など
コード・ガールこれくしょん
コード・ガールこれくしょんは、前述で紹介したpaizaが運営するソーシャルゲーム形式のプログラミング問題のインターネットサイトです。
ナビゲーターと一緒にミッションに挑戦し、手に入れたコインやダイヤでガチャを回してコードガールを集めていくルールになります。
ストーリー性がありゲーム感覚で、楽しみながらプログラミング問題に取り組めるでしょう。
対応言語は以下になります。
- PHP
- Ruby
- Java
- Python
- C
- C#
- C++
- JavaScript
Elevator Saga
Elevator Saga(エレベーターサガ)は、JavaScriptでエレベーターの動きをプログラムし、効率よくエレベーターを動かすアルゴリズムを考える問題です。
ステージによって「一定時間内に何人を輸送する」という条件があり、ゲーム感覚でクリア目指してコードを追記、修正し、エレベーターの動きを制御します。
Coding Bat
Coding Batは、JavaとPythonの練習問題がまとめられているサイトで、問題数が豊富にあります。
基礎的な問題や簡単なアルゴリズムの課題が与えられています。
シンプルなサイトなので、問題だけに集中したい方におすすめです。
Aizu Online Judge
Aizu Online Judge(略してAOJ)は、コンピュータの専門大学である会津大学が構築した、プログラミング問題のオンライン採点システムです。
初級者から上級者向けまで、プログラミング問題が豊富に用意されており、問題に挑戦すると自動で採点されてランキングが付けられます。
競技対策だけではなく、プログラミングの入門教材としての利用もできます。
以下のプログラミング言語が多く使われているようです。
- Java
- Python
- C++
- C
TopCoder
TopCoderは、プログラミングコンテストをおこなうと同時に、ソフトウェア開発のクラウドソーシングもおこなうプラットフォームです。
2001年に設立され、世界190ヵ国の開発者やデザイナー150万人以上が参加しており、過去のコンテストの成績によって色でランク付けされます。
最近では日本の企業もプログラマーを採用する際に、TopCoderのランクを確認するケースもあるようです。
世界中のプログラマーと切磋琢磨するため、ハードルが高そうに感じるかもしれませんが、コンテストではレベルに応じた問題が出題されるので初心者でも参加できます。
使用可能な言語は以下になります。
- C
- C++
- Java
- JavaScript
- Python
- PHP、など
AtCoder
AtCoderは、オンラインで参加できるプログラミングのコンテストサイトです。
コンテストが開かれるのは土曜日または日曜日の午後9時ですが、コンテストがない期間は約3,000問と豊富な数の過去問に挑戦できます。
アルゴリズムに特化しているのが特徴で、ランクを上げると就職に有利に働くこともあるようです。
使用される言語は以下になりますが、ダントツで多く使われているのは「C++」です。
- C++
- Python
- Java
- C
- C#
- Ruby
HackerRank
HackerRankはオンライン上でプログラミング問題を解き、解いた問題数によってバッジを獲得しランキング化されるサイトです。
成績がよいと企業からのオファーを受け取ることもあります。
コンテストも用意されており、ゲーム感覚でプログラミングの課題に取り組むことができます。
使用可能言語は以下になります。
- C
- C++
- Java
- Python
- Ruby
- 人工知能
- データベース
基本情報技術者試験ドットコム
基本情報技術者試験.comは、基本情報技術者試験を受験予定の方への情報の提供や合格へのサポートを目的としたWebサイトです。
基本情報技術者とは国家試験の1つで、プログラマーやシステムエンジニアなどのIT職に従事している人、またはこれからなろうとする人を対象にした試験です。
過去問や過去問の解説をまとめており、おすすめの問題集なども紹介しているサイトですので、受験を考えている方は参考にしてみてください。
プログラミング練習問題ができるおすすめの動画3選
YouTubeではさまざまなチャンネルが運営されており、プログラミングに関する情報動画も数多く投稿されています。
視覚と音声で記憶に残りやすいので、自分にとって理解しやすい動画を探してみるのもよいでしょう。
プログラミングの練習問題の投稿を見つけましたので、ここでは3つ紹介します。
【初学者必見!】Python基礎力を底上げするための特訓20問 vol.1
「いまにゅのプログラミング塾」は、初学者から中級者向けにPython、Google Apps Scirpt、AI機械学習の講座を投稿しているチャンネルです。
今回は、Pythonの初学者向けの演習20問動画を紹介しましたが、他にも演習100問動画などもありバラエティに富んでいます。
いろいろな演習があるので、腕試しをしたい人におすすめです。
【HTML入門】
「CreatorQuest」は、Webサイト制作に必要なHTMLに関する動画を投稿しているチャンネルです。
紹介するのはHTMLの基礎的な練習問題動画で、テーマはよくある質問ページのコード作成、目標タイムは20分になっており、動画の後半では解説もおこなっています。
練習問題は少ないですが、HTMLの基礎を学べる内容になっています。
A×B=XとなるAとBの組み合わせ数を求めよう【プログラミング練習問題】【Scratch/スクラッチ】
「Willow / ウィロー」は、プログラミングの練習問題や解説動画を投稿しているチャンネルです。
上記で紹介した動画の解説はScratchでおこなっていますが、他の言語でも考え方は同じですので、PythonやC言語などでも問題にチャレンジできます。
プログラミング練習問題ができるおすすめの本3選
本を使ってプログラミング問題に挑戦したいなら、出版された年が新しいものを選ぶのがおすすめです。
プログラミングの練習問題ができる、近著のおすすめ本を3つ紹介します。
『4つの言語で解ける 実践プログラミング問題集 ―― C, C++, Java, Python』
前述のAizu Online Judgeで紹介した、会津大学で教える准教授らによって作られたプログラミングの問題集です。
C、 C++、 Java、 Pythonの4つのプログラミング言語それぞれで、問題解決を通して、プログラミング言語の基本文法と基礎的なアルゴリズムを学べます。
構文などを学んだけれども、プログラムが書けずに悩んでいる方におすすめです。
『Python実践データ分析100本ノック』
実際のビジネスの現場を想定した100の例題を解くことで、現場の視点が身に付き、技術を現場に即して応用できる力をつけられるよう設計された問題集です。
どのような場面で使えるのか、を具体的に想定して例題が作られているので、ビジネスの現場で役立つデータ分析を練習できます。
このシリーズは他にも「機械学習100本ノック」や「データ加工/可視化100ノック」などのシリーズがあるので、Pythonの学習目的に合ったものを選ぶとよいでしょう。
『HTML教科書 HTML5プロフェッショナル認定試験 レベル1 スピードマスター問題集 Ver2.0対応』
フロントエンド開発者の実力証明に必須の、LPI-Japanが主催する「HTML5プロフェッショナル認定試験 レベル1 Ver2.0」に対応した問題集です。
HTML5プロフェッショナル認定試験には、レベル1とレベル2があり、レベル1ではWebコンテンツ制作の基礎実力を測ります。
ちなみにレベル2の試験は、システム間連携や最新のマルチメディア技術に対応したWebアプリケーション、動的コンテンツの開発と設計の能力を測る内容です。
本書は、網羅的な学習から資格取得に向けた効率的な学習まで、幅広いニーズに対応可能な問題集になっています。
実践形式の問題とはやや傾向が異なりますが、受験を考えている方や試験形式でHTMLに関する知識を深めたい方におすすめです。
まとめ
プログラミングの練習問題ができるサイト、動画、本を紹介してきましたが、気になるものはあったでしょうか
プログラミングの学習では、実際に手を動かしアウトプットすることはとても重要です。
実践形式の問題を活用して、たくさんアウトプットをおこなうとよいでしょう。
最近では、無料のインターネットサイトや動画でプログラミング問題が提供されていて、簡単に誰でもプログラミング問題に挑戦が可能です。
コンテスト形式やプログラミング競技であれば、自分の実力を客観的に把握できます。
今回紹介したサイトや動画、本を使ってさまざまなプログラミング問題に挑戦し、スキルアップに役立ててください。
質問や感想があればご記入ください