C# Programming

Babyこれから C# プログラミングを始める人のために

1.目次

  1. 目次
  2. 目的
  3. C#プログラミングの勉強の進め方
  4. わからない場合の調べ方?
  5. C# 関連書籍 (Amazon)

2.目的

初めてプログラミングをしようと思うと、何から勉強したらいいのか、どこから手をつけたらいいのかわからないと思います。以下は、そのような人のためのヒントです。

3.C#プログラミングの勉強の進め方

ステップ0 仲間を作ろう

新しいことを学ぼうとすると、いろいろつまづくことが多いと思います。そのような時に、相談に乗ってもらえる仲間がいるのといないのとでは大違いです。近くにプログラミングをしている仲間や先輩がいないか探してみてください。

SNSなどのコミュニティや、blogなどで相談してみるのもよいでしょう。

ステップ1 オブジェクト指向プログラミングを理解しよう

とにかく、いろいろと知識が必要なので、あせらずいきましょう。 すぐにVisual Studio を触って、いろいろやってみたいと思うでしょうが、そう簡単に .NET/C# のプログラミングができるようになるとは思わないでください。
自分もかれこれ 4年も触っているのに、いまだにまともなアプリさえ組めない。。。

まずは、オブジェクト指向プログラミングを勉強しましょう。

オブジェクト指向プログラミングに関して、いろいろな本が出ているので、入門書を買って読みましょう。まずは、基本的な考え方(クラス、継承、インスタンスなど)だけを抑えればよいと思います。

オブジェクト指向がわからないと、C#で何をやっているのかわからないです。遠回りに思えるようでも、オブジェクト指向を一通り勉強してからC#を始めるほうが早道です。まずは、オブジェクト指向の本を買いに行きましょう! !

ステップ2 C#の文法をコンソールアプリケーションで覚えよう

チェック1: クラスとインスタンスの違いを説明してください。
チェック2: どうしてカプセル化するのか説明してください。
チェック3:  インターフェースについて説明してください。

これらに自信を持って答えられれば、C#の文法に入りましょう。

実際にコンソールアプリケーションを作って、動かしてみましょう。はやくプログラミングをしたいのはわかりますが、Windows.Forms では、クラスライブラリー、イベントハンドラーなどの知識が必要になる し、ASP.NETではWEBの知識が必要となります。まずは簡単なコンソールアプリケーションで、基本的なC#の文法を確認しておいたほうがいいです。

基本的な文法を完全に理解しておきましょう。

ステップ3 デバッグを覚えよう

Visual Studio の使い方も覚えてください。特にデバッグの仕方は重要です。
Visual Studio の使い方は、まわりの良く知っている人に教えてもらうのが良いでしょう。
少なくとも、ブレークポイントのかけ方、ステップ実行によるデバッグ、変数の確認方法(QuickWatch)をできるようにしてください。

ステップ4 いよいよWindows.Forms プログラミングの初歩

オブジェクト指向、C#でコンソールベースのプログラミング、デバッグができれば、Visual Studio でWindows.Forms プログラミングをすることはそれほど難しくないはずです。

いきなり作り始める前に、簡単なプログラムを理解することからはじめましょう。まずは、マイクロソフトの10行コードで作る.NETアプリケーション あたりを見て理解しましょう。

しかし、C# のバックに .NET という巨大なフレームワークがあります。C# の言語自体は、氷山の一角に過ぎません。.NETの仕組みを理解することが大変重要です。
同じ10行、300秒でずばりのなかにも、.NET概要などがありますので、しっかり勉強してくださいね。

ステップ5 いろいろなコントロールを使ってみよう

次に、いろいろなコントロールを使って見ましょう。 Visual Studio のツールバーに、ボタン、テキストボックスなどの基本的なパーツが用意されています。まずは、これらの標準コントロールを使ってみましょう。

この標準機能以外のことを実行しようとすると一筋縄ではいきません。たとえば、ボタンをクリックしたときに、ボタンを星形に変えたいなどというような、”特殊”な動きを実装しようと思うと、とても大変です。標準コントロールでどのようなことができるのか、よく理解しておきましょう。なれてくるまでは、なるべく標準の機能でアプリケーションを作れるように、あまり欲張らないほうがいいです。

ステップ6 .NET フレームワーク、クラスライブラリを勉強しよう

C# の裏側には .NET という巨大なフレームワークがあります。C# の言語自体は、氷山の一角に過ぎません。.NETの仕組みを理解することが大変重要です。

独力で効率的に、調査、解決できれば、一気にレベルが上がると思います。

4. わからない場合の調べ方

STEP1 まずは、Microsoft の情報から調べる

(1)Visual Studio.Net のヘルプをまずあたる。
調べたいクラス名、メソッド名などが わかっている場合は ヘルプのIndex 検索を使います。名前がわからない場合は、ヘルプのキーワード検索で絞込み検索をしてみましょう。

(2)MSDN2(日本)を調べる。
MSDN2(日本)
検索キーワードで検索してみましょう。

(3)マイクロソフトサポートオンラインで調べる。
マイクロソフトサポートオンライン

MSのサポート技術情報にサンプルつきの情報が結構でています。
また、MS公認のバグ情報もあります。

STEP2 INETA Japanのコミュニティの情報をあたってみる

INETA Japanは、INETA Japan(アイネットエー・ジャパン) は日本における Microsoft .NET に興味を持つ開発者コミュニティの連携と活動の支援を行うことを目的とする組織です。日本の主要な .NET/C# 関連のコミュニティは、INETA Jのメンバーコミュニティのページに掲載されています。この中で、自分の興味範囲、レベルにあったサイトが見つかると思います。でも、わからないからと言って、すぐに問い合わせの書き込みをしたり、メイルを出してはいけません。あと少し、調べる努力をしてみましょう。その努力が、あなたのプログラミング能力を大幅に高めます。

STEP3検索エンジンで国内の情報を調べる

キーワードの与え方が重要です。
たとえば、ゴミ箱を空にしたいと言う場合に、どのようにプログラミングすればよいのか調べようとした場合、実際にコールする関数は、SHEmptyRecycleBin(...)にたどり着くには、かなり難しいものがあります。いかに、キーワードを駆使して、目的にたどり着くのか、これはカンと経験しかないと思います。

STEP4 検索エンジンで海外の情報を調べる

残念ながら、日本より海外(特にアメリカ)の情報のほうが、はるかに進んでいます。国内の情報で見つからなくても、あきらめずに海外の情報を検索してみてください。相当のヒントが得られます。英語がわからなくても、プログラムが掲載されていれば、おおよそのあたりは付けられます。

STEP5 コミュニティの掲示板などに質問する

いよいよ、自分で解決できないということになりました。
これは、最後の手段です。
メイリングリスト、掲示板などで質問しましょう。

質問を投稿する前に、必ず投稿のルールの確認を行ってください。
メーリングリストでは、過去ログの検索を必ずしてから、投稿しなさいというようになっていたりします。特に初心者の方は、投稿の仕方、質問の内容でトラブルになることが多いので注意してください。

技術系メーリングリストで質問するときのパターン・ランゲージを読んで から投稿しましょう。

5.C# 関連書籍 (Amazon)