到期未解决

【精华】我们应该学习什么 java、C#还是C++(VC)到期未解决

学员:polarstar (.NET学习顾问)提问时间:2008-10-23 10:06:59

        此文仅代表个人观点,欢迎讨论。

        很多学员有这样的问题:我们应该学习什么语言,java、C#还是c++?
        好像很多公司都找会VC的人,java和C#有用吗?
        甚至有人说java或C#是小公司用的语言,C++是大公司用的语言。

        注:下面讨论的C++不是指.net framework下的托管C++而是指非托管的C++。
        
        首先解释一下java、C#、C++和VC的关系。
        java,C#是C++后出现的语言,VC是比较早就开始有的开发工具,C/C++也是比较早的语言。java的开发工具有JBuilder、JCreator、Eclipse等,而C#的开发工具就是微软的Visual Studio系列。
        java、C#和C++各有个的优点,C++兼容性好,不依赖平台,java、C#依赖各自的虚拟机(C#的虚拟机是.net framework)运行,离开了虚拟机便不能运行;
        Java、C#开发效率高,几乎是VC的几倍以上,C++运行效率高但是开发比较麻烦,学习也比较难。
        语言没有优劣之分,这些高级语言都是现在大量使用的流行语言,任何一种语言都可以开发出大型系统,但是实际运用往往根据需要选择,除非是做底层类库开发一般不选C++,因为它开发成本太高,还有用C++的是为了部署简单,例如网络游戏,为了避免每个用户都安装虚拟机就不选用java或C#,除这些之外,一般选择开发效率较高的java、C#,这样可以降低公司的开发成本。
        现在学习编程的人大多数都学习java、C#,因为简单啊,很快上手,C++确实越来越少人学了。
        不要看着难学的VC挺cool的就去学,要看实际应用和自己的兴趣还有学习环境,C++学习最好有实际应用环境不然学起来累死不讨好,最后失去了信心。要知道VC已经是好几年前的技术了,微软现在基本不会升级它了,也就是说用VC你的生产效率就是几年前的,很低。
        现在很多高校都把C++作为一种必须掌握的基础语言,甚至有些非计算机专业的学生都要学习C++,但是那些要求仅仅是对C++基础知识的掌握,要熟练运用到实际开发中去还是有一段距离的。

        学java有没有用呢?
        我觉得现在java和C#的前景很难分出高低,所以学java和C#差不多,而且他们都比较类似,基本可以一通“两通”。
        学习一样东西有没有用要看它的使用价值,现在公司需要的人才不单单是会简单的编程,而且是全方面的,业务和其他能力也很重要,可以说学了java你可以做一个程序员,找到工作也没问题,但是要真正深入企业业务,要工资有所提升则还要实践一段时间,充分融入到企业的业务中去。
        例如有些外包公司,他们对程序设计的要求比较低,只要会用一些主流的语言就可以了,但是对外语要求很高,例如对日外包公司对日语的要求,这样如果掌握了java或C#之后能够学习一门日语是很好的。现在有招聘单位打着日语二级软件工程师月薪1万的旗号。
        当然还有其他业务,在工作过程也是可以慢慢积累的,例如有些公司用到的GIS(地理信息系统)。

        有些学员说:
        “可是我知道现在的电信行业,nokia,moto还挺需要这方面技术的人。而且薪资给的还比较高。”

        我们并不是要抵制学习C++,而是说学一样东西必须看到成果,如果你有环境学C++,例如公司有项目,那就跟着学,这样有人可以问,有环境压力才能学好。我看见很多人说要学C++,但是因为实际没有用到最后几年过去了还是只背得一些基本语法。

        “那VC不热的原因也是他的市场小是吗?”

        其实VC也不能说不热,很多公司还是要用它的,它用得相对少,但是会的人也少,我面试过VC的人,来面试的很少有人合格的,简历写得不错,可是一问连strcpy复制了多少内存都不清楚。C++人才还是很缺的,相反会java、C#的人比较多。
        
        应该选择学习什么语言呢?
        我的建议是:
        对于原来没有多少计算机基础的人,建议从java、C#学起,如果以后以此找到了一份比较好的工作,你可以继续深入研究它,也可以把计算机技术和公司的业务多结合,计算机只是工具,要跟业务结合才能产生价值。如果以后有C++学习的需要,例如公司业务的需要,那可以在项目中学习它,因为有环境的需求压力和前面的编程基础学起来会比较容易一点。
        对于已经有一定的程序设计基础的人,如果你想做一些比较底层的开发,或者有实际项目的需要,可以选择学习VC。
        
        最后我要说:VC绝对不是大公司用的,Java、C#绝对也不是小公司用的。语言和工具在这里没有可比性,只存在各自的优缺点。

其他回答

回答人:amandag(高歌 .NET学习顾问)回答时间:2008-10-23 10:08:40
呵呵,不错不错
回答人:polarstar (.NET学习顾问)回答时间:2008-10-23 10:11:12
TO:amandag(高歌 .NET学习顾问)
为什么你那么快?不到两分钟啊,读完都成问题啊,呵呵。
回答人:amandag(高歌 .NET学习顾问)回答时间:2008-10-23 10:41:26
现在不是有MSN通知么
回答人:孟冬伊回答时间:2008-10-23 17:29:53
目前C#主要应用还是做ASP.NET开发。WinForm的比较少。以后主流还是互联网
JAVA主要是以J2EE为主
C++还是利用MFC做一些桌面应用开发,或者游戏开发
C的话做嵌入式开发比较多
回答人:ntwuhaohao回答时间:2008-10-24 00:23:57
我还是喜欢c#,asp.net方向,容易上手,资料完备,开发工具优秀
我想问一下老师们,像我经过2个月的陪练营学习,水平也就会写个留言本,弄个小投票系统,出去找个2000块钱的工作有没有问题呢? 哎,不是太自信
回答人:polarstar (.NET学习顾问)回答时间:2008-10-24 12:43:08
TO:ntwuhaohao
公司招聘很注重你做过什么,应聘的时候如果你告诉他们你做过的跟公司的要做的差不多一般就进了,所以建议多动手。
回答人:利兵回答时间:2008-10-27 08:02:22
我现在都是大二,我现在都学过C ,C++,VB可是都忘了,也不知道有什么用,也没有心思学,但是有时候也想学,就是学不进,不知道怎么办?请问能给我一些好的意见吗?
回答人:zouyi88回答时间:2008-10-27 22:17:47
说的好啊!学什么不可一概而论嘛!要因人而宜!我现在学的就是c++!不过真的好难学!
回答人:张成军回答时间:2008-10-28 15:41:17
不错,分析的非常有道理
回答人:zxing回答时间:2008-10-29 22:02:08
一次只做一件事情,先把C#学好先
回答人:vivizhyy回答时间:2008-10-30 18:17:56
java 和 C# 在重合的地方很多,但是在具体的实践思想上还是有不同。呵呵,努力学习中!
回答人:Richard回答时间:2008-11-01 09:55:25
请记住你要找工作的真正的过程: 1)有准备 2)有目标 3)有策略
回答人:x86344252回答时间:2008-11-03 09:20:22
c#入门容易,后期修行太难了
回答人:李飞刀回答时间:2008-11-05 20:39:03
我今年34了,现在才开始学编程还来得及吗?我有个同学用了几年delphi,但他还在犹豫要学java 还是 C#,我想做个模拟炒股的网站,所以现在刚刚开始学html,接下来该学什么?请各位大侠多多指教!
回答人:AngloveU回答时间:2008-11-16 03:02:03
难的说怎么入门!
共42个 共3页 1 2 3 下一页