说着说着就扯远了o(╯□╰)o,虽然我不随大流,但看着同学们在老师的带领下混得风生水起,各种成果一项又一项,参加各种比赛拿各种奖项,而自己至今没有什么拿得出手的东西,心里不免有一丝丝浮躁。我所选择的领域确实是一个低不成高不就的领域。
低是指底层,和硬件紧密接触的这一层,如嵌入式开发。嵌入式开发使用C语言,我虽然作为一个C++程序员,但要写纯C代码也并非难事,可是我并非嵌入式专业出生,没有学过硬件方面的知识,找了几本嵌入式的书看了下,果然,没有硬件方面的基础知识什么也看不懂。我们学院前几年有老师带领学生做嵌入式方面的开发,制作出了基于摄像头采集图像并分析处理的智能寻轨小车,参加比赛并拿了奖,不过现在几乎没有听说有嵌入式方面的项目了,现在学院的实验室大部分是搞Web开发、移动应用开发的。毕竟我所在的学院是软件学院而不是计算机学院,学院的主要方向还是应用软件开发,而且Web开发、移动应用开发都是当前最火热,需求量最大的方向,学院从这两方面培养学生,学生以后也好就业。
高是指最上层的应用层。如果是在10年前,C++确实是开发应用软件的主力工具。那时候的C++各种通吃,Windows上的各种桌面应用软件基本上都是VC++或Delphi开发的。那时候的移动端,智能手机主流的 Windows Mobile、Symbian系统上的软件都是用C++开发的。还有什么导航仪、学习机等智能设备,那时候Android系统还没出现,大多是搭载WinCE系统,也是用C++来开发相应应用。而且WinCE上也可以用MFC框架,你能想象吗FC曾经可以拿来开发移动应用软件!总的来说那时候,PC端、移动端、服务器端、3D游戏等各方面都让C++占了,甚至Web开发方面C++都想来插上一脚,微软出的ATL Server就是个例子。那时候的C++程序员可谓混得风生水起啊。可是后来C++的开发范围被新出现的各种语言、框架蚕食。Windows桌面应用开发本来就因为移动端的发展而变得不景气,在这种情况下这方面的份额还被C#/Winform/WPF不断侵占,即使C++没哭,MFC也哭了,他爹微软都快不管它了。而移动应用开发方面被JAVA/C#/Objective-C占去了,除了移动端上的游戏开发,移动应用基本上和C++关系不大了。所以到现在C++主流方向只剩服务器开发和游戏开发了。总的来说就是现在的C++不太适合做上层应用开发了。其中的原因有很多,比如C++不像C#/JAVA那样下面有虚拟机,难以隔离系统特性(总是需要直接调用系统API),没有垃圾回收,没有统一、强大的标准库,背着性能要求和对C的兼容这两个包袱,开发效率不够高,语言复杂等。虽然C++不如以前那么辉煌了,但直到现在他仍然是一门主流语言,在语言排行榜上仍然排在前,再加上有C语言这个亲兄弟拉着它,个人觉得只要C语言不亡,C++也不会亡,如果C语言都灭亡了,JAVA/C#应该也不存在了吧。
C++的开发范围虽然大量缩减了,但仍然是有出路,有前途的。一个是服务器开发,如游戏服务器,Web服务器以及各种云服务器上的服务端开发,这些服务端软件要求高并发,高吞吐量,高性能,所以用C++开发是个很好的选择。一个是游戏开发,PC游戏,各种单机游戏, 络游戏,还有移动端上的3D游戏。还有一个是系统软件开发,如杀毒软件、电脑管家、防火墙等,这些软件因为需要调用系统底层的接口,有的还需要开发系统驱动程序,而操作系统是C语言写的,和操作系统紧密交互用C++当然是最好的选择。另外就是多媒体方面的开发,图像、音频、视频处理,这些东西和游戏一样需要较高的性能,需要榨干电脑硬件的每一点性能,所以用C++来开发是个很好的选择。还有就是一些工控软件、上位机应用,因为要和嵌入式那边的C语言搭配合作,又需要在PC机这边有直观的界面,所以用C++/MFC开发是个好选择。
出路是有,但这条路对初学者对应届生来说并不是那么轻松,比如一个学生学上一段时间的HTML/JS/CSS后,就能动手开发出一些像模像样东西,然后毕业去找Web前端开发方面的工作,由于这方面需求量比较大,门槛也不高,很容易找到相应的工作。而另外一个学习C++的学生就不一样了,这方面的招聘需求没有Web、移动应用的需求那么多,而且大多要求有工作经验,你想想你一个应届生能直接去参与公司的服务端软件开发吗务端是需要高稳定高性能的东西,而且涉及到很多方面的知识,多线程、多进程、内存池、Socket、数据库、Linux,随便一样都不是一个初学者能轻松掌握的。而且学C++的学生在学校里几乎接触不到什么项目,经验上更是一片空白,找工作时有难度啊。但也不是只有忧没有喜,如果C++程序员努力在服务端开发方面积累经验,有所建树的话,收入是相当高的。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!