page contents

科普:学C++以后能从事哪些岗位?

C++还是能找到很多工作的。但同时身处这个内卷的时代,小编还是建议要多学习,努力提升自己在行业的适应能力以及竞争力,c++对于我们来说,就好比是一把弓箭,你光有一把弓箭,是没办法射大雕的。你还需要许多额外的能力和知识储备,甚至还需要一点预判的意识,才能够在合适的时机以合适的力度射出那一箭,而C++,只是那支射出的箭罢了。

很多人都不知道学了c++之后能做什么,能找什么样的工作,能去什么样的公司,实际上,学了C++之后,能做的工作还是非常多的,如下所示:


一.实验室开发


不敢说C++是世界上最好的语言,但C++基本是工科生中的大语言。暂且不说计算机专业,很多工科专业,比如电信、电气、通信等专业,基本上正常的学习中都会使用到C++。


都说C++兼具面向过程以及面向对象的特性,既拥有比较优秀的运行速度,又有良好的大型项目开发能力,那简直可以制霸高校实验室了,当然我们知道,另外一门同样在高校实验室里与C++不相上下的语言,就是Matlab了。


很多人读研期间,基本都是是左手Matlab试探,右手C++优化,论文专利什么的就靠这两种语言双管齐下,在实验室里,基本所有的算法都是用C/C++写。


二.后端开发


不过等到真正要找工作的时候,就不是那么回事了,听说现在由于算法岗已经是诸神黄昏了,导致一大批人冲向了后端开发。


而主流的后端开发语言就那么几种,以Java、C++领衔,Python和Go紧跟其后,想通过C++找一份合适的后端开发工作,我建议可以从以下几个方面来提升自己:


  • 扎实的编程基础


这个基础扎实首先意味着你比较熟悉C++这门语言,知道不同版本的语言特性(比如C++11以及新出的C++20的区别),对常见的语言机制(比如多态、虚函数表、模板等)的底层有自己理解。


虽然说不看重你用什么语言,但是最起码你得比较熟练的使用一门语言吧。怎么才算熟练呢,大概C++底层机制、多线程编程、跨平台编程这些你都需要有所了解吧。


除此之外,编程能力的素养还体现在算法思想和数据结构的理解上,毕竟程序的基础就是算法和数据结构嘛,所以一些基本的数据结构,比如链表、数组、二叉树、队列之类的,还有一些基本的算法思想,比如贪心、分治、动态规划等都最好需要好好掌握一下。


  • 系统的理论知识


这个就是科班与非科班比较明显的差距所在了,很多非科班转行的朋友其实编程能力很强,但是由于没有接受过系统的理论学习,所以在理论学习上会比较吃亏,而后端开发涉及的东西比较多,从网络到性能再到架构,都需要系统的计算机理论来支撑的。


  •  后端基础


想去做后端开发,起码得知道后端是什么吧,这就意味着你得知道一些基本的软件工程、软件架构、设计模式等知识,同时,搞个后端哪能不懂数据库呢,那你不得再学些诸如MySQL、Redis等数据库的基本操作吗?


当然到这,可能也就算是个入门水平,真正上手后端开发的时候,像微服务,中间件(Kafka/Zookeeper/Hadoop等)等相关概念与技术的学习不也得提上日程了嘛。


对于已经工作想转行的朋友来说,后端基础还是会比较看重的,大家可以对照着反思自己是否具备这样的能力了,如果还没有,可以抓紧时间好好准备准备。


三.客户端开发


C++已经是一个很成熟的语言了,除了后端开发其实它还有很多其它的开发岗位可以选择,自然而然的,就是客户端开发了。


相信大多数学C++的朋友都用过C++写桌面软件,那时候估计还是用MFC,照着代码书上敲一遍就能写一个比较简单的界面了,所以如果不想做后端,完全可以靠C++找一份客户端开发的工作。


只不过,做客户端同样也需要扎实的编程基础和计算机理论基础,同时可能还要熟悉Windows/C++编译链接机制、QT客户端开发技术体系、Windows消息机制等技术。


所以,假如你学的是C++,同时也不在乎业内莫名其名的岗位歧视链的话,找一个客户端开发的工作也是非常不错的。


四.音视频开发/多媒体开发


我们知道现在基本各个大平台都在做短视频,同时也不断接入各种直播模式,在这个趋势中,对于音视频/多媒体方向的开发需求越来越广。


比较成熟的互联网大厂通常会把音视频/多媒体技术方向独立出来,作为为全公司所有产品线提供中台的支撑。然后相关的处理算法会封装成SDK给各个业务中调用。


这说明音视频/多媒体开发是很重要的一份工作,而在对音视频或流媒体进行处理的时候,算法效率就是很重要的评价标准。这不就是C++所擅长的场景嘛。


所以呢,学了C++还可以选择去做音视频开发的方向,这个方向更偏向于具体的场景,比如播放器,比如直播平台,比如音视频特效等,当然了,C++更多的还是偏算法实现的方向,许多多媒体开发本身还是立足于平台,比如基于Android、iOS或者Windows,来进行满足平台特性的开发。


五.游戏开发


游戏开发也是C++的可以进军领域之一,像很多游戏引擎都是基于C++开发的,只不过游戏开发真的需要兴趣和热情。如果不是因为喜欢游戏,建议还是不要选择游戏开发的岗位。


不是说游戏开发前景不好,而是说这件事如果没有足够的热情很难走得很远,并且因为方向不是很大众,到时候想换方向了,可选择性就不是很多。


国内比较出名的游戏厂商就那么几家,但是投递的人却很多,这也导致这个行业的竞争很大,所以在招聘的时候会更看中你的游戏开发经历。


对于游戏开发的业务能力要求,大概包括游戏引擎的使用和了解,比如常见的Cocosa2d、Unity3D等,游戏引擎的实现原理和机制,还有面试时候基本都会问到的计算机图形学理论,计算图形学是游戏开发领域及其重要的理论基础,毕竟游戏离不开各种图像模型的渲染和处理。


六.嵌入式开发


上面几种岗位选择都是偏软件方向想的,而C/C++还有一类非常大的就业方向,就是去做嵌入式,嵌入式本身可能是偏硬件一点,但是现在做个什么事,都是软硬不分家的。


嵌入式的开发同样也会涉及到网络编程、并发编程等方面。通俗点解释可能就是,嵌入式代码是运行在别的小系统上,而不是传统意义的计算机上。


一般招聘嵌入式开发岗的公司大多是以硬件产品为主的互联网+公司,比如小米、华为等,进去公司很多都是在做物联网相关的工作,毕竟这是热点。当然也会有其它的业务方向,例如芯片、机器人等。


总结


说了这么多,有没有发现会C++还是能找到很多工作的。但同时身处这个内卷的时代,小编还是建议要多学习,努力提升自己在行业的适应能力以及竞争力,c++对于我们来说,就好比是一把弓箭,你光有一把弓箭,是没办法射大雕的。你还需要许多额外的能力和知识储备,甚至还需要一点预判的意识,才能够在合适的时机以合适的力度射出那一箭,而C++,只是那支射出的箭罢了。


你越熟悉它,箭头便愈发锃亮,破坏力也就越强,并且同时,空中盘旋的也不只有一只大雕,你还需要选择机会最大的那一只。

  • 发表于 2021-07-23 15:32
  • 阅读 ( 655 )
  • 分类:C/C++开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
婷婷
婷婷

13 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1470 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章