未経験でも案件を任されるようになるための第一歩!C#の入門書3選

18/10/08 18:12:27     19/05/11 23:35:11

C#の入門

C#はマイクロソフトが開発したプログラミング言語です。

ゲームエンジンUnityによるゲーム開発で使用されたり、AndroidアプリとiPhoneアプリの両用化を可能にしたXamarin という開発環境に使われていることで、注目を浴びているC#。しかしこのような最近注目の用途のみならず、そもそもWebサービスや業務システム開発で広く使われてきました。

人材不足がささやかれるIT業界でも、最近引き合いが激しいというC#エンジニア。彼らはC#er(シーシャーパー)とも呼ばれます。C#はJavaと似ているという性格から、Javaエンジニアの間でも習得しようという人が多い言語です。またC言語出身の技術者にも理解しやすいので移行しやすいといわれます。

C#の入門書3選!

それでは人気が高く将来性の高いC#erに、どうすればなれるのでしょうか。

本記事では、C#erになりたいエンジニアの独学に最適な学習書を、レベル別に3冊紹介します。具体的には、

  • ごくごく初期の学習書
  • 使用頻度が高いC#のコードを網羅した解説書
  • C#によるシステム開発の現場に入る前の心構えについてまとめた本

以上の3冊をご紹介します。

ごくごく初期の学習書

ゴールからはじめるC# ~「作りたいもの」でプログラミングのきほんがわかる」技術評論社 (2016/3/16)

ゴールからはじめるC#

初心者が実際にプログラムを作成しながら演習していく手法を「ハンズオン」といいます。プログラミングスクールでも、ハンズオンの演習はカリキュラムに必ず組み込まれております。またC#を開発したマイクロソフト社は、無料セミナーにセミナールームを頻繁に提供していますが、そこでもよくハンズオンセミナーは行われています。

本書は、初期のC#学習者が実際にプログラミングに取り組める実践的な学習書です。

例を挙げれば、神経衰弱ゲーム、モグラたたきゲームなどがどのように作られていくか解説されています。ハンズオンは、学習初心者がぐんぐんスキルを付けることができるので、本当におすすめです。実際に自分が作りたいものを作る段階になったら、必要なコードを探したりコード集を購入したりしましょう。まずは本書でひたすら、与えられたプログラミング演習にトライしてみましょう。

この学習は、いわば逆算してプログラミングのプロセスを理解する手法で「ゴールからはじめるC#」というタイトル通りです。しかし章末には練習問題もあり、そちらは応用レベルの思考が試されるといった構成になっています。マイクロソフトの開発環境Visual studioのインストールの段階から丁寧に解説してあります。

Amazonの購入者によるレビューを見ると、「イラストがかわいい」「図やフローチャートが多くて理解しやすい」というコメントもあります。また「アクセス修飾子のpublic,internal,protected,private の範囲を示した図がとても分かりやすった」というコメントも。初心者向け学習書のなかでも、解説が丁寧で実践的な良書です。

使用頻度が高いC#のコードを網羅した解説書

C#によるWindowsシステムプログラミング」カットシステム (2016/12/1)

C#によるWindowsシステムプログラミング

導入部分によると、本書は「入門書を終えて本格的なソフトウェア開発が行いたい人」や「既に開発に長く従事している人」向けの参考書です。C#開発を始めたエンジニアが悩む事柄を中心にまとめてあると記されています。

筆者はまた、C#を「学びやすいが使いこなすとなると難しい言語」といった表現をしています。

何しろマイクロソフトが改良を重ねて、可能なことを広げている言語です。入門段階を超えていざ本格的なソフトウェア開発に入れば、様々なつまづきを覚えるでしょうが、そんな時に助けになるのが本書なのです。

筆者もキャリアを積んだ開発従事者を対象にしており、他の言語の基礎がある人ならばすんなりと入っていけます。例えばC++、JAVA、C言語などが出来るエンジニアなら、いきなりこの1冊からC#学習に入っても大丈夫です。本書はC#サンプルコードを集めた解説書なので、入門書を学習し終えたエンジニアは、次はこの1冊に移行したら良いでしょう。

1冊目に紹介した学習書は、分かりやすく親しみやすく学習者が学んでいける工夫がされています。こちらはといえば、コードに次ぐコードが紹介されているプロ向けの様相です。しかし筆者によれば、本書は完全にコードを網羅しているわけではもちろんなく、C#に慣れ親しんだエンジニアがしばらくしたら読み直したら良い書、という位置づけになるそうです。

ですので、ちょっと難易度の高いことが出来るようになりたい人におすすめです。例を挙げれば、以下のような目的を持つ人が対象です。

  • 並列処理や非同期処理を理解したい人
  • アンマネージドと、マネージドを融合させたい人
  • 並列処理と、コントロールアクセスで悩んだ人
  • プロセス間通信をしたい人

このような課題を解決するために必要なことが、本書にはほぼ書いてあります。これらは、本格的なシステム開発をしようと思ったら必ずぶち当たる課題です。しかし同時に、基本的には知っているか知らないかのレベルの問題であるといえます。プログラミングの世界では、何でもそういえますが。

とにかく、C#の入門編を終了した学習者が本格的なシステム開発に携わるようになったら、持っていたら良い1冊といえます。

C#によるシステム開発の現場に入る前の心構えについてまとめた本

Adaptive Code ~ C#実践開発手法」日経BP社; 第2版 (2018/2/24)

Adaptive Code ~ C#実践開発手法

マイクロソフト公式解説書である本書は、「理論と実践の橋渡しをすること」を目的にまとめられました。本書の著者はGary McLean Hall(ゲーリー マクリーン ホール)というイギリス在住のソフトウェアコンサルティング会社のファウンダーです。ですので前2冊とは違って翻訳書です。

また、コーディングというよりはプロジェクト管理について書かれており、プロジェクトに関わる全ての人員に必要な心構えをまとめてあるため、現場に入りプロジェクトの一員になる前に是非一読して欲しい一冊です。文法学習をしたい人向けではありません。

Amazonにおいても、本書は、C#の基本を一通り理解したエンジニアがワンランク上を目指すために読んでおきたい1冊である、と紹介されています。

また、興味深い紹介文として(本書で)「紹介しているデザインパターンやコーディングテクニックが、「技術的負債」との賢い付き合い方を解説している」との記述があります。

「技術的負債」とは、現場で実務体験のあるエンジニアには実に刺さるところです。現場では、バグやその言語の脆弱なところを乗り越えていかなくてはいけないわけですが、それらを回避するための技術として「adaptive code(アダプティブコード)」が紹介されています。アダプティブコードはバグだけに対応したものではありません。C#エンジニアによると、ある程度開発が進んでしまったのに急に仕様変更が入ってしまった時にも、柔軟に対応するために必要な技術であるとのことです。

実際に現場に入ると理論だけではとても対応不可能だといいますが、本書はそういった現場で起こり得る窮地を乗り越えていく手法を紹介しています。専門的なことをいえば、特にアジャイル開発やデザインパターン、SOLID原則といったものを、現場においてどのように実践するかを解説しています。

追加で2冊!

確かな力が身につくC#「超」入門

C#の基礎中の基礎を学びたい方におすすめです。特に、他のプログラミング言語の経験もあまりなくて、プログラミングの勉強に慣れていない方には特に良いかと思います。

というのも「確かな力が身につくC#「超」入門」はイラスト付きで丁寧に解説されています。イラスト付きなので直感的に理解しやすいのですが、逆に言えばイラストがあることで内容が薄まっている点は否めません。

なのでC#にすでに慣れている方はもちろん、他のプログラミング言語の経験がもともとあって、なるべく効率的に深く学習したい方は別の書籍を選択した方が良いでしょう。

あくまでもプログラミング初心者で、なるべく難しいことは抜きにして直感的に勉強したい方におすすめの書籍です。ちなみにシリーズには「JavaScript」「Python」「PHP」もあり、C#が第四弾として出版されました。

他のプログラミング言語のシリーズも人気で、多くの初心者プログラマーの助けになっています。書籍の構成としても環境構築からアプリケーション作成まで含まれているので、イラスト付きで直感的に理解しながら一応システムという形にまで持っていくことが可能です。

独習C#

「独習C#」はC#の勉強がすべて独学で完結するように、基礎から実践的なところまで網羅的にまとめられています。プログラミング自体が初心者の方はもちろん、他の言語の経験者にも良い書籍です。

難易度的には初心者向けに丁寧に解説されていますが、たとえばイラスト付きの書籍ほど直感的な解説になっているわけではありません。なので、文章を読んで理解するのが苦手、考えるのが苦手、といった方は先にイラスト付きの書籍などで学習した方が良いかもしれません。

ただし読書や勉強に抵抗がない、ロジックなどを考えることに普通に対応できる、ということであればまったく問題ありません。またオブジェクト指向などC#以外の言語でも役立つ基本概念を網羅しているので、次に別の言語を勉強する際にも役立ちます。

ちなみに独習シリーズはC#以外にもあって、たとえばPHP、C言語、C++、Git、Javaなどがあります。私自身C#自体はこのシリーズで学習したことがないのですが、Javaは「独習Java」で最初に学習しました。

ここでオブジェクト指向言語の概念をある程度理解できたのでC#では独習シリーズを使わなかったのですが、C#が最初の言語、もしくはオブジェクト指向言語で最初の言語なら独習シリーズでの学習はおすすめできます。

まとめ

本格的なC#開発がこなせるエンジニアになるために、有効な学習が出来る良書をレベル別に紹介させて頂きました。

他言語から入るエンジニアは、2冊目から入って頂いても大丈夫です。効率なC#学習に役立てて頂ければ幸いです。

人気記事

編集部おすすめ記事

この記事を読んだ人はこんな記事を読んでいます

案件探しやフリーランスになるための相談する