こんにちは。倉内です。
paizaが運営するプログラミング学習サービス「paizaラーニング」で、人気のある言語の1つがC#です。
C#はMicrosoftが2002年にリリースしたオブジェクト指向型のプログラミング言語で、文法はJavaに似ている部分があります。
C#といえばWindowsのデスクトップアプリケーションや企業向け業務システムの開発で利用されるイメージが強いと思いますが、Webサービス開発やスマホプリ開発、Unityを用いたゲーム開発・VR開発など幅広く採用されている言語です。
ただ、プログラミングに初めて触れる方が最初に選ぶ言語としては少し難しいと言われています。書籍などもどちらかというと基礎知識がある人に向けたものが多く、初学者からするとややとっつきづらい印象があるのではないでしょうか。
そこで今回は初心者の方でもC#プログラミングにスムーズに取り組めるオンラインコンテンツやサービス、書籍をご紹介したいと思います。
【目次】
C#の基本を学ぶ
オンライン実行環境がある学習サービス
「オンライン実行環境」とは、Webブラウザ上でコードを書いてプログラムの実行ができる環境のことをいいます。開発環境の構築をしなくてもプログラムを動かせるので、プログラミング初心者の方もスムーズに学習ができます。
【 paizaラーニング 】
C#入門編はこちら
paizaラーニングはブラウザ上で動画を見て学習を進めていく形式です。C#は基礎文法(四則演算、条件文・ループ文)から配列、メソッド・クラス、例外処理といった内容まですべて無料で受講することが可能です。
演習問題が用意されているため、動画を見てから演習で手を動かすことで内容の理解が深まります。
ローカル環境を使って学ぶサービス
実際の業務では、会社の開発用マシンなどに環境構築をしなければならないことが多いため、ここでは自分のPCに開発環境を作って学習を進めていく形式のサイトをご紹介します。オンラインと対比して「ローカル環境」と呼ばれることもあります。
【 ドットインストール 】
C#入門レッスンはこちら
ドットインストールでは、C#のコンパイラであるMonoという環境をローカルに作って学習を進めていきます。講師の方が操作をしている画面を動画で見て真似しながら進めていけるので初心者の方も安心です。
【 北ソフト工房 】
C#練習問題集はこちら
初めてのプログラミングをC#で始める初心者向けに練習問題が用意されています。(環境構築の説明はないので、そこは他のサイトを参考にしましょう)
変数、四則演算、分岐・繰り返しといったプログラミングの基本文法を習得するのに最適です。
【 ++C++; // 未確認飛行 C 】
「C#とはどんな言語なのか」から始まり、C#プログラミングの基本、ライブラリやフレームワーク、メモリ管理にいたるまで、C#に関する内容はすべて網羅されてます。
サンプルコードも豊富なため、初心者にも調べやすい・分かりやすいのが特徴です。
【 .NET Tips - DOBON.NET 】
学習講座とは違いますが、「やりたいことがあるけど、どうコーディングしていいか分からない…」というときにお世話になるのがこのサイトです。
たとえば「文字列を連結する」のページを見てみると、さまざまな方法がサンプルコードとともに紹介されています。
C#プログラミングの基本を学んだあと、Microsoft .NET Framework環境で開発をする際に困ったときはこちらで調べてみてください。
おすすめ書籍(3冊)
確かな力が身につくC#「超」入門 (Informatics&IDEA)
- 作者:北村 愛実
- 発売日: 2017/07/26
- メディア: 単行本
「『超』入門」とついているとおり、プログラミング学習をこれから始める方の最初の一歩としておすすめの1冊です。
易しい文章でイラストも多いので「難しい本は挫折してしまいがち…」という方は試してみてください。
新・標準プログラマーズライブラリ なるほどなっとく C#入門
- 作者:出井 秀行
- 発売日: 2019/03/16
- メディア: 単行本(ソフトカバー)
本書は初めてプログラミングに取り組む人がC#の基本文法を身につけることを目的としているため、分かりやすいのがおすすめポイントです。
サンプルプログラムをWebからダウンロードして実際に動かしながら学ぶとよりよいでしょう。
基礎からしっかり学ぶC#の教科書 改訂新版 (マイクロソフト関連書)
- 作者:WINGSプロジェクト 髙江 賢
- 発売日: 2019/12/20
- メディア: 単行本
すでに他のプログラミング言語の経験がある、C#の基礎は終わったのでもう少しレベルを上げたいという方におすすめの1冊です。
解説がていねいに書かれており、書籍名のとおり「基礎からしっかり学ぶ」のに適しています。
C#の開発環境を使う
IDE(統合開発環境)
【 Microsoft Visual Studio 】
C#はMicrosoftが作ったプログラミング言語なので、Microsoftが提供しているVisual Studioがまず候補に挙がると思います。.NET Frameworkにも対応しています。
Community版(無償、ただし利用条件あり)とEnterprise版、Professional版があります。
【 SharpDevelop 】
ShaarpDevelopは、オープンソースで開発されている.NET FrameworkのためのIDEです。公式は英語なのでインストール手順などはこちらの記事を参考にすると分かりやすいです。
【 Eclipse 】
Javaを勉強している人だと「え?EclipseはJavaの開発環境では…?」と思うかもしれませんが、プラグインを入れることで他の言語の開発環境としても使えます。
あえてEclipseを選択する理由はない気もしますが、すでにJava開発でインストールされているという方は試してみてもいいかもしれません。こちらの記事が参考になります。
【 PaizaCloud 】
PaizaCloudは、ブラウザを開くだけでエディタ、Webサーバ、DBなどの開発環境が完了するためすぐに開発を進めることができるクラウド開発環境です。
弊社エンジニアが実際にPaizaCloudを使って開発した記事も参考にしてみてください。
オンラインエディタ
ブラウザ上でC#を動かせる(コードを自由に記述できる)サービスを紹介します。本格的な開発環境ではありませんが、ちょっと試してみたいとき、サンプルコードをコピペして動かしてみたいときなどに便利です。
【 .NET Fiddle 】
統合言語クエリ(LINQ)が利用できるオンラインエディタで、自動実行機能がついています。C#の他にVB、F#も利用できます。
コードのシェアや他の人との共同プログラミングも可能です。
【 C# Pad 】
シンプルなオンラインエディタで、利用できるクラス、ライブラリに制限はありますがプログラムの動作確認には問題ないでしょう。
【 C# Online Snippet Compiler 】
こちらもLINQが利用できるオンラインエディタで、メソッド入力の保管機能があります。海外サービスですが日本語の表示は可能です。
ゲーム感覚で遊びながら学ぶ
プログラミング問題を解いてステージや物語を進めていくサービスを紹介します。グラフィックなどが凝っているものも多く、楽しく学ぶことができます。
【 コードガールこれくしょん 】
paizaが提供しているプログラミング学習ゲーム『コードガールこれくしょん』(通称『ガルこれ』)は、プログラミング言語の基礎を楽しく身につけることができます。C#以外の言語でも遊べます。
はじめはコードに書かれた間違いを見つけて修正するといった簡単な内容から始まり、ゲームを進めることで少しずつ難易度が上がります。
ひとつひとつのゲームステージは3分ほどでクリアできるようになっているので、すきま時間にプログラミング学習をしたいという方にもおすすめです!
他にもゲームでプログラミングを学べるコンテンツをご用意していますので一度覗いてみてください。
【 CodinGame 】
CodinGameは、シューティングゲームやコードゴルフなど、さまざまな遊び方でプログラミングが学べるWebゲームです。
グラフィックがかなり作り込まれており、わくわくしながらプログラミングをすることができます。最初はコーディングの基礎を学べるトレーニングコースから始めましょう。
【 Codewars 】
Codewarsはクイズ形式で豊富なプログラミング問題を解くことができます。
レベル表示やユーザーランキングもあるので、自分の実力を試したり、より上のレベルを目指したりすることで楽しく取り組めます。サイトがおしゃれでカッコいいのも目を引きますね。
競技プログラミングで鍛える
競技プログラミング(通称、競プロ)は、コーディングスキルやアルゴリズムを考える力を鍛えるのはもちろん、ランキングやスコアを上げることがモチベーションになり継続した学習につながります。
C#で受験できるものを集めましたのでぜひチャレンジしてみてください!
【 paizaスキルチェック 】
paizaのスキルチェックでは、プログラミングスキルをS・A・B・C・D・Eの6段階評価(ランクづけ)します。各問題につき10個以上の複数テストケースでチェックし、負荷試験と実行速度の測定、そして解答時間もスコアに影響します。
ランクは就職・転職の求人応募に影響するためスキルチェックの本番問題は1度のみ*1の挑戦となります。代わりに「レベルアップ問題集」という、練習問題(テストケースや一部解答の参照も可能)を公開していますのでご活用ください。
【 AtCoder 】
コンテストは週末に開催されることが多く、コンテスト本番の成績でレーティングされます。(詳細スケジュールやルールは公式サイトをご確認ください)
常設の練習コンテストもあり、公式サイトの初心者向けの手引きも充実しています。過去問はいつでも挑戦でき解答・解説も用意されています。
【 yukicoder 】
競技プログラミングは海外サイト(英語)が圧倒的に多いのですが、こちらも数少ない日本語対応のサイトです。
テストケースが公開されており、また、テストケースが通らなかった場合、何が間違っていたのかが見られるのが特徴です。
実践的な開発について学ぶ
C#に限りませんが、基本的な文法だけを学んでも実務的な開発力を身につけるのは難しいため、それらについて学べる書籍なども合わせてご紹介します。
開発手法
- 作者:Gary McLean Hall
- 発売日: 2018/06/05
- メディア: Kindle版
業務で開発する際に必要な知識を得ることができます。C#に特化した内容はもちろん、アジャイル開発の網羅的な内容も学べます。
また、タイトルの「Adaptive Code」のとおり、開発チームが技術的負債とどう向き合っていくかも解説されています。
実戦で役立つ C#プログラミングのイディオム/定石&パターン
- 作者:出井 秀行
- 発売日: 2017/02/18
- メディア: Kindle版
C#で実践的かつ効率的なコードを書く際に参考になる1冊です。
内容は中級者向けのためこれまで紹介してきた学習コンテンツで基礎を身につけたあとに手にするのがおすすめです。
まとめ
C#を基本から実践まで学べるコンテンツや書籍、C#開発に欠かせない環境構築や開発手法についてご紹介してきました。
冒頭にも書いたとおりC#は利用用途が幅広く、学習コンテンツや書籍も充実しているので、初期の学習コストは少し高めかもしれませんがおすすめのプログラミング言語です。
今回調べてみて意外(?)にもブラウザ上でC#の学習講座を受講してそのまま演習問題などを実行できるサイトが少なかったので、paizaラーニング以外にも知っているという方はぜひ教えてください。(ローカルに環境を構築して学習するサービスはもちろんたくさんあるのですが…)
paizaラーニングでは、C#が学べる講座だけでなくDB(SQL)やWeb技術、アルゴリズムなど動画で分かりやすくプログラミングが学べる講座を多数公開していますのでぜひ活用してください。
詳しくはこちら
「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。
そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。
詳しくはこちら
*1:再挑戦は可能ですが、ランクの取得はできません