找回密码
 立即注册
楼主: 闲鱼技术01

现在的市场对 C++ 的需求大吗?

[复制链接]
发表于 2021-4-7 10:47 | 显示全部楼层
如果有大神告诉你“工资越高,C++越重要”,千万小心,他很可能是随口说说的。。。
至少先去了解一下说这话的人自己在哪上班,如果是什么像微软这样的大公司,人家程序员工资本来就不低,跟用什么语言没多大关系...... 在微软哪怕你写Basic,工资也是高的。
而在行业工资最高的那些公司(尤其是互联网公司)里,几乎不使用C++的也有的是。
C++语言复杂,开发难度大。这导致了开发周期长、成本高,进而导致了软件公司不愿意选择C++,进而导致了人力市场上C++程序员越来越少,进而导致了软件公司更不敢选择C++。


于是现在行业里大部分公司只会在没有更好选择的时候才会使用C++,这主要有三种情况:一是历史遗留的巨大老项目,整个重写风险太大,必须继续使用C++;二是偏硬件类的项目,C/C++在这个领域至少目前还是不可替代的;三是性能极度敏感。


历史遗留的老C++项目,主要是桌面应用和一些比较老的服务器后端,知名的比如Office、Photoshop,国内的一些老牌桌面应用程序厂商如用友、西山居等等,还有像腾讯、百度这些公司都有些服务端项目是C++的。还有些神秘的国企。


如果在这些项目工作,待遇高低和那个项目本身的盈利状况有很大关系。赚大钱的项目工资自然就高。而不是那么赚钱的项目,一般也不会因为C++比别的语言更难一点就开更高的薪水。


曾经有段时间我同时负责两个项目,一个C++,一个Objective-C。当时让我很难受的一点就是C++那个组的程序员水平其实更高,但我需要给Objective-C的工程师付更多的薪水。人力资源市场的行情就是如此,很无奈。


偏硬件类的项目,C++工程师的待遇相对来说更高一些。“物以稀为贵”的原理在这里终于起了一次作用:C++本身很难,硬件又需要更多专业知识,双重的稀有。


而且在这个领域除了显卡、CPU、多媒体设备驱动等等这些传统项目,也有像无人机、智能家居、机器人这种听起来还算酷的公司。


性能极度敏感的项目,比如数据库底层,比如编程语言的解释器,比如游戏引擎。这类项目有个共同特点,就是中国公司不多。。。游戏行业可能多一点。


*


整体上来说,和其他编程语言比起来,C++的市场需求真的不算大,而且还有减少的趋势。
不管市场需求如何,这都不是考虑是否从事C++工作的唯一理由。对所有技术类工作而言,个人的兴趣都是非常重要的。


所以题主首先要确认一下,你是对C++真的感兴趣,还是因为你只会这一种语言......


建议马上开始学一门动态语言,PHP/Python/Ruby,什么都行。注意不是Java,注意不是Java,JavaScript倒是可以。


不用担心学习成本的问题,有C++基础,再学这些语言入门都不太难。


说不定到时候你会发现,Python才是你的今生挚爱,C++只是那个老家父母给你定的童养媳而已。这些语言用起来真的比C++方便太多。


而且就算最后还是选定了C++这条路,多学门语言也不会浪费,提高对编程这门手艺的整体理解不说,平时自己写点小东西总是用得上的。


*


如果决定找一份C++的工作,那么一定要慎重选择,尽管你的选择其实也不多。


不要选那些年头很长的老C++项目,哪怕它的名声再响亮。你总不会在这一份工作干到死吧,两年之后估计就跳槽了,到时候往哪跳呢?找一个更老的项目吗?
老代码就让在你这个问题下回答的老家伙们去维护吧,年轻人请拥抱未来。


也不要抱着“随便找个小公司练练C++,变强了再换个好工作”的心态。C++真的很奇怪,我见过不少程序员刚毕业找家烂公司写了两年C++,代码写得反而比应届大学生还差了。。。其它语言很少有这个现象,至少不明显。究其原因,我觉得可能是C++工程师的水平高低,几乎只和他对语言本身的理解有关,那么在一个对代码质量要求不高的项目组里工作两年,可能不但水平没提高,还染了一身的臭毛病;而其它的很多现代语言,由于本身语法更简单,再加上来自开源社区的资源很多,所以水平高低还和用过多少开源库关系也很大,多干自然强。


就目前中国市场现状而言,做C++个人推荐去硬件公司。
最后想顺便聊两句题主提到的Java。


确实,现在Java市场比C++大。Java的人才需求主要来自于:Android手机开发和服务器后端。


但是我觉得,将来有一天Java可能会死,而C++不会。


因为现在Java在它的两大应用领域里,都没有不可替代的优势。
手机开发越来越显现出跨平台化的趋势。之前有各种使用Web技术来做原生APP的框架,现在又有微信小程序这种热门的方向。
而在服务器后端,Java主要出现在Java+PHP的经典组合里。PHP开发速度快,可性能太差。所以后端主要业务用PHP写,在需要性能的时候用Java。然而,现在开始流行的新的后端技术,都是本身开发效率既高,性能还不见得比Java差。


放在在整个编程语言发展历史里,Java更像一个介于C++和动态语言之间的过渡产品。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-26 02:51 , Processed in 0.085779 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表