質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.53%

  • C#

    7066questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • Unity

    3966questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

C#の学習をしたいが参考にするべきものがわからない

解決済

回答 5

投稿

  • 評価
  • クリップ 0
  • VIEW 1,145
退会済みユーザー

退会済みユーザー

Unityを扱えるようになるためC#の知識を身につけたいと考えています。
しかし、何を学べばいいのか、王道や定番がわからず悩んでいます。

C#特有の機能や、プログラミング入門者向けの初歩的な知識以外を学びたいのですが、
自分で調べても命名規則すら複数の意見があり何が一般的なのか判断できません。
間違った知識や方法を学んでいるのではないかと常に不安を感じます。

多くの人に支持されている手法や標準的な知識を学べる書籍、
独特な工夫などが凝らされていない平凡な技術で構成されたサンプルがあるサイトなどはないでしょうか。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • SVC34

    2017/03/12 23:03 編集

    自分がこれまでは何を使って学んできたのか、どのようなものを作ったことがあるのか、他の言語での経験等を追記すると、具体的なアドバイスを得やすいかもしれません。

    キャンセル

回答 5

+8

Unityのプログラムは(C#に限らずJavascriptも)Unity用にカスタマイズされています。

  • 本来C#に無い機能をUnity側で補っている場合がある。
  • 本来C#で使えるはずの機能がUnity側で使えない場合がある。
  • C#以外の知識が必要になる場合がある(シェーダー等)。

上記の理由から、「素のC#」を勉強したいならUnityを使うべきではないと思います。
「Unityを使えるようになる為にC#を勉強したい」というのも効果が薄い可能性があります。

書籍・解説サイトを見るにしても、

  • C#の解説はUnityで当てはまらない場合がある。
  • Unityの解説はC#に深く切り込んでいない場合が多い。

ので、紹介しても的外れになるケースも多いのかなぁと個人的には思っています。

もちろん「とりあえずゲームを作る→資料を探してリファインする」という工程をするならUnityは非常に強力なツールだと思います。
これらを踏まえた上で「UnityもC#も両方学習する」のが最適解かと思いますが、時間は有限なのでどちらに比重を置くかを考えた方がいいかもしれません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

checkベストアンサー

+5

最初は片っ端から手をつけて感化されて、あとで恥ずかしい思いをする事が大事です。
プログラムの場合、王道を行くよりも道を極めると考えた方が良いです。
たくさんの意見を吸収して下さい。

特有の機能を避ければそれはC#で書く意味がありません。
特にUnityであれば独特の機能であるasync/awaitを使わないのはむしろ邪道では無いでしょうか。

ただ、聞きかじりの知識を避けたいのなら一番くわしい資料に当たるべきです。

一つはZuishinさんのおすすめのように公式すなわちMSDNです。
ただ、私はC# によるプログラミング入門もよく見ます。

書籍であれば一番分厚い本、分厚い本は丁寧にかかれているので、初心者向きが多いです。
おすすめは、独習C#です。(この本はサンプルコードが多いので、書き方についてもなんとなく学ぶことが出来ます。)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/03/13 09:18

    横から失礼します。

    >特にUnityであれば独特の機能であるasync/awaitを使わないのはむしろ邪道では無いでしょうか。
    Unityでasync/awaitを使おうと思うと一手間必要なのですが、それを踏まえても「邪道」なのでしょうか?
    また、この文章ですと「async/awaitはUnity独特の機能である」と読めるので初心者に対して誤解を生むかと思います。

    キャンセル

  • 2017/03/13 12:58

    質問に「C#特有の機能」とありましたのでそれに対しての言葉です。
    また、標準のサポートではないので、開発環境によっては利用が制限される場合もあるでしょうね。
    言語の機能をちゃんと使わないのは、王道とは言えないという意図でasync/awaitを使わないのは邪道という言い方は不適切でした。失礼しました。

    キャンセル

+2

C#
C# のコーディング規則 (C# プログラミング ガイド)

このあたりは最低抑えておきたいです。

追記

あと、命名規則を気にされているようなので。
名前付けのガイドライン

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

paizaラーニングサイトの

(1) コード・ガールこれくしょんの各言語コマンド練習問題

(2) 動画講座 C#入門編

(3) プログラミングスキルチェック ランクD問題

あたりから学習するとC#の文法の基礎はマスターできるでしょう。

また、クラウド上のプログラム実行サービスとして
paiza.io や cloud9に登録してプログラムを打ち込んだりしてみると、開発環境のインストールの手間が省けて重宝です。

また、ドットインストールの動画講座  C#入門 も一部無料公開されています。

以上はC#のみならず、他の言語も無料で習得できます。私もpythonはpaizaラーニングで学習しました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

ちょっと古いですが以下の書籍がわかりやすいです。
新プログラミング環境 C#がわかる+使える (@IT技術叢書シリーズ) 
私は結構お世話になりました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.53%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • C#

    7066questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • Unity

    3966questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

閲覧数の多いC#の質問