想学c你了解它的应用行业及现状吗一

免费视频网站vip账号和密码 http://www.cgia.cn/news/chuangyi/1579106.html

最近在一个强二线城市找工作,那些招聘网站上列出的最近三天发布的c++开发岗位只有两页,其中还包含着不少培训公司的招聘广告。唉,c++的需求是越来越少。工作了8年,以前的搞c++的同事有转c#的,也有转行搞java的,当然,还有当上日理万机的领导的(基本没有时间code了),出去创业的就更不用说了。让人郁闷的是,新招的年轻猿们搞java和c#的一大堆,那些c++的招聘启事上基本上没有投的......抱怨归抱怨,咱今天还是说说c++的应用领域。还是从招聘网站的需求上说起吧。

First

游戏服务端和客户端程序。此类应用算是c++的一个传统应用吧,主要是内存管理和网络以及执行效率这几方面比较有优势,绝大部分游戏引擎都是用c++写的,比如UE4、大部分手游服务端(比如cocos2d_x)。看下面这家公司的c++服务端的招聘要求。(原谅我把无关的内容划掉了)。

游戏服务端开发岗

这是北京的一家比较大的上市软件公司的c++招聘要求。C++语法精通是必须的,boost的asio网络库也是一个硬性要求,数据库这块到不是很难。虽然没有介绍具体使用的那款游戏引擎,估计应该是cocos2d_x,因为cocos2c_x提供了c++和lua这两种开发api。

就这个岗位来说,对于还没做过项目、只会c++语法的同学还是挺有挑战性的。具体来说,由于这家公司的服务端程序运行在linux下,所以基本的linux知识还是要有的,不过这个要求不会太高,掌握基本的linux分区、常用命令、常用api(比如上面说的多线程)基本能应付。Linux网络这块比较庞大,这份岗位上已经指定了使用asio库,建议基本的socket通信还是要会比较好。Mysql数据库提供了c++的开发套件,直接下载开发文档即可,其他数据库情况也差不多。

这份招聘岗位的要求对于游戏服务端还算是比较典型的。所以,有志于游戏服务端开发的同学,可以在学完c++语法后,学习下linux基本知识,比如在linux系统下用c++开发一些简单的小程序,比如linux聊天室程序,设计客户端和服务端、网络及多线程。下一步可以尝试看看数据库方面的开发资料,然后自己动手把之前的聊天室程序发送的数据写入到数据库上。至于boost的asio库,网上学习资料很多,看完后可以把聊天室的网络这块由linux的socket换成asio库来执行网络传输。

其实,游戏服务端今年来使用java开发的情况也越来越多,数量上也可以和c++平分秋色,甚至还要多一些。硬件性能的提高和硬件价格的下降以及java性能的提升是重要原因吧。所以,想从事游戏服务端开发,c++和java都学一些,还是比较保险。

总结一下,对于使用c++开发的游戏服务端和客户端来说,网络库、数据库、三维引擎都是要掌握的,这三方面基本都可以用c++搞定。

Second

虚拟现实和仿真软件:大家听得比较的多应该是虚拟现实,仿真软件在生活中不常见。前两年VR确实挺火的,常规的VR引擎基本上由c++开发。其实这由设计到c++的另一个应用领域:图像处理,这个以后再说。其实上面提到的三维引擎,好多都是支持VR的,比如UE4、U3D等,基本上还是应用层的开发。现在VR应该还有一些团队在开发,应用的方向可能比较有限,比如房地产行业的楼盘三维展示,感觉更像是三维引擎的一个应用方向,就行游戏也是三维引擎的一个应用方向一样。先看下这方面的招聘要求。

虚拟现实开发工程师

这是北京的一家专注于做三维设计的公司的岗位要求(二线城市这类岗位确实不多,一线城市也没找到几个),和上一个岗位一样,精通c++的语法是基本要求,还有熟悉U3D或UE4,以及opengl。这个岗位倾向于研究三维引擎,需要比较深厚的数学功底和计算机图形学知识。这种岗位比较少,就不多说了。

计算机仿真应用还算比较多,比如电路模拟、工业仿真、军事推演等。这类岗位对专业知识要求就比较高了,c++仅仅是一种专业知识的表达、展示工具。

上面的岗位是一家专注做仿真的公司的c++高级研发工程师的招聘要求。可以看出,对专业知识的要求还是挺高的,对c++开发相关的技能没有提出太多要求(其实想做好这个岗位,软件开发的技能要求还是比较高的)。

列出这两个岗位,只是说明下c++在这方面的应用。由于专业性太强,不大适合广大计算机专业的猿猿们。

PS:有种感觉,以后也许这种仿真才是c++仅有的几种应用方向之一......

Third

ARM等嵌入式平台、硬件驱动:随着物联网的大热,嵌入式开发工程师的需求也越来越多,同样也带动了底层驱动工程师的需求,另外,现在的硬件的性能也逐渐的不再是瓶颈,所以c++在嵌入式系统上的应用也就多了起来(以前主要是c语言为主)。

这类嵌入式方向的应用也离不开网络开发,而且绝大部分嵌入式软硬件运行在linux系统上,winCE已经很少了。另外,虽说嵌入式系统的硬件性能有了大幅提升,但是还是不能喝PC相比,所以,嵌入式系应用的开发还需要考虑代码的优化,而且优化这方面也挺重要。

驱动开发方面,c语言和c++都有需求,这方面也是c++的一个传统应用方向,windows和linux都有应用场景,而且这方面和硬件创业也能扯上点关系(有志于硬件创业的同学可要学好c\c++哦)。个人感觉从事驱动方面开发需求还是挺大的,毕竟,很多硬件需要驱动才能工作呀。下面的岗位就是嵌入式方面的,待遇还不错。

驱动开发岗位

从第一条要求来看,这个岗位适合的专业还挺多的,另外要求精通linux下的驱动程序的编写于调试,市面上有很多linux驱动开发的书籍,讲的很透彻。另外,该岗位还要求了解arm的体系结构和总线接口协议(这个真不太懂....)。可见,这个岗位对于想要自学硬件的同学有点难度,毕竟这些东西还需要亲身拿着设备去实践才能理解的深些,对于c\c++开发语言来说,反而没有硬件的要求高。另外,对于这些岗位,个人感觉对linux操作系统了解的比较深是很有好处的。

待续........




转载请注明:http://www.aierlanlan.com/rzgz/3789.html