大学四年,是堕落、觉醒、弥补、选择的四年。从刚刚跨入大学校门时,那个对一切都无知、对一切都好奇、对一切都轻信、对生活充满小说般幻想的小孩,到而今逐渐学会张开眼睛看世界,四年的生活像梦一般的离奇迅速。四年里,无数次感觉自己像是重新投胎作了人,今是昨非,生活和思想可以用“剧变”形容,但逝去的时间、健康,逝去的生命却永不会再来。而今大学毕业快一年了,这一年来上课,看书,与别人交谈,一些想法慢慢觉得有必要记下来,所以找这个时间把大学学习的历程和方法总结一下,用这些文字来埋掉大学的四年。
大学四年的学习路线
进入大学的时候,只知道电脑是用来聊QQ的。当时一片空白,对大学开的课程,像电路原理,高等数学这些,做起题目来很有意思,但不能理解为什么到大学还需要研究这些“深闺绣花鸟”的东西。然而自己又不会学习,不知道有google,不知道有百度。既不愿上课也不会学习,考试勉强及格,技术没有入门。那个时候,在旧图书馆有两本杂志,《电脑爱好者》和《计算机应用文摘》,一路的看,不懂的就猜,好不容易知道了磁盘文件、文件夹、注册表、组策略、批处理脚本、wscript脚本、IP地址、进程、驱动器、浏览器等等这些基本的概念。测试了system32目录下所有可执行文件的作用。
大二开学,那时刚结束C语言课程,两个问题让我很迷茫:在C语言教材上,命令行参数和文件操作算是高级的部分了,可是,现实生活中使用的QQ,IE等等那些界面好看的软件是怎么编写出来的呢?另外,在整本教材中只使用了stdio.h, stdlib.h, math.h,在我们当时使用的那本非常好的教材中还使用了conio.h和graphics.h这几个头文件,这仍然只是TC2中一小部分的头文件,其它头文件是做什么用的呢?因为这两个问题,我打印了TC2中所有的头文件,在TC2的帮助文件中找到了每个函数的用法,并且知道了很多TC2定义的全局变量(如stdin, stdout, _ctype[], _argc,_argv等),学到了很多精简的代码的写法(如fgetc, assert这些宏的定义),了解了函数调用方式的差别(__cdecl, stdcall),知道原来还有far指针和near指针,写程序测试了每个函数,对dos.h、bios.h这些头文件中提供的函数的强大功能虽不能理解但觉得非常神奇并知道了有段地址和偏移量这两种东西。并使用graphics.h中的接口写了一个图形界面的窗口演示程序。这是自己程序设计的开端。
对TC2的学习是个好的开始,但当时学的并不彻底,如中断服务程序,动态链接这些主题。不彻底有两个原因:一是学习途径非常狭窄,不懂的东西几乎都是靠猜的,二是对于感觉上困难的主题的惧怕和回避。第二个原因尤其严重,那些问题一直拖了两年多做毕业设计的时候才彻底解决,那时候才发现自己觉得惧怕的东西,也只是自己觉得惧怕而已。
大二上学期,2006年3月底,东东带着我进了W01F工作室。W01F工作室给了我第二次生命。我幸运地认识了很多很好的人。似乎当时正在上C++的课,我向C++老师写邮件请教技术,庞老师建议我学习windows编程,并给我发来一份MFC程序的代码,我之前从来没有听说过windows编程,更是被MFC代码里那些奇怪的宏和注释吓坏了,win