龙空技术网

零基础学C,有哪些职业发展?(一)

k米 29

前言:

当前姐妹们对“c语言自学到什么程度可以工作”都比较着重,小伙伴们都想要学习一些“c语言自学到什么程度可以工作”的相关知识。那么小编在网摘上搜集了一些有关“c语言自学到什么程度可以工作””的相关知识,希望小伙伴们能喜欢,同学们快快来学习一下吧!

零基础学C有哪些职业发展?

可能很多人并不知道C++程序员该往哪些方向发展。我是在游戏客户端发展通道,第一年是做的浏览器,后面变的是基于k2引擎,做了一年多的游戏开发。接着是做了Unity开发方向,有3年多的经验。2020年是开始做ue4,现在已经有4年的ue4开发经验。除了第一年是浏览器开发,剩下的9年都是在游戏开发方向发展。

CS家程序员除了游戏客户端开发,其实还是有这些方向的,我会一个一个讲。

·先看一下Ue4发展通道。Ue4的引擎底层是C++实现的,在应用层一般都是要会写C++或者用UEA4的蓝图来开发功能,当然也会嵌入Lua这种脚本语言用来做热更新。其中蓝图跟Lua都是可以热更的,但C++代码是不可以热更的。

C++这部分代码主要是用来写一些要运行效率比较高的或者是基础的不会变动很大的功能,是会用C++来写。代表性的岗位就比如和平精英的吃鸡类游戏客户端。

·像第二个发展通道就是unity,unity引擎底层也是C++实现的,但它暴露给业务那一层的开发,主要是C#语言或者也会嵌入Lua作为脚本语言。代表性的职位比如说是王者的游戏客户端。

C++这一层如果是做unity主要还是在引擎这一层会做,业务层这块就比较少去用C++。当然我之前做Unity的时候也有部分是用了C++做一些中间层,有时候也会有一些业务是要用C++的,就是一些要求效率比较高的,比如网络的通信开发可能会直接用C++来写。

·第三个跟游戏相关的是Cocos,引擎底层也是C++写的,但它上层,会用JavaScript或者是TypeScript来写一些脚本代码,C++可能也是只在引擎那一层会用到。它的代表性职位主要是在H5的小游戏这一块。

·第二个发展通道其实是游戏服务器开发。服务器开发其实可以理解成比如一些做大厅的后台的存储、活动或者是一些分,主要是用来做开服这一块,管理那些开服、分布式系统、后台开发。这一块其实就不属于客户端了,属于服务器这块。

服务器可能是主要是在Linux平台下C++的开发,也会用到Lua脚本,或者是还要熟悉一些数据库,做用户的数据存储,网络需要熟悉TCP跟UDP。

·第三大块就比如是一些底层的基建,一块比较有代表性的这样,比如说华为的存储分布式,还有文件系统容器领域,AI内核,AI及大数据,比较基层的一些开发。因为涉及到基层都会要求要高性能,所以这块也会用到C++。

·第二块像比如百度地图的导航引擎也会用到OpenGL的渲染,OpenGL其实是用C++写的。

·第四大块像比如开发一些跨平台的SDK。举个例子,像大疆无人机设备,本地抽象等标准接口,这一块抽象的标准接口时候会打一个SDK的包,然后分发给别的端去使用。比如移动端、桌面端和Web端,然后TA符合直接去调SDK的接口去,等于就是使用它对应的无人机的相关的功能,主要做一些跨平台的SDK。

·第五大块其实是一些比较流行的桌面客户端。举个例子,像比如说抖音现在很火爆,如果是有PC客户端也会用到C++的,那么这种情况下就得熟悉一些MFC,还有Duilib QT。就说这几种,熟悉一种GUI框架,那么就是可以胜任PC客户端。

但是还是得除了这些,GU[这个种要懂一个GUI框架之外,还得懂别的,比如说内存泄露该怎么查,就是毕竟这种PC客户端是针对用户的,你不能够出现经常性的crash。

比如说正在直播用的客户端突然间crash那肯定也是影响挺大的。其实他还会用到别的别的一些,比如说多进程多线程,网络通信跟文件管理这一块。其实是因为你像直播那个进来用户,他其实刷那刷的那些字幕特别多,还有本身你视频流,他就涉及到网络通讯,还有你多线程你不能够卡,比如说你那么多信息过来那么多人发消息过来,比如说一些一个直播间上百万人在线,那这种情况下,你肯定是会会用到多线程跟多线程定型开挖的。

一般Java主要是要考察的话应该是考这些,多线程这块会很多,因为你不能操作界面的时候卡住,但是你后台的任务要进行,所以它一定会有多线程的处理。

现在抖音APP比较火,那么它也会涉及到一些视频编辑的软件工具,比如说像剪映,它其实就是一个视频编辑跨平台的,C++开发也会用到JavaScript,JavaScript可能是用来做剪映的UI排版这一块,自动驾驶仿赢估计是。

像底层一些功能,它肯定是通过封装成一些跨平台的SDK来用,那也会涉及到一些其他的库,比如说vivo、symbody、FFmpeg、OpenGL,还有WebGL这些,这个主要是用来做视频编辑码用的。OpenGL主要是用来做渲染,WebGL也是用来做Web端的渲染用的。

因为毕竟你视频解码之后,你总得播放,就播放就得渲染,所以桌面客户端可以参考,往这两个方向可以去发展。

·第六大块,那是自动驾驶仿真研发,这块其实是用在那个,因为现在新能源车的发展是比较迅速的,然后挺多像像挺多车企,他都会去研发自己的自动驾驶的方案。那像百度其实也在做自动驾驶,那现在比如小鹏,挺多车企也会做这一块。总不能自动驾驶的算法就直接用在车上,肯定不行,肯定是要先做一个类似仿真平台,在计算机模拟去自动驾驶,这样子是可以减少算法的试错风险的。

这种是需要懂Linux系统下的C++开发,熟悉自动驾驶跟模型开发的一些算法代表性,就是一些新能源车企的一些驾驶有相关的仿真研发岗位。

·还有就是这一块就是嵌入式,这其实也是挺大一块。举个简单的,像大疆无人机的飞行系统,这个就是属于嵌入式,要懂的东西是比较多的。

除了精通C++,像这些是Cuda其实是GPU上的,英伟达的平台,OpenCV一个可视化的库,OpenCV是渲染的,还有比较懂其他的精通DSP、Vector C还有这些,这些是跟硬件相关的。

还要数还要熟悉Catch、Dma、memory优化,就是做内存优化了,而且CPU的架构熟悉多线程的编程,还有内存管理,还有就是GPU的编程。因为无人机是识别完之后要进行一通的识别算法的一些计算的,所以这些肯定是要用到GPU编程进行加速。

算法里可能就主要是在图像处理跟视觉感知,熟悉嵌入式Linux编程开发,机器人行业嵌入式其实可以理解成就是要用写编程去控制一些硬件。现在比较火的就是像大疆的无人机,懂得就是需要很多很多的,会发现大学可能就只学了这玩意,只学了个C++,但是这些玩意都没学,Linux可能在大学可能都不教,所以要求是挺高的。

但不管怎么说,C+语言是基础,这个方向就是量化交易,量化交易主要是比如像一些证券公司、公募跟私募会招一些专门做量化的,就是用C++去写一些量化交易系统。

为什么量化交易系统要用到C++?其主要原因还是因为效率,和其他的高级语言比,效率不高,比如说你的交易指令就比别人慢,那肯定是有劣势的。

所以说量化交易系统,他一定会用C++去写他的核心的策略代码的,主要还是在它的运行效率更高。所以总结下来的话,主要是有这方向,一个两个,三个四个五个六个七个八个,当然也会漏掉一些。只是这里是我总结的一些学C++可以往往后发展的一些方向,仅供参考。

标签: #c语言自学到什么程度可以工作