从学习c 到现在已经有四个年头了,但是从来没有很深入学习,有人说c 是面向对象的编程语言,但是我在这里想说的是,c 是一个多泛型的编程语言,它既可以面向过程,比如我们完全可以用c 写c的代码,这是没问题的,它也是一个面向对象的语言,它具有面向对象的特征,可以模拟现实世界中的各种事物;它也是一个泛型编程语言,里面包含大量的模板特性,比如c 的标准库stl就是基于模板的一个库,c 语言的难学也就是因为它的功能十分强大。
c 初学者一般可以按照下列的顺序进行学习:
刚开始接触c 时,如果是学校开了c 课程的话那就更好了,可以跟着老师的进度学习,在课余时间可以多做一些习题或上机练习。如果你是完全自学,你可以找一本面向大学生的教材(谭浩强的教材比较适合入门)。掌握了一些基本的c 概念了,那就开始学习面向对象的部分了,这部分内容比较多,初学者理解起来也会感觉比较吃力,建议多上机练习。在基本了解了c 的面向对象之后,可以开始学习模板库,比如stl,因为stl在我们的软件开发中非常重要,甚至有些招聘都要求会stl,(stl:标准模板库),这里面包含了大量的数据结构和算法的实现,有些可以直接拿来用,但是如果你对数据结构有特殊需求,那么你就要自己去实现这些数据结构。
如果你已经进入了c 的世界,那么你就可以进阶学习了,学习了这些你或许感觉有疑惑,为什么我不能开发出一个带界面的程序呢,呵呵,如果你又这样的需求,那么你可以学习一些界面库,比如qt,mfc等,这两个是比较常用的,qt入门稍微容易些,但是往后深入会比较困难,mfc入门起来会麻烦一点,有很多人也就是因此而放弃,但是甜头在后面,只要入门了后面的路将会是一马平川,障碍比较少。
库,在c 的世界里具有很高的位置,你如果对某一领域感兴趣,你就需要去了解和学习相关的库,比如三维图形库opengl,网络通信库ace等等,这些库基本是都是标准c 写成的,一般都是跨平台的。也许有很多会有疑问,我学习了c 以后能做什么样的软件开发工作?目前c 软件开发主要集中在以下领域:
1、服务器端开发:很多游戏或者互联网公司的后台服务器程序都是基于c 开发的,而且大部分是linux,unix等类似操作系统,所以说,你如果想做这样的工作,你需要熟悉linux操作系统及其在上面的开发,熟悉数据库开发,精通网络编程。
2、游戏:目前很多游戏客户端都是基于c 开发的,除了一些网页游戏可能不是,这个领域需要学习的东西就比较多,个人不太了解就不多说。
3 、虚拟现实仿真:这个也是发展很快的计算机领域,目前各种数字地球,数字城市,虚拟地理环境什么的,出现了这方面的大量应用,不过也不限于这些方面,比如科学计算可视化也是其中一个方向。这个方向重点需要学习的是图形学。
4 、数字图像处理:现在市面上有很多vc 图像处理的书籍,可见在这个领域的应用软件开发也是占了很大比重,需要深入学习数字图像处理和模式识别等课程。
呵呵,说到这里都感觉好像跑题了,都没看到具体什么学习路线啊,就当是自己的学习感言吧,有什么不对的,也欢迎大家讨论。