编程语言
首页 > 编程语言> > c/c++开发方向如何选择?坚持进阶学习c++还有意义吗?

c/c++开发方向如何选择?坚持进阶学习c++还有意义吗?

作者:互联网

前言

在这里讨论c/c++的开发方向的好坏,本来就是一个极具争议的话题。就好比和大家讨论:谁是世界上最好的语言一样,个中都有强手。而技术方向也是,每一个方向都存在高薪和出色的公司。所以这里的讨论分享根据个人的看法和普遍行情做交流。

在这里插入图片描述
首先就开发方向而言,大致可以分为四大块:

一、嵌入式开发

嵌入式开发其实可以分为两大类:一类是不带操作系统,一类是针对带操作系统的Linux。带操作系统的当然还有其他,这里就拿Linux操作系统做讨论。

不带操作系统的,大家最熟知的就是MCU,这是很多同学大学时期就会接触的东西。比如智能家居,或者说给门做一个开关等等,这些对于刚开始做开发的同学来说,是比较酷。但是从这个场景也可以看得到,MCU是更适合单人或是小团队做的项目,不太适合大项目的多人合作。因为本身MCU的特点就在于轻量级,很小。很多公司项目就是一到两个人即可。选择这个方向的很多是以电子,通信,自动化或是机械设计相关专业的朋友,也就是计算机边缘专业的朋友会选择MCU,那如果是计算机相关专业的朋友可能就会选择Linux相关的,选择MCU的很少。

那MCU到底值不值得推荐呢?
回归到话题本身,对于方向的选择就是个人的爱好与自己经验的选择。有些朋友可能就是喜欢做MCU,面向爱好编程,这里就不做讨论。这里我们更多讨论的是“面向薪资编程”,可能很俗气,但个人认这是相对客观的选择标准。

说MCU好吧,是的,MCU很容易学,不是很难。如果是想做软件开发,做硬件不行吗?

做硬件是可以的,硬件是软件的支撑。但是对于一名程序员来说,对于运用的多样化还是靠软件去支撑。也因为如此,软件开发的薪资会比硬件多很多。所以,如果不是特别喜欢,愿意为爱发电的化,还是建议大家做软件。

这里不推荐,不是因为没有市场,毕竟国内而言,好的,优秀的硬件大厂也不是没有。只是作为软件开发的角度来看,它的成长性不强,多人协作的能力不强,不适合大项目。这里大项目的理解是人数上的大项目,而不是金额上的。

再说说Linux操作系统方向的嵌入式
嵌入式的很多岗位属于制造行业,其特点是靠硬件和人力成本上的利润获利,而软件对于制造行业来说就是半卖半送,不会以软件作何核心来体现。比如手机上的软件,

而Linux嵌入式比MCU好的点在于,至少是到操作系统的,其使用场景相对复杂。先说应用开发,以上位机,界面化开发为主,能选择的方向:QT等,其项目单一,迭代时间很长。然后是内核驱动开发,主要是产品厂商,可能会有少部分会有Java开发,大概率是的芯片原厂。

那说到这里,不少朋友可能会说,那到底如何选择技术方向呢?

如何判断方向好与不好,主要看两点:

其实很多现在大家所说的程序员的35的危机,大多来自于此,一个方向做了三五年,一眼就看到了八年十年后自己的样子,它的薪资成长性和技术成长性已经看到头了。另一方就是来自于内卷。

就上面已说的岗位而言,MCU 的薪资成长性,从新手到五年,是由区别的,但是五年到十年的提升就比较一般了,技术成长性也会一般。

而嵌入书,上位机,这种,如果是进大疆等这种龙头企业就没法谈,所以我们今天讨论的是一般性,不会拿最顶和最差做特例去谈。

说到龙头企业,这里和大家分享一下offer如何选择,特别是对于应届生而言,很多时候对于薪资和平台之间两难。

第一,看公司。公司是在什么平台,平台和公司有关,和你无关,但是公司好不好还是和自己有关的。行业往后排。

第二,看团队。大的公司是有不同的团队的,选择好的团队,也就选对了之后处事的同事人群,这对于自己之后的学习提升会有很大的帮助。

第三,看薪资。在好的平台公司,除非体量差别特别大,如果差不多,就看薪资。

第四,看技术方向。

很多人不理解,为什么把技术方向放在最后。

这么说吧,现在Java很火,不少的c/c++开发的程序员都转了Java和go,原因并不是说看好这个方向,大部分的实际情况还是在于,招聘的大小公司多,薪资高。其实也就是"面向薪资"编程。至于有人说的隔行如隔山,那大家可以想想,同样是编程,这座山能有多高,而且作为一名程序员而言,学习能力是必备的基础技能。

你能够让好的企业面试通过了你,并给你开出满意的薪资,然后让你转一个技术方向。说明他们认可你的学习能力,给你学习的时间。那自己还在担心什么呢? 当然,还是之前说的,自己对于目前的技术方向有追求就另说。

二、桌面开发

桌面开发的技术体系和上位机很像。c/c++的桌面开发以QT/MFC为主。其薪资也有很高的。比后端不会低。但是薪资的成长性上,五年和十年也不会太大。

三、游戏开发

游戏开发的好处在哪里呢?你可以完全不用担心没有应聘的岗位,岗位一直都会有,只要PC机还在,游戏产业还在。就会有大把的岗位。不像是区块链,搞不好就没有了。

游戏开发的话主要是游戏客户端开发和服务器开发。那这两个方向如何选择呢?如果薪资差不多的话,选服务器开发。

四、后台开发

后台开发就比较泛了,比如前面说过的游戏服务器,还有金融,网络安全等等。但是总体来说,没有桌面开发那么多,更比不上Java。后台开发有很多,但是c/c++后台开发不一定每家公司都有。如果说你在的公司目前有c++后台开发或是以前没有现在准备有,说明相对来说该公司还是不错的。c++面向的是组件开发,要用到c++后台开发就是需要去造一些轮子。

这里是比较推荐大家,如果是准备扎根于c/c++这个方向,可以优先考虑c++后台开发。

原因有四:

第一,c++后台开发是常年公司招人却又招不到人的岗位,不是说它不卷,而是对于这个岗位的公司来说,基本上都是本着宁缺毋滥的原则。所以只要技术到位,薪资还是很客观的。而且大部分是大厂,对于学历的要求也是相对较高。

第二,c++后台开发基本上是大厂必备,对于想要进大厂的c++程序员,它是不错的考虑。

第三,c++后台开发工程师的培养周期很长,比如说Java ,你身边有没有工作四五年的Java程序员被3个月的新生代顶替掉的现象,而这个确确实实存在。而c++后台开发很难速成,它的慢也让很多本身是做c/c++的最后选择去做Java,python了。

第四,c/c++后台开发它是比较庞大而复杂的体系。比如A公司做即时通讯,B公司也做即时通讯,但是他们的代码框架是不一样的,日志也不一样,流媒体编码也不一样等等,这也就是为什么招聘的这个岗位的时候更注重程序员对计算机原理,底层技术的理解和学习能力。也正是这种非一成不变让技术岗位更具成长性和竞争性。

既然说了c++后台开发是c/c++后台开发者不错的选择,但是面对其要求肯定也让不少人感到困惑:我是不是适合呢?

五、什么样的人比较适合c/c++后台服务器开发?

前面咱们也提到了,正是因为c++的内容很多,所以至今是没有出现c++大一统的框架来解决所有的问题的。还有不少的朋友甚至觉得做c/c++后端开发 只要把TCP/IP协议学好就可以了。

六、那对于c++后台开发的技术学习,具体要学习哪些技术内容呢?

这里分享给大家分享一份c/c++Linux后台开发的学习技术路线,自己可以对照的参考,查漏补缺。

作为个人目前觉得对于对c/c++后台开发体系总结完善程度最为详细的学习路线,来自于零声的这份学习提升路线:

主要从七大模块提升:

所以不管学习与否,对于这样一个完善详细的提升技术路线,是值得大家去获取参考的。

技术路线完整详解版+视频学习教程免费领取

七、配套推荐给大家学习的参考书籍

MySQL:《高性能MySQL第3版》
Nginx:《深入理解Nginx:模块开发与架构分析(第2版)》(陶辉)
Redis: Red is设计与实现(黄健宏)
Linux内核:《深入理解Linux内核架构》(郭旭译)
数据结构与算法:《算法导论》(第3版)
性能分析:《性能之巅洞悉系统、企业与云计算》
MongoDB:《MongoDB权威指南》
Ceph:《Ceph分布式存储学习指南》(Ceph中国社区)
Docker:《Docker容器与容器云(第2版)》
TCP/IP:《Tcp/lp详解卷一卷二卷三》
Linux系统编程:《Unix环境高级编程》
计算机:《深入理解计算机系统》
DPDK:《深入浅出DPDK》

标签:进阶,坚持,c++,薪资,开发,后台,MCU,方向
来源: https://blog.csdn.net/ytggsam/article/details/122224155