迷茫中:请高人指引,到底学C#好还是C++好 ?

我正在大学里学C#,感觉也还算容易,因为我之前自学过 C 语言,虽然只是很短的时间,但比没有基础的要理解得快些。

现在C#是热门专业,或者说.net开发是热门技术。

不过我想学C++,因为都说像腾讯公司、百度公司、讯雷公司等这些地方都在大力招 C++ 程序员,我就弄不明白了,C#不是网络开发最好的语言吗?

其实我知道,C++比C#难学多了,我便有一个幼稚的想法,是不是越难的就越有技术含量啊!C++毕竟发展了近40年了,C#才10年不到!

在网上也有人说C#是傻瓜式操作,难道C++相当难吗?C++是不是要被C#淘汰了?C++还能发展多少年?还有前途吗?

我自学C++现实吗?

这些,都需要向各位前辈请教,请大家就这两门语言做一下比较,我学哪门语言更有前途,我也好现在就努力准备,不胜感激!

另外,最好不要有非技术性的答案,比如“你还是跟着学校和老师走吧”之类的。
非常感谢,不过我想要的是两种语言在技术上的比较,以及哪一门更有发展前途

首先,自学C++很现实,我就是,但是需要说明的是,这是一个漫长的过程,具体速度看你学习能力和用功多少。

举个例子,我的一个朋友,用毕业前两个月,学习所有基础概念,逻辑表达基础。现在已经做架构了,历时三年···

其次,纠正一个你思维上的错误。
编程:我对编程的理解是,用最少的语言(C,B,D,J等等),将所需表达的逻辑思维,写成符合语言规则的语句。
说白了,程序员就是个翻译,要把自然语言翻译给计算机能听明白的人。所以无论你用什么语言,都需要你翻译的准确性。

其次,C#,JAVA,C,C++,都是计算机语言,本质差别在于计算效率,
其中C最快,C++次之,JAVA谁更快我不大清楚,主要原理在于和机器码的距离。

简单解释一下:计算机能读懂的语言是二进制码,但是,如果你不是火星人的话,我不建议你使用这个来编程,会把自己编死···
勤劳的程序员们为了不把自己累死,于是就生产了---汇编语言 ,但是这汇编语言的复杂度也不是一个菜鸟可以轻易理解的,再于是乎,就出现了B ,C,P等等等等第二代语言,可以,只有C和B被广大准菜鸟(估计这帮菜鸟要是活着,应该已经是程序精了)所理解,接受。
原因:追根溯源,有两个,第一效率,第二自由!
历史是不断前进滴,就计算机而言,第三代语言的产生是很自然的事情
原因:懒!

这一代,语言最有代表性的C++和VB。
但是发展到现在就只剩下C++了
其实在十年前B语言是很NB的,很有市场的,
原因:相对易学,那时候的程序规模也相对小很多,好像缺点:内存效率不够高。(你想象一下,在内存只有1M的时代,对内存的使用效率是如何的重要···,就算现在,你可以玩命浪费内存,程序规模越大,效率这个问题就越凸显的重要,这一点不用我多解释了吧)
而C++的最大优点也在于此,宗旨:准确使用每一块内存。
历史发展到这个时候奸商们的嘴脸就暴露无疑了,要做能满足市场需求的软件,用什么开发,就不用我多说了吧。

该说了C#,JAVA
JAVA:第四代开发语言,建立在第三代之上
优点:更容易理解(专业术语叫 面向对象)
C#:这玩意我不想多说,简直就是山寨的JAVA···⊙﹏⊙b汗

简单阐述一下你最关心的问题:

二进制码 第一代语言(汇编) 第二代 第三代 第四代
效率最高 效率其次 效率再次 效率再再次 效率再再再次

计算机执行你的代码的时候,无论你使用的是那一带语言,都是需要先 翻译(编译) 成机器码的,而且是逐级翻译。

这样就比较明显了
C++最NB的就是,他的效率和第二代语言是相差无几的
所以,他就成了在易学和效率之间最有性价比的语言了

总结,C++的优点在于效率,缺点在于在乎细节导致开发周期相对长。
JAVA优点在于开发周期相对短,缺点在于效率相对低。

参考资料:《编译原理》清华大学版,编程思想 C/C++版

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-21
C#封装了很多常用的东西,编程就像搭积木一样。
C++库相对较少,灵活性好,可以自己做积木。

对于初学者来说,c#更安全,不会有指针的困扰。
但c/c++指针的灵活运用是高阶程序员的必备技能。

知道网络7层结构吧?C#适合传输层以上,C/C++适合全部层。
不管什么软件公司,软件实现应尽量与平台无关(无需让用户专门装个C#平台)。底层网络协议开发更不用说了,C#基本上不支持。
第2个回答  2010-05-21
C++可以让你操作底层的东西 C++学好了 学别的都快了 比如我没有C++基础 虽然C#学了一年左右现在也可以用ASP.NET来做网站了 但是一些C#高级的东西 比如委托 就比较难理解 而我一个学过C++的就说这不过就是函数指针 可见你学了C++之后再学别的有多快 当然 如果你先学C# 那么回头你在学C++中面向对象的部分会很快 不管你先学哪一个 对另外一个的学习都有很大帮助
但是 个人看法 C++发展到后面就是算法之类的了 比如人脸识别等 而C#学到后面 就是企业级开发 比如说做ERP什么的了 当然C++也可以做ERP 只是效率没有C#高
C++可以做很复杂涉及底层的东西,c#可以做很商业化的东西 看你最终的发展方向了
第3个回答  2010-05-22
http://blog.csdn.net/pongba/archive/2007/05/16/1611593.aspx
你看下这篇文章就知道了
C++是基础,学好C++了,C#就好学了
第4个回答  2010-05-20
是的 C++确实好 先比较类C和JAVA吧 都说网络开发最好的是JAVA 不过JAVA是套嵌在内核外的另一层上 所以运行起来速度肯定不如类C的 。而C++比较起C来 很多方面确实强于他 更加方便 更加灵活 很多函数调用不会像那样复杂。这也是当时开发C++的初衷之一。现在一般学校都会选择开设C++而不是C 因为C++的很多语法可以运用在C上 而C的却识别不出。想学好C++ 没有一年是不可能的 (我是说学的精 不是泛读。)假如说前途 未来十年内 C和C++都是很有前途的 不过个人看来 你学C++更值得 不必两种都学 学一种学好就OK
第5个回答  2010-05-21
语言没有好坏之分。

无论C++还是C#都有自己的角色。

至于哪个语言更好用,是相对来说的。也就是你要干什么样的事。
相似回答