首先说一下,由于我是小白,如果遇到什么学术上的错误还请大家见谅。我写这篇文章主要原因是我想通过我自己的经历客观的反映一下现在普通大学计算机专业本科教育的一些事情。

  我是一名计算机专业的本科生,我在江苏一所还算不错的大学里学习计算机专业。

  由于高考分数还算比较给力,我顺利的考上了我现在上的这所学校。对于计算机专业,我的第一门与专业有关的课程自然就是程序设计语言了。有的学校是C,有的学校是C++,还有一些学校是Java。不过根据和我高中的同学交流来看,还是C居多,然后是C++,最后才是Java。而我们学校不论是什么专业在大一都要学习C++,只不过用的教材不一样罢了。我们计算机专业和软件专业采用的是双语教学,采用教材是电子工业出版社影印的DEITEL 《How To Program》系列。记得我们去领书的那一天很多同学看到这本全英文,16开,1000多页的大部头时都被吓傻了。

在中学阶段,我不知道STANLEY的《C++ Primer》,不知道 Nicolai 《The C++ Standard Library》更不知道Stroustrup的《The C++ Programming Language》,对C++唯一的认识就是谭浩强的那本《C++程序设计》。我是看着谭浩强了学完的各种程序结构,简单的指针应用,基本的算法,简单的类与对象概念。从初一看到高二,可以说上面的代码基本上都能背下来了。

  面对着突然降临的“神书”,我在想,学校为什么不选择谭浩强呢?后来通过逐渐的学习我发现谭浩强更像是用来应付计算机考级的,而我们的选用的教材从一开始就强调类与对象与软件工程的概念,一上来就引入UML,并且感觉对很多东西分析做得很深入透彻,把什么事情不能干,为什么不能干说的很清楚。例如在使用对象的默认运算符“=”拷贝对象时对象不能包括动态分配内存的数据成员(应该就是深拷贝和浅拷贝的那些事),谭浩强仅仅说“再次不作详细分析,只需记住这一结论即可”,而在我们用的《C++大学教程》中对此作了很明白的分析了不能做的原因并且在后面运算符重载的章节里提供了解决的方案。并且通过这本书在软件工程上潜移默化的影响,我开始应用类与对象的知识自己去实现一些黑窗口下的系统,例如书中所说的ATM系统。

  由于我在上大学前有点基础,再加上我的努力,我顺利的啃下来了英文的《C++大学教程》,但是对于其他的很多同学就并不是这样的顺利了,他们先是买了翻译版的《C++大学教程》,在考试前又抱《谭浩强》的佛脚。

  在学长的推荐下,我第一次购买了图灵书籍——《C++ Primer 4th》中英文各一本。中文版的翻译还算可以,英文版的英语还算浅显易懂。在大一的C++结课后,我选择了专心读它,虽然这本书并不像《C++大学教程》那样强调直接的应用,但是我从中学到了许多语言的细节,包括如何更好的编写C++程序,编写出可移植性好的程序。

  我第一次真正使用C++去做的事情是完成学校的课程设计作业。MFC这个东西我刚开始也是一头雾水,搞不清楚如何映射消息,如何关联类与控件,为什么这个消息响应函数要放在那个类下。但是逐渐通过对MFC类的关系的了解,我初步的明白了MFC的消息机制。通过了使用GUI对数据进行输入输出,对控件的操作与使用,我逐渐的明白了一些继承与多态的用法。体会到了override,运算符重载,函数重载,类模版的很多实际用途。虽然听说C#和.NET神马的要比这一套给力的多,但是我觉得我应该以基础为先。

  接下来一年里,我要C++更多的应用。

  最后谢谢石头送我的《Programming Windows》影印版,我真的很喜欢,虽然有翻译的还不错的中文版。不过我觉得既然要去深入学习,就要通过英文。真正的体会作者的意思。