我们应该学习什么 java、C#还是C++(VC)

来源:http://www.itcast.net/community/view/482

 

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

        很多学员有这样的问题:我们应该学习什么语言,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#绝对也不是小公司用的。语言和工具在这里没有可比性,只存在各自的优缺点。

转载于:https://www.cnblogs.com/vivizhyy/archive/2008/11/06/3394947.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/466388.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

读写ini文件

读写ini文件 WritePrivateProfileString https://blog.csdn.net/wuguai4/article/details/7287346

首个开源 Linux 系统登陆火星,占有率超 Windows,一同登录还有一款安卓手机芯片...

来源| 量子位 作者 | 贾浩楠 萧箫 公众号 QbitAI“确认着陆!毅力号安全到达火星表面。”就在昨日凌晨4点55分,美国“毅力号”不经变轨,直接冲入火星大气层,最终成功着陆。“毅力号”成功着陆后,很快传回了首张图片。…

PL/SQL包(Package)

包(Package)的主要作用是用于逻辑组合相关的PL/SQL类型,一旦创建了包,包就会被存储在Oracle数据库中。 包由以下两部分组成: (1)包规范(Specification):主要是…

VS2005(c#)项目调试问题解决方案集锦

1.检测到有潜在危险的 Request.Form 值原因: (1)在提交数据的页面或webconfig中没有对validateRequest的属性进行正确的设置 (2)HTML里面写了两个<form>引起解决: 方案一&#xff1a; 在.aspx文件头中加入这句&#xff1a; <% Page validateRequest"false"…

TQ210——TFTP裸板程序下载

TQ210——TFTP裸板程序下载 1. 直接下载u-boot.bin到内存运行&#xff08;使用DNW中的的210USB启动下载&#xff09;,在DNW中输入命令可以直接查看修改u-boot.bin 2. 通过tftp下载你需要下载的程序到内存下载示例: tftp 30000000(指定程序led_on.bin下载到内存中的30000000地址…

看了这动图,你还会相信眼睛吗?

面对下面这张动图&#xff0c; 你看到的是两个顺时针旋转的黄蓝相间的圆环&#xff0c;在中心箭头的指引下做上下左右运动、扩展、收缩。稍微留神一下&#xff0c;你会发现好像这应该是收到箭头的暗示所产生的幻觉。▲ 圆圈看起来跟着箭头移动和变化为了证实这个错误的起因&…

Web页面在桌面上显示的后台基本步骤

一个Web页面如何出现在你的电脑屏幕上,以下是幕后的基本步骤: 例如访问&#xff1a;地址是http://www.osssi.com/article/1/120 的web页面。 浏览器把URL拆分成了三个部分: >协议&#xff1a;http >服务器名称&#xff1a;www.osssi.com >文件名&#xff1a;artic…

WDS远程安装

WDS远程安装1.创建可启动 Windows PEa&#xff09;安装Windows AIK软件&#xff0c;免费下载700多Mb&#xff09;运行 copype.cmd 脚本&#xff0c;以创建本地 Windows?PE 构建目录。例如&#xff0c;在命令提示符下&#xff0c;键入以下内容&#xff1a;cd Program Files\Win…

TQ210——下载总结

TQ210——下载总结 学习方法:(分阶段学习)-----内核学习是一个长期的过程 1.学习使用内核提供的接口函数 (涉及到很多操作系统知识,编程规范) 2.找到一个函数如do_fork来学习进程管理模块 3.通过kmalloc函数来学习进程管理,通过do_irq学习中断管理 1.U-BOOT配置与烧写常用命令…

解剖8051内核如何进行多任务切换

最近在玩新唐单片机&#xff0c;这个跟我之前用的51内核是一样的&#xff0c;然后今天觉得跑下多任务&#xff0c;自己研究了下&#xff0c;跟几个同学还讨论了&#xff0c;发现有些人对切换过程还不是十分明白&#xff0c;所以发个文章出来。直接上代码#include "MS51_16…

孙鑫6菜单

孙鑫6&#xff0c;遇到的问题解决方法 https://blog.csdn.net/caichao1234/article/details/8431921 C中 error C2593: “operator ”不明确的错误解决方法 https://blog.csdn.net/yaosir1993/article/details/52497890?utm_sourceblogxgwz4

java与.net平台之间进行RSA加密验证

RSA加密算法虽然不分平台&#xff0c;标准都是一样的&#xff0c;但是各个平台的实现方式都不尽相同&#xff0c;下面来我来说说java与.net平台之间该如何进行RSA加密验证&#xff0c;即java端加密-》.net端验证和.net端加密-》java端验证。我对RSA算法也只是停留在应用的层面&…

渡虎谷告诉你CSS的结构和规则

基本语法规则选择符任何HTML元素都可以是一个CSS1的选择符。选择符仅仅是指向特别样式的元素。例如&#xff0c; P { text-indent: 3em }当中的选择符是P。 类选择符单一个选择符能有不同的CLASS(类)&#xff0c;因而允许同一元素有不同样式。例如&#xff0c;一个网页制作者也…

阿莫电子为啥越来越差?

我是在上大学接触到这个论坛的&#xff0c;当时我们创新基地的学长们都注册了这个论坛的账号。记得有一次看见我旁边的学长在浏览一个技术论坛&#xff0c;我就问「这个是什么网站&#xff0c;看起来好牛逼的样子」。我记得他说了一句「阿莫电子你都不知道&#xff0c;你是不是…

TQ210——文件系统

TQ210——文件系统 1.busybox 致命错误: curses.h:没有那个文件或目录 解决办法:ubuntu系统中缺少一个套件 ncurses devel,把此套件安装下即可 $ sudo apt-get install libncurses5-dev 2.Linux 根文件系统目录结构 (1) /bin 目录 该目录下存放所有用户(包括系统管理员和一…

六自由度正反解算法

https://wenku.baidu.com/view/474595887e21af45b307a8e6.html https://wenku.baidu.com/view/8dc7d91d6d85ec3a87c24028915f804d2a168756.html https://max.book118.com/html/2017/0701/119416936.shtm

stdout字符串过滤输出

功能 把stdout的内容重定向到一个文件,然后从文件里面读取数据,再把数据对应的字符串给过滤掉,重新输出到stdout中 代码 // gcc xx.c -lpthread && ./a.out #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <fcntl.h&…

使用栈实现中缀表达式转为后缀表达式和后缀表达式的求解

书籍在线网址http://interactivepython.org/runestone/static/pythonds/index.html 中文翻译书籍&#xff1a;https://facert.gitbooks.io/python-data-structure-cn/ 将中缀表达式转换为后缀表达式 中缀表达式&#xff08;上图&#xff0c;一般书写&#xff09;转换为后缀表达…

C#基础:Lambda表达式

从委托的角度来看&#xff0c;Lambda表达式与匿名方法没有区别。在【C#基础&#xff1a;匿名方法】一文中&#xff0c;我使用了匿名方法来调用List<T>的FindAll方法。从C# 3.0开始&#xff0c;在使用匿名方法的地方&#xff0c;完全可以用Lambda表达式来代替。Lambda表达…

TQ210 —— 点亮LED

TQ210 —— 点亮LED 1、S5PV210 GPIO硬件简介 1.1、GPIO 【S5PV210有237个多功能IO口&#xff0c;通过设置寄存器确定某个引脚用于输入输出或者其他特殊功能】 GPIO的英文全称为General-PurposeIO ports&#xff0c;也就是通用IO接口。在嵌入式系统中常常有数量众多&#xff0…