2009-08-19 9 views
22

Cの単なるビット(ちょっとした基本)を知ってC#に直接ジャンプすることをお勧めしますか、Cを知らなくてもよいでしょうか?Cを知らずにC#の学習を開始しますか?

+34

cを知らない方が良いでしょう。イディオムは非常に異なっています。一部の人々はCのイディオムの束を運んでいる間にC#を書いており、そのコードは読みにくいです。 –

+0

あなたは全く新しい.NETですか?ちょうど興味深い – STW

+0

yup全く新しい.net ..私は学生です(エレクトロニクスと組み込みシステム(マイクロコントローラ)のものをやっていることを愛しています)....私の家族の人はちょうどあまりにも傾いている.net、java私の心はブーグルになり、言語を使って動くもので好奇心を増します。そして、私の心は "でも試してみてください - becoz nothings in impossible" – Dharavk

答えて

7

あなたの目標は母国語を学ぶことであり、深刻なプログラマーにならないなら、つかいます。

あなたが真剣なプログラマーになろうとしているなら、本当にいつかCに熟達するべきです。私はどの方法がC#から始まっているのか、Cで始めるのがより難しいのか分かりません。Cはあなたがそれに近づいても問題にはならないでしょう。

CやC#だけでなく、いくつかの言語を既に知っている場合は、C#で今すぐCを手に入れてください。

重要なのは、C言語は単純な言語ですが、重要なことを行うにはもっと複雑な構造が必要です。 Cはもっと広く普及している言語ですが、C#で簡単にできることはC言語では難しいでしょう。

+0

>あなたが深刻なプログラマになるつもりなら、本当にC言語に堪能なはずです。
私は同意しません。あなたの目標が深刻なC#開発者であり、Cをまだ知っていない場合は、C#に焦点を当ててください。 Cに習熟する時間を費やすのではなく、.Net空間でスキルを広げる。実際にOOをしっかり理解しています。デザインパターン、アーキテクチャを学ぶ。あなたの暇な時間に、物事がどのように低水準で動作するかを理解する - 実際にコード内とマシン上で何が起こっているのかを理解する。これらの手順は、熟練した開発者になるという目標をより良く提供します。 –

+0

なぜ "深刻なプログラマー"はCを学ぶべきだと思いますか?近視眼的な声が聞こえる危険にさらされている現在、私は現在のところ、.NETのみで開発しています(必ずしもそうであるとは限りません)。私の個人的な開発の焦点は、.NETフレームワーク、一般的なパターンやベストプラクティスです。関数型言語を学ぶ(F#が候補です)。現時点では、なぜ私は自分が使用していない言語を学ぶべきかわかりません。私が紛失しているものがありますか? –

+0

@マーク:Cは、物事が低レベルでどのように機能するかを理解するための開発の一部です。私に同意しているようですが、それは良いことです。 @ネイサン:異なる言語を学ぶことはあなたの思考範囲を広げ、あなたをより良い開発者にします。 –

22

はい、Cプログラミング言語はC#を学習するための前提条件ではありません。いくつかのCを知ることは、間違いなくC#の構文をスピードアップするのに役立ちますが、それ以外にもいくつかの共通性があります。

1

はい、完全に問題ありません。

7

確かに。 C#はCのような構文を使用していますが、Cよりも学習が簡単だと思います。

3

Cは一般的に学習するのに適した言語ですが、 C#を学ぶのに役立ちます。

37

C#とCは非常に異なりますが、構文は共通ですが、プログラミングのスタイルはかなり異なります。それはCの学習を傷つけることはありませんが、あなたのターゲットがC#の場合はそれから始めます。

学習Cは、コンピュータの仕組みや低レベルの理解を教えてくれます。 C#は高レベルの言語であり、グラフィカルインターフェイスを得るための学習曲線は低くなっています。ジョエルとジェフが頻繁に学習Cの値を議論

stackoverflow podcast #2は、それは確かに可能だ一例

+0

そのポッドキャストの音声は本当にうんざりです。 – Antoine

1

です。

プログラミングの考え方に晒されている場合にのみ、他の言語を理解することは常に役立ちますが、必須ではありません。

14

C#はセマンティック慣習をCから借りていますが、それを学ぶ必要はありません。実際に

、あなたはそれはあなたが新しい言語を学ぶために急いでいる場合は、右にジャンプし、私のようなC.

1

であるかのようにC#のを使用しようとしているフェーズをスキップします。しかし、多くの時間(学生)がいるなら、コーダーと呼ばれることを望む人は誰でもCを知っているはずです。

+1

C? Cはそれらの高レベルの弱者を対象としています。プログラマ*と呼ばれることを望む人は誰でもアセンブリを知っているはずです! :-P jk – STW

+1

いいえ、あなたが*本当に*プログラマと呼ばれるには、バイナリでプログラムできるようにする必要があります:)。 – mk12

+0

アセンブリー、バイナリー。同じこと。ちょっと違うキーワード:P – Brian

0

CやC++の学習はもっと難しくなりますが、おそらくもっともっと慣れてきます。基本的なことは決して悪いことではありません。

言われているように、私は「推奨」についてはわかりませんが、「間違っていない」ことは...好みの問題です。

2

私の質問は、プログラミングを学ぶために第一言語を選択するしようとしているでしょうか?(C#はオプションです)、別の言語を知っていて、C#の前にCを学ぶ必要があると思いますか?

プログラミングを習得しようとしていないなら、CをスキップしてC#に直接進むことができます。しかし、第一言語のために、私はどちらにもアドバイスしません。コードをすばやく書くことができるスクリプト言語を試してみてください。

+0

は、組み立てられたプログラムを書いています。もしかしたら、好きなだけで好奇心の中に埋め込まれていて、一歩前に歩いてください。 – Dharavk

+0

これを済ませれば、 Cがあなたに何を教えようとしているかをよく知っている。 C#に行く。 –

2

:C#とVB.NETで記述された同等の.NETコードのはい。私がC#で始まったとき、私はCの経験がありませんでした。

+0

こちらも同じです。 :) –

1

教育を受けたOOPプログラマーでない場合は、自己嫌悪感を強く感じない限り、C(またはC++)を避けるのが最善の方法でしょう。他のすべての理由が有効ですが、C#も管理されているので、で「困って」います。

6

私はここで多くの答えを繰り返すつもりですが、私は他の人よりも具体的な方法で何か言いたいと思っていました。

私は、C#や他のオブジェクト指向言語を母国語にしても問題ありません。事実、多くの人々は、手続き的思考に慣れていないので、OOをうまく使いたい場合は、OO言語を最初の言語にすべきだと主張しています。

言われているように、カバーの下で起こっていることについて少なくともまともな仕事の精神モデルを持っていない良いプログラマーは、ほんの僅かです。これは最終的には、コンピュータがどのようにメモリ、ポインタ、CPUが命令を実行するかなどを学ぶべきことを意味します。最終的にCの本とアセンブリの本を読むことは、IMHOの良いアイデアです。私はどちらかに熟達する必要はないと思う。コンピュータとプログラミング言語がどのように機能するかを基本的に理解するだけです。

-1

確かにC#はわかりやすいです。もちろん、Cの知識は役に立ちますが、Cを知らなければ、より高いレベルの言語からC#として始める方が良いでしょう。

2

多くの新しいプログラマーが言及していないことの1つは、何をしたいのですか?こんにちは世界のような単純なものを作りたいですか?それとも、GUIアプリケーションやビデオゲームのようにもっと複雑なものを作りたいのですか?

これが重要な理由は、すべてのプログラミング言語がすべてのタスクに適切であるとは限らないためです。他の人が触れたように、Cは優れたシステムとドライバ言語(または実際には低レベルのインターフェイスまたは極端なパフォーマンスが必要なもの)であり、C#はテキストエディタから巨大な多層エンタープライズソリューションまでのデスクトップアプリケーションを構築するように設計されています。これらの言語の名前にもかかわらず、実際には同じ名前といくつかの構文を共有しています。

C#で始まり、後でCに保存することをお勧めします。 Visual Studio Express C#のような多くの無料ツールを使用して、すぐに作業を開始できます。後で、Linuxカーネル、コンパイラ、またはハードウェアドライバのようなもので作業を開始したい場合は、すぐにCを取り上げることができます。Cはまだ学ぶ価値のある言語です。

1

問題ではありません。オブジェクト指向プログラミングを理解している限り、あなたは良いことです。

0

ほとんどのOOPでJavaを学ぶことは、ライブラリと構文がほぼ同じであるC#の学習に最も有益であることがわかりました。

CまたはC++の知識は、C#で管理されていないコードなどの深いところでダイビングを開始した後にのみ役立ちます。

1

「言語XまたはYを学ぶべきか?Yの後にZを、Xの後にXを学ぶべきか」という形のすべての質問に対する私の答えは?等は同じです:そのような質問を心配しないでください。それらを忘れる。 C#の学習がもっと便利になると思ったら(多分もっと多くの仕事がある、あるいはプロジェクトに参加したい、あるいは興味があるかもしれません)、座って学習を始めます。

すでに言語が上手ければ、それを使用して生産性を上げることができるかどうかを確認するのに十分な時間がかかりません。そして、あなたはそれに精通せずに言語をうまく学ぶのに多くの時間を費やす必要があるかどうかは決めることができません。したがって、あなたが気に入ったら、C#の学習を開始してください。

これをちょっとやってみると、約30年前、BASICを学ぶ前にZ80アセンブリを学んだことがあると思います。しかし、アセンブリをマスターするまで他の言語を習得しないようにしてください。(ところで、私が覚えているのは、opcode 0xc9はRETです)。

だから、C#の学習を開始してください。好奇心が強い場合は、Cを勉強し続けてください。どちらも中括弧を持っていても、はっきりと異なる言語です。ちょうどCとC++のようです。

0

C++とC#の類似点はレクサーで終わります。

+0

申し訳ありませんが、質問はCに関する... – Dharavk

0

K Rで「The C Programming Language」と読むこともできます。クイックリードであるため、ガベージコレクション言語の舞台裏でのパフォーマンスの理解に役立つ背景が得られます。