こんにちは。倉内です。
C#はMicrosoft社が2002年に正式リリースしたオブジェクト指向型のプログラミング言語です。
Microsoftが提供しているVisual Studioという統合開発環境を利用でき、初心者でもそれほど苦労せず環境構築ができるのが魅力です。
Webサービス、スマホアプリ、業務システム、組み込み系など多くの開発で採用されており、ゲームエンジンUnityを使うことでハイクオリティな3Dゲームの開発も可能な言語です。
今回は、C#を基礎から学びたい方、プログラミング問題をたくさん解いてもっと勉強したい方向けに練習問題があるサイトを集めましたのでご紹介します。短期間で実力を伸ばしたい場合、問題に取り組むのがとても効果的ですのでぜひ活用してみてください!
オンラインで問題が解けるサービス
【 paizaラーニング レベルアップ問題集 】
「レベルアップ問題集」ではさまざまな難易度のプログラミング問題を公開しています。
四則演算やif文・for文といった基礎文法が分かれば解ける問題から、アルゴリズムを使って計算量を考慮しながらじっくり考える問題までレベルに合わせて選ぶことができます。
すべての問題でテストケースの入力値を見ることができ、一部の問題では解答例のコードも用意されています。中でも着実に力をつけたい方におすすめなのは「Bランクレベルアップセット」です。
paizaでは問題の難易度を難しい順にS・A・B・C・Dランクと分けており、この問題集ではプログラミング初心者の方が徐々に難易度の高い問題が解けるように問題が選ばれています。
【 Codewars 】
Codewarsはクイズ形式で豊富なプログラミング問題を解くことができます。
レベル表示やユーザーランキングもあるので、自分の実力を試したり、より上のレベルを目指したりすることで楽しく取り組めます。
サービス登録時にひとつプログラミング問題をクリアしないと登録できないというのが登竜門みたいでおもしろいですよね。比較的易しい英語で書かれているので英語の勉強にもおすすめです。
【 コードガールこれくしょん 】
paizaが提供しているプログラミング学習ゲーム『コードガールこれくしょん』(通称『ガルこれ』)は、プログラミング言語の基礎を楽しく身につけることができます。
はじめはコードに書かれた間違いを修正するといった簡単な内容から始まり、ゲームを進めていくと徐々に難易度が上がります。
プログラミング学習を始めたばかりの方、もしくはC#を初めて学ぶので基礎を固めたい方はもちろん、ひとつのステージは短時間でクリアできるので「じっくり勉強に取り組む時間はないけどすきま時間で勉強したい!」という方にもおすすめです。
【 エンジニアが死滅シタ世界 】
『エンジニアが死滅シタ世界~アンドロイドとふたりぼっちで生きろ~』は、プログラミング問題を解きながら物語を進める近未来SFアドベンチャーゲームです。
さきほどの『ガルこれ』ではちょっと物足りないかなという方は、こちらでもう少し難易度の高い問題に挑戦してみてください。
解答例となるコードは以下の記事で公開しています。
【 AtCoder 】
AtCoderは言わずと知れた競技プログラミングサイトですが、3000以上の過去問題にいつでも挑戦することができ解答・解説も用意されているため、問題をたくさん解きたい方にもおすすめです。
登録後は初心者向け問題集「AtCoder Beginners Selection」で問題を解いてみてください。
【 paizaスキルチェック 】
プログラミング問題を解く力がついてきたなという方は、paizaのスキルチェックで問題を解いてみてください。
スキルチェックでは、プログラミングスキルをS・A・B・C・D・Eの6段階評価(ランクづけ)します。負荷試験と実行速度の測定、そしてさきほど紹介した「レベルアップ問題集」と異なるのは制限時間があるため解答時間もスコアに影響します。詳しくはこちら
また、ランクは就職・転職の求人応募に関係しているのでスキルチェックの本番問題は1度のみ*1の挑戦となります。
ローカル環境で問題を解くサービス
C#の開発環境を構築しよう
以下で紹介するサービス、書籍を利用する場合は自分のPCに開発環境を構築する必要があります。ローカル環境の構築と言ったりします。
冒頭に書いたとおりそれほど難しい手順ではないので、ぜひやってみてください。Visual StudioはMicrosoftの公式サイトからダウンロード可能です。
【 ++C++; // 未確認飛行 C 練習問題集 】
C#を学習し始めたら必ずと言っていいほどお世話になるサイトで、調べものをしているときにたどり着くことが多いですが練習問題集も用意されています。
基本的な内容はもちろん、データの構造化、コンストラクタ、抽象メソッド・クラスなど初心者が手を出しづらいところまで網羅していてやりごたえがあります。
【 一週間で身につくC#言語の基本 】
プログラミング初心者でも1週間でC#を身につけることを目標にした学習サイトです。条件分岐、繰り返し処理、配列…など、内容別に練習問題が用意されています。
問題だけでなく基本文法を学べる講座があり、基本編・応用編に分かれているため初心者でもスムーズに学習できます。
また、Udemyのオンライン講座としても提供されています。
【 北ソフト工房 】
初めてのプログラミングをC#で始める初心者向けのサイトで、基礎文法からクラスやメソッドを理解するための問題まで用意されています。C#練習問題集はこちら
特に変数、四則演算、分岐・繰り返しといったプログラミングの基本を習得するのに最適です。
【 TECH Projin 】
C#の練習問題が12記事あり、各記事に複数の問いが用意されています。
「実行したら次のうちどの結果になるか?」「変数宣言と初期化の記述で正しいものは?」といったクイズ形式の問題があるのがユニークですよね。
コードを書く問題には解答コード・解説もあるため初心者でも挫折することなく解き進められます。
まとめ
C#でプログラミング問題をたくさん解けるサイトをご紹介しました。
C#はMicrosoftが作ったということで、統合開発環境(IDE)であるVisual Studioの機能拡充にも力が入っていて無償の範囲でも十分な機能がそろっています。
プログラミングを初めて学ぶという方にもおすすめの言語なので、ぜひたくさん問題を解いて力をつけていってください!
なお、C#の基本から学びたいという方はpaizaラーニングで無料公開中の「C#入門編」を受講してみてください。動画で学びながらブラウザ上で演習問題を解くことができます。
「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。
詳しくはこちら
そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。
詳しくはこちら
*1:再挑戦は可能ですが、ランクの取得はできません