大学,学的是化学,工作后竟然干了程序员,呵呵,自己都奇怪。
正规的计算机教育就是谭浩强的c语言程序设计。虽然是必修课,但是毕竟不是计算机专业,要求很低的,函数+排序+指针就算通过了,应该是二级水平吧;可以吹嘘的是考试都是98分,也是大学除了体育和化学实验外最好的成绩了。也是因为这本书,后来写perl程序、vb程序没有觉得有多困难。一般的软件编写只不过是简单的加减程序写个函数,加点数据库应用经验完全是可以应付的。
头疼的事情是来自于开始搞gis,虽然是二次开发,但自己好强用上了vc++,而且是com。经历了一年多的不断下载代码、实验代码也算是个半懂了,可以对付各种项目了。这其中要感谢互联网,让我弄不明白utf-8怎么和ascii转换等等问题,因为没有哪本书告诉你是怎么回事。当然,开始的时候,最让我头疼的是与和或这样的基本问题,为什么fopen函数要用参数“或”运算后的结果呢?当我把那本大学时的教课书翻出来时,让我脸红的是当年说得很清楚了。等我把位运算看完了,还是不太明白有的程序中short a=8; ((char*(&a))[0]<< 8|(char*(&a))[1])会倒序,这个问题是我在看编程高手箴言这本书中找到答案的,汇编基础还真是重要。当然关于指针是一个整数的概念等等也是在日后才有所体会的。
也是在做gis开发的过程中,知道了com可以通过“实现”来达到继承的效果,而且可以像cad那样提供二次开发,可以实现完美的架构设计。这个答案从来没有从书上找到,只是找到了这么个概念,至少没有找到过例子。以至于我从来没有在网上找buddy control也就是所谓两个控件绑定的实现方法,后来才知道要把msdn看透,至少要看个大概。同时,把我对算法和数据结构实用性的怀疑击了个粉碎, 因为gis的很多算法stl没有提供。
几年前,我很赞同计算机教育落后,教材跟不上潮流!现在终于明白:
潮流的东西毕竟是浅显的,内涵的基础的确实没有变!
半部论语治天下没有错,错在你没有读懂!
基础非常重要,而且一定要能打100分,任何问题!
说到最后,学习得越多,才知道自己的浅薄!
谨以自勉!