为什么在招聘网站上看到招聘JAVA的很多,而C语言和C++相对很少?

事可百乐


在回答这个问题之前,我想先向大家介绍一下编程语言的发展,这样在了解了一定的基础知识之后就能够更好的理解“招聘网站上看到JAVA岗位很多,C语言和C++相对很少”。

编程语言的发展

其实,在现代意义上的计算机没有被发明之前,就已经出现了编程,那时还没有形成编程的叫法,大家都只是知道机器能够识别的只是0101010这样的二进制数据。于是,们现在称010101010这样的编程语言为“机器语言”。而“机器语言”使用起来非常麻烦,因为你要学会使用010101010101表示一切事物,为了解决这个问题,后来逐步发展,把一些常用的指令用英语单词表示出来,形成了汇编语言,也就是说第二代编程语言;这个时候也是比较痛苦的,你要记住那些单词的含义不说,还必须告诉计算机每一步要怎么做,而计算机又是一个非常笨的东西,你掉一个步骤他就罢工,并且汇编语言的可移植性非常差,在这台电脑能够编译成功在另一台电脑上就不一定了;之后为了方便软件移植,高级语言诞生了(高级语言就是第三代编程语言),高级语言不要求程序员掌握计算机的硬件运行,只要写好上层代码,编译软件会将高级语言翻译成汇编语言,然后再将汇编语言转化成计算机语言,从而在计算机中执行。


而高级语言里面又分面对过程的结构化语言和面向对象的语言,题目中所提到的JAVA和C++就是面向对象的高级语言,C语言是面向过程的高级语言,也成为万物起源语言。


JAVA语言有什么优点呢?

市场上对于JAVA需求不是没有道理的,因为JAVA具备了很多一些别的语言不具备的优点。

1、java能够跨平台:一次编写,到处执行

java语言的跨平台性非常好,它不仅有为开发普通桌面和商务应用程序的JavaSE,还有为开发企业环境下的应用程序提供的一套解决方案的JavaEE,同时还有为开发电子消费产品和嵌入式设备提供的解决方案的JavaME;

2.java

为什么能够跨平台?

java编写的代码可以现在的任何操作系统(也成为平台)上运行,真正做到了一次编写,到处执行。这是因为java为不同的平台都分别提供了JVM虚拟机,只要是java编写的代码,都会现在虚拟机上转换成对应对应平台上的格式,从而实现跨平台。

(java创始人)

3、java语言经久不衰

1995年,SUN(Stanford University Network斯坦福大学网络公司)公司创建了java语言,

1998年12月JDK1.2(将Java分成了J2SE,J2EE,J2ME);

2004年10月 JDK1.5(改名JavaSE5.0,JavaEE,JavaME);

2009年04月20日,甲骨文(Oracle)74亿美元收购Sun。

...

由此可见,java语言是少见的功能强大、拓展性好且稳定的语言,这是市场离不开java的很重要的原因。


而C语言以及C++语言并不是没有需求,一般编写大型游戏都会使用C,只不过现在的高级语言种类众多,并且C的使用场景并没有java那么普遍;所以,最终体现在招聘上,java的岗位就多一些,而c和c++的岗位就相对来说少一些。


赠人点赞,手留余香。我是小强Talk,欢迎大家关注我,和我一起共同成长进步!

小强Talk


在讲理论之前,先分享个小故事。

我最开始在BAT实习的时候,用的是PHP,然后我有个同学只会C++,希望我能帮忙内推一下。

这当然没问题啊,但是我们组没有写C++的。

于是我就去问隔壁广告组的同学,人家说,我们只招写JAVA的,不收C++的,但是我可以帮你再问问其他部门的。

于是,几经周折,才在隔壁楼找到一个招C++实习生的项目组。

好在我同学够优秀,顺利通过了面试。

但是等到校招季的时候,我已经顺利拿到了offer,提前入职了,他却又开始找工作投简历了。于是我就问他怎么回事,他说C++项目组今年校招绿色通道没有名额,他只能再另谋高就了。

上面这个亲身经验呢,是想说明两点

1目前招C/C++的确实很少

2招进去之后,可能还是没有head count转正。

所以啊,从公司的角度都是如此,从招聘网站上看到很少招C/C++的职位,就更加在情理之中了。

那么,为什么现在用C/C++的越来越少了呢。

这就和两种语言的特性有关了。

JAVA vs C/C++

与C/C++比起来,JAVA可以说是后来者居上,取长补短。它既保留了C语言的各种优点,又剔除了C语言里指针,多继承等晦涩的难点,更是增加了友好的try-catch-throw,极大了减轻了程序员在编程过程中的压力。

此外由于靠近底层,C语言的学习与调试成本也很大,导致其可移植性也远不如java灵活。

再进一步讲,由于语言难度大,如果想用C语言编写出一个程序或者平台,其人才培养与开发过程的消耗都远高于使用JAVA。因此,就算从成本的角度出发,java也是要比C语言更加优秀的选择。

求职数据

最后,我们用一组数据来证明吧。

2019.2.19 21:59,我在某求职网站上输入java,得到的在招岗位有1602条。

而随后,输入C,得到的信息只有可怜的282条。

市场的供需关系可见一斑。

基于此,我的观点是,既然C/C++已经逐渐没落,JAVA现在风头又一时无两,建议有学习C语言意向的同学考虑转去学JAVA。

毕竟,智者都是根据市场走势,来及时调整方向。



——————————————手动分割——————————————

真是服了评论里的各位了呢,都跟我说搜搜嵌入式试试。

好哒,我真的搜啦,看到没,各位朋友,228条,还不如搜C的多呢。

——————————————————分割结束————————————

如果你对我的回答有什么问题,欢迎在下方给我留言,我是苏苏思量,性别女,头像是本人,来自BAT的Java开发工程师,经常分享科技类见闻,欢迎关注我,与我交流哦。

最后,加个私心,也许你也愿意看看把分布式部署在同一个机器的血泪史。

https://m.zjurl.cn/answer/6659350280661893379/?iid=62984567304&app=news_article&share_ansid=6659350280661893379&app_id=13


苏苏思量


这个标准是国内的标准看,如果放在全球的范围内这三种编程语言还依然还是排名前三名,但现在编程语言有个大趋势已经不可逆了,就是集成化编程语言的流行,符合这种特质的java和python,python好像集成度更加高一些,所以上升的势头非常猛,特别受到培训机构的推崇,毕竟学习周期会短很多,而且发展潜力非常大,但现在就python的实际就业机会相对还是比较少,有一个朋友搞了一年多的python结果在西安找工作,最后终于找个了真的需要python编程的工作,从而发表感慨千万不要相信所谓的发展前景,当下才是最重要的。

就现在实际情况看C/C++还在发挥极其重要的作用,现在很多客户端软件以及服务器的开发都离不开这两种编程语言,只不过不像java语言这么火热,现在很多底层开发语言的职位薪资也是非常高,而且入门的门槛也非常高,因为门槛高很多人做不了的导致索性现在很多人就不作为入行的编程语言了,毕竟入行找个更加简单点的工作会更好一些,现在的大学生喜欢做一些简单化的东西,即使现在流行的人工智能底层性能影响的也是这两种编程语言。

因为国内这两年互联网公司非常流行,主要开发在应用级别开发,无论在后端还是客户端几乎都离不开java,所以相对来讲java职业也是最多的,而且在二三线城市也有大量的java开发人员,职位数量就是第一存在,从全球范围看很多C/C++在一些核心技术层面使用范围还是非常广泛,特别是一些涉及到核心技术CA认证等等都是这两种语言搞的,所以不要觉得这两种编程语言已经退出历史舞台了,而且国内软件发展这么多年,还有很多核心技术还没能掌握,而且软件开发有些时候不完全是技术层面问题,还涉及到生态链的建立问题,就拿操作系统做例子,即使现在能够做出来也不一定能够建立生态圈子,所以落后在短时间内很难弥补上,需要时间以及生态的积累。

回到现实中初学者如何选择编程语言,除了市场供需因素之外,还需要根据个人的实际情况,如果觉得自己就想在某个方面施展,那就全力以赴的去学习,不要太在意别人的选择,有些编程语言可能开始学的费劲,坚持的时间长了薪资待遇自然就上去了,很多人花了几万块钱参加培训做了一段时间发现压根不是自己想做的工作,中间选择了放弃,所以不要看别人都去报班了自己也跟着去了,结果弄到最后发现不是自己需要的工作,很多人觉得C语言已经没有市场了,从市场的需求关系看,绝对的数量并不在少数,只不过比例相对低一些,但是薪资待遇真不会低了。

也没有必要觉得现在大家都去学习java了,是不是市场空间已经不足了,现在企业对于高级软件工程师大门永远敞开,学的能力上来了工作机会自然就会有了,至于是不是最流行的编程对于大众来有用,对于个体就要区别对待了。

希望能帮到你。


大学生编程指南


因为需求决定了。互联网用c的很少,基本只有传统的IT CT厂商和硬件结合的项目用c。

c++以前比较牛逼,但是由于坑太多,现在新项目用c++的也变少了。c++依赖太多,太恶心了,因为c++不属于任何一个公司,而且标准委员会只指定标准,不实现标准,而且c++没有实际意义上的二进制abi规范,所以换一个编译器,升级一个编译器版本,不用编译器编出来的动态库混用,甚至换一个STL实现,都会出现不兼容的问题。而且现在c++标准98/03/11/14/17/20这么多标准,实现多少完全看编译器,而由于不属于任何一个公司,编译器也分好多种。各种不兼容,导致一个在g++4.5版本下跑的好好的历史遗留项目,用的03标准。想开一个c++11跑跑,结果n堆编译错误。在老标准可以用的写法,新标准禁止了。新标准的c++其实很好用了,但是由于各种历史原因导致的,坑实在太多,技术水平一般的公司不容易hold住,而且随着硬件水平提升性能优势也不是很明显了,而且其实性能主要看写代码的人。

java属于一个公司,标准制订,编译器的制作要一致的多。而且升级版本不会有像c++那么多问题。现代c++非常好用,但是由于c++的项目大多都是历史项目,所以升级不了编译器,还得继续用十几年前的c++写代码,所以就显得c++很难用了,这怎么和现代的java比。

还有一个重要原因是生态,java可以用的库,太多了,而且有强大的包管理。而c++还是用的非常土的和c语言一样的头文件编译展开的方式。用第三方的库,都要用源代码自己编译,编译器等级高了不行,低了也不行,用了不同版本的STL还可能连接错误,就一个简单的引用第三方库就玩死一票人。

这里不谈语法表达性这种区别,大部分公司就是想快速做出项目来,容易上手,拿来就用的东西多,这才是重要的。所以某些语言就慢慢用的少了,但是在某些领域是不可替代的,所以在出现同类型语言前,并不会被淘汰。


冰封灬飞飞


国内互联网软件开发规模远超嵌入式和底层应用软件开发的规模。

Java应用领域比较单一,基本上都是互联网应用。比如,各类手机APP,网站等等。这类应用的开发门槛较低,投入小见效快,吸引了很多投资。这应该是Java人才需求旺盛的重要原因。Java开发的职业的特点是,就职门槛低,薪酬较高。由于技术层次不高,新手上路所需时间较短,新老更替周期短,职业稳定性较差。

C/C++的应用领域比较广,涉及到汽车电子,智能设备的底层驱动和平台,PC应用,游戏引擎等等。这类开发的门槛高,投入大风险高,很大程度上制约了投资的规模。这些原因导致C/C++人才需求低迷。C/C++开发的职业特点是,就职门槛高,薪酬待遇低。语言本身的复杂程度就高于Java,由于偏于底层开发,还需要掌握大量的操作系统,网络协议,硬件接口的知识。新手上路所需时间至少要3年以上,职业稳定性较好。

个人觉得国内IT人才市场的需求状况从一个侧面反映了中国IT行业偏重于上层应用,而底层的核心技术上投入不足的现状。举个例子说,物联网很火,但大部分都集中在网的开发,很少有企业在做物的开发。所谓物的开发就是芯片传感器之类的核心技术开发。这样看来互联网也好物联网也好繁花似锦的背后,存在着发展潜力不足的隐忧。


日冲信息 黄


作为C++/VC++程序员,事实实招聘C++的也很多,招聘objective–c的也很多,只是JAVA的更多这与IT公司有关。这两年最火的是APP开发,Android开发需要用JAVA语言,很多网站开发也会用到,所有需求量很大。

C语言开发一般来说都偏向于底层,系统内核与硬件很常见,这些岗位较少,需求量最大的是用于IOS开发的objective–c,objective–c也是C语言的一个分支。


C++一般用于产品的后台处理开发,C++对于新手并不友好,一般都需要有经验的开发者,要求Linux/UNIX系统,在Windos上用的多是VC++和C#


萌哈科技


主要还是C和C++太强大了,而现在的大部分互联网公司都只是追求快速开发,那么就诞生了很多封装非常完整的开发语言,远远摈弃了底层的东西,而这些封装完整的开发语言可以速成,而并不需要深挖底层的东西,忽略了很多实现的具体细节,这也是互联网企业对产品开发的需求导致的,但为什么C和C++能保持常胜不衰,打个比方,就像C++里的类一样,他们俩就是所有类都要继承的上帝类,至高无上,就是说,后来的这些快速开发的语言,或多或少有他们俩的影子。


南方有佳人c


这个很简单,第一Java在web领域是排行第一的语言,第二java在信息系统后台也占尽便宜,第三Java体系就是拧螺丝钉的模型,大量类库,组件能让码农不必关注底层细节实现业务,层次分的很细,每个层次码农需求也不同

c cpp面对的开发程序对象不同,基本是底层或者性能优先的程序,过于复杂时会在上层使用脚本便于开发,代码量天生就少很多,而且语言要求更高,需要长时间训练,要求也更高


一叶书藏


第一,需求为导向

程序的作用主要就是呈现效果,实现业务。最终服务的个人或者群体不关心你用什么语言,而且看能否实现我的需求。

正因为是需求导向的,所以如果有一门语言可以更快速、高效的实现就尤为重要了。

正因为需求导向,所以,只要能实现我的需求,我不管你用什么语言。

第二,学习成本

学习成本越低,相对应的这方面学习的人越多。不是什么东西都是越复杂越好,未来编程语言只会越来越简单。我承认c和c++可以实现非常多的功能,真的做到万物可编程。

但是想编程万物需要你有知识沉淀,不断学习。需要掌握的越多,出师越难。等你开发个十来年也不敢说自己精通……人生又有几个十年?


屁屁观影


1.相比而言,Java的使用者很多,因为不同语言所使用的领域不同。

2.现在互联网领域很火,主要是以BS架构的网站为主,而JAVA的核心就是做Web,做大型网站。

3.C语言和C++虽然应用领域也很广,但是由于C语言太面向底层,实现一个简单的程序都需要较多的代码,而且学习成本比较高。而C++虽然在C的基础上做了封装,但是它的语法非常复杂,没有JAVA容易入门。

4.市场的需求导致了这种现象的出现,软件公司对JAVA程序员的需求大于对C程序员的需求,总的来说,还是这个社会的发展所决定的。





分享到:


相關文章: