来射|假如 C++ 是一只箭,你会用它来射哪只雕?( 四 )


我们知道现在基本各个大平台都在做短视频,同时也不断接入各种直播模式。在这个趋势中,对于音视频/多媒体方向的开发需求越来越广。
比较成熟的互联网大厂通常会把音视频/多媒体技术方向独立出来,作为为全公司所有产品线提供中台的支撑。然后相关的处理算法会封装成SDK给各个业务中调用。
这说明音视频/多媒体开发是很重要的一份工作,而在对音视频或流媒体进行处理的时候,算法效率就是很重要的评价标准。这不就是 C++ 所擅长的场景嘛。
所以呢,学了 C++ 还可以选择去做音视频开发的方向。这个方向更偏向于具体的场景,比如播放器,比如直播平台,比如音视频特效等。当然了,C++ 更多的还是偏算法实现的方向,许多多媒体开发本身还是立足于平台,比如基于Android、iOS或者Windows,来进行满足平台特性的开发。
不过想要找这个方向的岗位,基本的音视频开发的理论知识得掌握吧。这里同样也包括了很多理论层面的知识,比如图像、音频、视频的采集、渲染、处理、传输等方面的问题,图像和音视频的加工、裁剪、编解码等处理。
一些基本的处理库,用于图像处理的像OpenGL、OpenCV等,用于视频编解码的x264、OpenH264、ffmpeg,用于音视频处理的speexdsp、libfaac、opus等库不也得熟悉熟悉吧。
还有音视频传输的协议、直播推/拉流的协议,如RTMP、RTSP等也可以掌握掌握。哈哈不要被吓到,毕竟会 C++ 只是基本的编程能力,但是具体的岗位肯定有业务能力上的要求。
游戏开发
游戏开发也是 C++ 的可以进军领域之一,像很多游戏引擎都是基于 C++ 开发的。只不过游戏开发真的需要兴趣和热情。如果不是因为喜欢游戏,建议还是不要选择游戏开发的岗位。
不是说游戏开发前景不好,而是说这件事如果没有足够的热情很难走得很远,并且因为方向不是很大众,到时候想换方向了,可选择性就不是很多。
国内比较出名的游戏厂商就那么几家,但是投递的人却很多。这也导致这个行业的竞争很大,所以在招聘的时候会更看中你的游戏开发经历。
如果是校招生,很少会有比较多的游戏开发经验,但是可以通过许多途径去弥补这一缺陷,比如参加游戏开发比赛,比如自己开发 demo。起码也得了解过或者用过一些游戏引擎,这样简历也会更加饱满一点。
对于游戏开发的业务能力要求刚刚也提到过一点,大概包括游戏引擎的使用和了解,比如常见的Cocosa2d、Unity3D等,游戏引擎的实现原理和机制,还有面试时候基本都会问到的计算机图形学理论。计算图形学是游戏开发领域及其重要的理论基础,毕竟游戏离不开各种图像模型的渲染和处理。
所以呢,如果你在大学期间有基础过一些图像学的工作,比如一些模型绘制、三维渲染的工作就可以去尝试一下游戏开发的岗位。我之前有个师兄在研究生阶段是做医学图像处理的,主要的工作就是对人体脏器和血管进行三维显示的,然后就去做了游戏开发。美滋滋。