前言


 

普遍问题

学校的课程设计不完善,涉及面广,什么都不深入。

老师缺乏实际的工作经验,比如说我经常看到老师经常教学生做数学题之类的小程序,但是,实际工作中,我们并不玩这个。

在我看来,要学习某种编程语言,没必要去局限课堂,一方面是进度慢,另一方面,如果你要学习某种语言,关键在学而不在教,你的态度和决心是关键,只要你有决心,没人教也能学会,现在互联网这么发达,什么内容都可以找得到。但是,如果有人教,并且方法合适,肯定会快很多。好了说了这么多,先进入我们今天的主题:C/C++要学什么东西?C/C++学完能干什么?学了又能当饭吃嘛?

C/C++要学什么?


 

基础篇

C语言这好像不用想,必须学的。C++语言:配合对OO的学习,也是必须的。刚开始接触C/C++时,如果是学校开了C/C++课程的话那就更好了,可以跟着老师的进度学习,在课余时间可以多做一些习题或上机练习。如果你是完全自学,你可以找一本面向大学生的教材。掌握了一些基本的C/C++语法,那就开始学习面向对象的部分了,这部分内容比较多,初学者理解起来也会感觉比较吃力,建议多上机练习。在基本了解了C++的面向对象之后,可以开始学习模板库,比如STL,因为STL在我们的软件开发中非常重要,甚至有些招聘都要求会STL,(STL:标准模板库),这里面包含了大量的数据结构和算法的实现,有些可以直接拿来用,但是如果你对数据结构有特殊需求,那么你就要自己去实现这些数据结构

进阶篇

如果C/C++基础部分没什么问题,那么你就可以进阶学习了,学习了这些你或许感觉有疑惑,为什么我不能开发出一个带界面的程序呢,呵呵,如果你又这样的需求,那么你可以学习一些界面库,比如QT,MFC等,这两个是比较常用的,QT入门稍微容易些,但是往后深入会比较困难,MFC入门起来会麻烦一点,有很多人也就是因此而放弃,但是甜头在后面,只要入门了后面的路将会是一马平川,障碍比较少,顺带提一下,中间要学习的数据库自行研究。(oracle:数据库方面业界的老大,我们的应用基本上都使用ORACLE数据库,又怎么不学呢)

中间如果你对某一领域感兴趣,你就需要去了解和学习相关的库,比如三维图形库OpenGL,网络通信库ACE等等,这些库基本是都是标准C/C++写成的,一般都是跨平台的。

学完这些可以常识把windows桌面上的东西更新一波,把这些应用软件变为自己做的,你就很了不起了。

秃顶篇

学完上面的,基本工作这块没什么问题,想要后期提高,不妨研究下系统内核编程这块,研究各种系统内核,以及算法的深度学习这块也是可以的。或者是往更专业化方向研究。注意这里不是学习了,是研究了。

C/C++学完能干什么?


 

1、服务器端开发:很多游戏或者互联网公司的后台服务器程序都是基于C++开发的,而且大部分是linuxunix等类似操作系统,所以说,你如果想做这样的工作,你需要熟悉linux操作系统及其在上面的开发,熟悉数据库开发,精通网络编程。

2、游戏:目前很多游戏客户端都是基于C++开发的,除了一些网页游戏可能不是,这个领域需要学习的东西就比较多,个人不太了解就不多说。

3 、虚拟现实仿真:这个也是发展很快的计算机领域,目前各种数字地球,数字城市,虚拟地理环境什么的,出现了这方面的大量应用,不过也不限于这些方面,比如科学计算可视化也是其中一个方向。这个方向重点需要学习的是图形学。

4 、数字图像处理:现在市面上有很多VC++图像处理的书籍,可见在这个领域的应用软件开发也是占了很大比重,需要深入学习数字图像处理和模式识别等课程。

总的来说:

服务器开发工程师、人工智能云计算工程师、信息安全(×××反×××)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等

学了又能当饭吃嘛?


 

这个没什么好说的,自己上招聘网上看,先看的不是工资,而是需求的能力你是否具备?别人给多少不是问题,问题是你的肩膀能不能扛得起这个事儿。现实就是如此。

结束语

和大家说了这么多,并不是告诉大家我的技术有多么多么的牛,而是想告诉大家,只要你有决心和意志,要好学C/C++并没那么难。要混口饭吃也不是这么难哦。