C#の書籍はたくさん出版されていますが、その中でもおすすめの本を厳選してみました。この記事では、以下の様な方を対象にした本を紹介します。
- プログラミング初心者の方
- C#が書けるようになってきた方
- 次の言語としてC#を学びたい方
- 実践的なC#の使い方を知りたい方
それでは、初心者の方向けの入門書から紹介していきます。
猫でもわかるC#プログラミング
http://www.amazon.co.jp/dp/4797361344
まだC#を使ったことがない方のための初心者向け入門書です。C#の基礎からわかりやすく解説されています。言語仕様のすべてを説明しようとすると量が多くなってしまい、初めての方には学習が難しくなってしまいますので、この本では基本的な部分のみを扱っています。まずは、この本で基礎を学ぶことをおすすめします。主にコンソール(文字のみ)でプログラミングを学習していくので、フォームやウェブサービスなどの開発方法は説明されていません(フォームは巻末で少し説明されています)。実践的な開発方法は、別の書籍で学ぶことになるでしょう。
10日でおぼえるC#入門教室
http://www.amazon.co.jp/dp/4798128562
基礎がわかってきて、少しC#が書けるようになってきたらこの教本を読んでみましょう。実際に使える、簡単なプログラムを作って学習していく形式になっています。10日で覚えるとタイトルにあるように、1日ごとに区切って解説されていますので、毎日徐々に勧めていけるでしょう。フォームのプログラミングも扱っていて、WinFormsの基本的な使い方がつかめます。また、Windowsストアアプリの作り方も載っていますので、アプリストアでの販売を目指してみてはどうでしょうか?
基礎からわかる C#
http://www.amazon.co.jp/dp/4863541813
ある程度、他の言語でプログラミングができる方にはこの解説書がおすすめです。C#の言語仕様を幅広く取り扱っています。内容の幅が広いので、あまり掘り下げて解説されてはいませんが、C#の全体像をつかむには最適です。非同期処理についても解説されており、今では当たり前になったマルチコアプロセッサ(CPU)をフル活用するプログラミングを学ぶことができます。この本で、だいたいの言語仕様を把握してから実践的な開発をしていくといいでしょう。
プログラミングC#
http://www.amazon.co.jp/dp/4873116503/
他の言語で十分な知識を持っている上級者のための解説書です。C#の言語仕様について、非常に詳細に解説されています。700ページを超えるボリュームなのでプログラミング初心者の方には向いていません。「WPF」や「ASP.NET Web Form」、「ASP.NET MVC」についても説明されていますので、これ一冊でC#のかなりの部分を網羅しています。何度も改定を重ねているオライリーの本なので、おすすめです。余談ですが、オライリー本は統一された美しい装丁なので、集めて並べたくなりますね。
プログラミング.NET Framework
http://www.amazon.co.jp/dp/B00M90AN4C/
「.NET Framework」に含まれる「CLR(Common Language Runtime)」の仕様を深く解説した解説書です。C#をより深く知りたい上級者の方向けです。開発元のマイクロソフトの公式解説書なので、とても詳細に説明されています。C#はCLR上で動作しているので、CLRの仕様を知ることでC#への理解が深まります。これからメインの言語として、使い込んでいこうと思う方であれば読んでおいて損はないでしょう。
C#実践開発手法
http://www.amazon.co.jp/dp/4822298477
実践的な開発を進めていくための開発手法を説明した実用書です。C#については理解したが、開発にあたって全体的なプログラムの構築方法を知りたい方におすすめです。ある程度の規模を持ったプログラムになってくると、言語自体を使えるだけでは開発をすることは難しくなってきます。それは、プログラミングの大部分はバグ修正や仕様変更に費やされるからです。あらかじめ、しっかりした全体の設計やスタイルを持っていなければ修正や変更が困難になるばかりか、最悪の場合は破綻してしまいます。この本では、実践的な全体の設計方法やプログラミングのスタイルを教えてくれるので、修正や変更に強いプログラムを作ることが可能になります。
C#ショートコードプログラミング
http://www.amazon.co.jp/dp/4822298264
同じ動作でもより短いコードにするための方法を紹介したハンドブックです。自分の書いたコードがなんだか読みにくいなと思ったら読んでみてはいかがでしょうか?プログラミング言語に正解はなく、同じ動作をするプログラムもいくつもの方法で書くことができます。しかしながら、長いコードや入り組んだプログラムは理解しにくく、修正や変更の障害となります。また、他の人が読む場合はより困難です。一般的に長いコードよりも短いコードの方が、読みやすいので優れています。C#は長い歴史の中で、さまざまな機能を取り入れてきたので、短いコードを書くための便利な機能がそろっています。特に、「LINQ(Language Integrated Query)」はC#3.0で導入されたデータ処理機能で、生産性にかなり影響を与えますので、しっかり理解しておきましょう。
C#によるマルチコアのための非同期/並列処理プログラミング
http://www.amazon.co.jp/dp/4774158283
非同期処理と並列処理に焦点を絞った解説書です。プログラムで非同期処理や並列処理を使いたい方におすすめします。非同期処理や並列処理は必ず使うといったものではありませんが、要件によっては必須になってきます。C#ではかなり簡単に実装できるようになっていますが、実装方法を誤ると特定しづらいバグが発生しますので、この本で正しい方法を学んだほうがいいでしょう。これからの、マルチコアプロセッサ(CPU)を活用するには必須の知識ですね。
独習ASP.NET
http://www.amazon.co.jp/dp/4798144029
ウェブアプリケーション構築フレームワーク「ASP.NET Web Form」の入門書です。C#でウェブサイトやウェブアプリケーションを開発したい中級者の方向けです。「ASP.NET Web Form」はそれほどウェブやHTMLの知識がなくても、フォームアプリのようにボタンやテキストボックスをドラッグ&ドロップで配置していくことができるので、直感的に開発を進めることができます。データベースとの連携やユーザーの認証、Ajaxなどウェブサービスに必要なことはほぼ網羅していますので、実践的な開発を行うことができるようになります。
ASP.NET MVC5実践プログラミング
http://www.amazon.co.jp/dp/4798041793
モダンなウェブアプリケーションを開発するためのフレームワーク「ASP.NET MVC」の実用書です。「ASP.NET MVC」は「ASP.NET Web Form」よりも細かい制御ができるようになる反面、覚えることが多く、HTMLやCSSなど他の知識も必要になってきますので初心者の方には難しいです。ある程度、C#の経験を積んでからの方がいいでしょう。「ASP.NET MVC」について、基本的な説明から応用、テスト方法まで解説されていますので、この書籍だけで一通りのことを知ることができます。
プログラミングWindows 上/下
http://www.amazon.co.jp/dp/482229496X
Windowsストアアプリの開発方法を説明したマイクロソフト公式解説書です。ストアアプリの開発を考えているならこの書籍が一番おすすめです。ストアアプリは「WPF」でも使われている、「XAML
を使って画面を構築します。基本的に非同期処理が強制されており、ローカルファイルの直接アクセスできないなど通常のデスクトップアプリにはない制限事項があります。そのため、デスクトップアプリとは違った開発方法が必要です。この本では、上下巻合わせて1000ページ以上に渡り詳細に解説されているので、ストアアプリ解説書の決定版と言えるでしょう。
Unity5入門 最新開発環境による簡単3D&2Dゲーム制作
http://www.amazon.co.jp/dp/4797384433
C#でゲーム開発ができる無料開発環境「Unity」の入門書です。WindowsやAndroid、iOS向けのゲーム開発をするならこの本を読んでみましょう。基本的な説明から実際に簡単な3Dゲームや2Dゲームを作ることで開発方法を学んでいけます。作ったゲームはAndroidのPlayストアやiOSのApp Storeで販売することもできますので、制作意欲も湧くのではないでしょうか?
C#ならいろんなことができる!
C#を学ぶなら、まずは言語仕様とベースクラスライブラリ(.NET Framework標準のライブラリ)を一通り学習してから、作りたいものに応じてデスクトップアプリなら「WinForms」や「WPF」、ウェブサービスなら「ASP.NET Web Form」や「ASP.NET MVC」、ゲームアプリなら「Unity」を学習していきましょう。紹介した書籍で、上記のことは学習できますので、気に入った本を読んでみてはいかがでしょうか。あなたの読みたい本はありましたか?
フリーランスになるために必要な知識やスキルアップの方法等、様々なお役立ち情報を発信していきます。
(リモートワーク案件に強いフリーランスエージェント「クラウドワークス テック」を運営)