我的10年程序员生涯(1) - 学习之旅

 
我的真实姓名不想说,不过熟悉我的人都叫我阿全,另外我的英文名是Mckay,说起英文名,这还是3年前跳槽到现在的这家合资公司时才临时取的,由此可知,我的英文好不到哪去,我跟同时代的大多数大学毕业生一样,有一定的英文阅读能力,可是听说能力就很一般了,准确的说是个英语的聋哑人。就因为这,让我在毕业后的跳槽当中失去了很多次到外企的机会,而且还让我失去了一次读研的机会,当然这是后话了。
我第一次接触计算机是1994年还在读高中的时候,说起来也算是较早接触计算机的一代人了,不过我当时还是懵懵懂懂的,以至于直到上了大学我才知道,我高中时使用的那计算机就是苹果机。(直到现在,我一直还是觉得应该感谢我的高中母校,因为我们大学同班同学中高中就见过计算机的没有几个人,每次说起来好像自己都会倍感自豪,这个于上个世纪30年代创办于江西革命老区的高中有着辉煌的历史,据说鼎盛时期连学习成绩最差的班都只有3个人考不上大学,可惜的是我没能考上一个顶尖的大学来为这个学校辉煌的历史添上自己的一笔)。后来不知道什么原因,整个高中时期我们就上了一个学期的计算机课程,对具体的课程内容现在已经是毫无印象了,只依稀记得大概是讲关于BASIC的一些知识和编程。现在回忆起来,高中的那次计算机学习经历之后,我再也没能接触到那种苹果机了,现在想来竟觉得有些遗憾!
高中毕业后我如期考上了大学,这是一所位于祖国大西南的普通大学,刚来到这个城市的时候,除了听不大懂这个城市的话,其它一切都感觉很新鲜。郁郁葱葱的校园,要山有山,要水有水,还有个可以划船的湖和小岛。相当于10个高中母校的校园面积,相当于8个高中母校的图书收藏,还有很大很大的教室,还有要占座的自习室,这一切都让我觉得上大学真好。说起大学母校的漂亮,我是真心觉得母校很漂亮,在我儿子3岁多的时候,我还曾经带他回去过一次,他也觉得很漂亮,后来还缠着他妈妈又带他去过几次,还在那买了一个晚上会发亮的恐龙玩具。
真正的计算机学习旅程到这才算真正起程了,我还清楚记得第一门计算机课是DOS操作,这门课学期结束后,我在班上名声鹊起,因为我考了96分,全年级最高分!!!应该怎么来评价这门课呢,现在要我说的话,我只能说,这门课给我了很好的基础,给了我对计算机很好的理解力,同时也为我学习其它的计算机课程树立了足够的信心。第二门计算机课是windows操作,这门课我同样也学的很好,期末考试考了98分,也是全年级第一。不过说起来惭愧的是,我的指法一直不是很熟练,至少比起那几个守计算机机房的高年级同学来说是很不够熟练,五笔输入法也不够熟悉,实际上自从五笔输入法考试后我就再也没有使用过了这种输入法了,直到毕业多年以后,每当我看到五笔打得飞快的同事都还是一脸羡慕。
大一的下学期,就在我们学习windows操作这门课的时候,机缘巧合,我认识了现在的老婆并迅速热恋起来,她是我们学校计算机系的高年级同学,不知道是不是由于她的影响,我从她那里拿来了她全部的计算机课本,如饥似渴地自学起来了,《操作系统原理》,《数据库系统及应用》,《计算机图形学》,《计算机网络体系结构》,《Pascal》,《Foxpro》,《编译原理》,《计算机组成与结构》,《微型计算机》,《数据结构》,《80x86汇编语言程序设计教程》,《人工智能导论》,《C语言程序设计》,《软件工程》,《计算机原理》,《离散数学》,《Fortran语言》等等。与此同时,我也成了学校图书馆的常客,我差不多翻完了所有能看到的计算机杂志和不管看不看得懂的计算机书籍,其中有一本书直到现在还深深地印在我的脑海里,那就是《TC高级编程》,这本书在DOS时代几乎是给了我最多的震撼,是它让我学会了如何在纯英文DOS环境下使自己的程序能显示中文(现在的联众的老大鲍岳桥和金山公司的那个求伯君当时写的那个UCDOS和WPS在那个时候可是火的一塌糊涂啊),是它让我学会了如何使自己的程序呈现出如后来Windows界面般的图形菜单和立体感,是它让我学会了如何在程序中控制鼠标及真彩色游戏界面,是它让我后来看到Windows界面后几乎马上就明白了它的消息机制。另外来还有一本书我记忆也很深刻,那就是《80x86汇编语言程序设计教程》,因为之前已学过C语言了,在学这本书的时候就觉得有点莫名其妙,什么烂功能都需要自己一个指令接一个指令的写出来,当时我就尝试着将C语言里的一些标准函数用汇编写出来了,然后定义成了宏,在写程序的时候就可以像调用C函数那样去调用汇编的宏,学完这本书很久以后我才发现其实自己很傻,随便找个高版本一点的汇编工具都已经内置了很多的宏了,根本就不需要自己再去实现那些基本功能的宏了。这一时期我还接触了一些计算机系统破解方面的资料,不过没有深入地研究下去(不过这已经足够让我在后来的工作中入侵公司的代码服务器和同事的计算机了)。就在97年前后这个时期,JAVA语言开始慢慢的出现在大家的视线之中,我们学校有些同学也开始了解这一当初还感觉很简单的玩意儿,其中就有我的一个同学,当时我正沉浸在C的海洋中,丝毫没有转移自己的注意力,直到现在,我也只用JAVA修改过一个老系统的几个小功能,只有不超过1个月的使用经验,这让我特别沮丧,目前常用的开发工具和脚本语言中,熟练使用的有VB,VC,有过部分开发经验或者了解过的有Authorware,Lab Windows,GCC,C#,C++ Builder,Kylix C++,Delphi,ASP,Keil C,MASM,JAVA,LabView,PB等等,其中JAVA是我工作后一直想学会而没有合适机会的,真的很遗憾,我似乎被远远地抛在了网络时代的后面。
就在差不多快学自学完这些课程的时候,我报考了学校所在省的计算机等级考试二级,记得当时我们班有3个人报名了,1个女同学报考的是二级FOXBASE,另一个我们老乡报考的是二级BASCI,我则报考了二级C,经过一段时间的复习后,在大二的那个秋天,考试举行了,上午是笔试,下午是上机编程,上午考得很顺利,下午的上机编程却出了点意外,估计考砸了。又过了一段时间,考试成绩公布了,我们班其他2个同学顺利通过了二级考试,欢喜异常,我的C语言笔试虽然考了全年级的最高分,87分,上机却不及格,说实话当时我一向自傲的心灵真的是很伤心,狠失望,在那个下午,女朋友陪我来到学校旁边的农田里,冬天的农田里一片荒凉,到处是枯死的草丛和被农民丢弃的农作物,仅有的几棵树也只剩下几片叶子在风中好像随时都要掉下来,看到这些我心里更加难过,女友不断的安慰我,不知道是由于那个下午的太阳比较暖和还是女友的安慰起了作用,渐渐的我把不开心丢到了脑后,我跟女友说,下学期我不再报考计算机二级(C语言)等级考试了,我要直接报考三级(汇编),可能女友当时不想再让我受到打击,所有当时并没有表示反对,只是一个劲的鼓励我。
说起计算机三级等级考试,到现在我也还觉得很自豪,当时全校只有20多个人报名考试,考试那天实际只来了14个人,考试的教室里显得空荡荡的,一股凉气从我的脚底直往上冒,太有压力了,毕竟我从头至尾有老师教的课程只有大一所学的2门计算机基础课,其它的全靠自学(偶尔我没课的时候也会混到女朋友他们班上,跟着他们一起上课,这就是大学的好处啊,只要你想学,总能找到学习的机会,毕业后这种机会就不多了!我还曾经把这种办法告诉了一个初中毕业后就没再上学,但是绘画很不错的朋友,后来他在江西美术学院这样跟班学了一个学期,直到没有了生活费才离开),更何况考的又是汇编语言,那时心里一点也没底,现在想来紧张也是难免的。几个月后考试结果公布,到学校后门的布告栏里看成绩那天心里别提多紧张了,远远地就看见布告栏里的大红纸,三级考试的成绩是单独写在一张红纸上的,诺大的红纸上只有几个人的名字,令我感到高兴的是,我考过了,是全校7个通过计算机三级考试的同学中的其中一个,笔试61分,上机64分,我考过了!那一刻我太开心了,赶紧去找女朋友,当天晚上我们好好庆祝了一番,印象中女朋友也很为我感到高兴,还记得那天的阳光很好,很灿烂,晚上的月亮也很圆,很亮,月光照在女友美丽的脸上,越发显得多情!
大学的生活总是充满着各种有趣的经历,除了比较常见的如谈恋爱、看电影、做实验、看足球、看乔丹、占座位、抓金花、斗地主、拖拉机、野炊、上党校等等活动外,在我的大学生涯里,有另外3件有趣的事情让我直到现在还记忆犹新。
一是我学会了打乒乓球,并且因为乒乓球还机缘巧合地结识了女朋友(现在已经是我老婆了),大学刚入学的时候,每天下了课我们班上的同学就一起到操场上打乒乓球,但我以前根本就没怎么碰过乒乓球,所以几个打得好点的同学每次都不愿意和我打,我气得不行,于是我到图书馆借了几本乒乓球的书来看,配合着书上的图示我慢慢就理解了削、切、推挡、拉、旋、弧圈等打法,经过一个星期的实践训练后,嘿嘿,原先不愿意跟我一起打的同学都打不赢我了,因为他们发的球我都能按照正确的方法去接,相反我发的球他们都只是试着接,往往刚找对了接球方法我又换了种发球方法,这件事情让我特别高兴,也让我深切的感到做理论对每一件事情的重要性。
另一件事情也很有意思,因为我性格比较内向,不希望过多地引人注意,所以虽然我的成绩一直在班上前3名,但大三之前系上的老师一直也没有几个知道我(除了授课老师),直到有一次,因为我的字写的还不错,我们班的辅导员需要我帮他抄写毕业生的毕业评定(这手写的还过的去的字毕业后还曾为我争取到一份对我影响重大的工作机会,有关这点后面的内容里我再来详细的描述),于是我在系办公室写了几天字,恰好被系办公室主任看到,就问我,你是党员了吗?我说不是,她说你这么优秀的小伙子怎么不入党呢,于是她就让我到系党校学习;后来更让我始料不及的是,由于我是系上仅有的通过计算机三级考试的人,在大家的眼里也算是个计算机高手了,恰好这时候学校开始部署信息化管理系统,于是系上安排由我来录入所有学生的基本资料,那个星期累得我是手指很长时间都动不了(^-^),那个星期恰好系上有个低一届的美女同学也在同一个办公室帮老师做事,共处一室,不时的可以欣赏一下美色,不过到现在我连她叫什么名字都还不知道,咳,够内向吧。
还有一件事情是大三的时候我来到了学校计算机中心的机房当辅导管理员,主要是帮着机房的老师管理计算机和网络,在低年级学生上机遇到问题的时候给予帮助,在这段时间,我还领导了一个5个人的学生兴趣小组用Authorware帮助一个C语言老师编写多媒体电子课件,只是不知道我们写的这个多媒体电子课件后来那个我很尊敬的老师使用过没有(毕业后我还曾经想过到哪个公司去开发教育光盘呢)。这件工作有个好处是只要有空位置我可以随意使用计算机,那些计算机当时还算比较好的,记忆中好像大部分是七喜的PII电脑,还有一部分是PIII的电脑。网络游戏那个时候已经开始流行了,其中最流行的好像是一个叫MUD的游戏,当时我看这么多人通宵达旦的玩这个游戏,很好奇,于是有一天晚上我准备来玩个通宵,准备好吃的喝的后就来到机房开始玩了,这是个角色体验类的游戏,我从11点开始进入游戏,游戏中我慢慢长大,谁知道大概6岁的时候就被一个坏蛋一刀给砍死了,我死了,那时候是凌晨1点,我顿时觉得这个游戏没有意思了,心情索然,于是闷头睡到了天亮,一直到现在,我对游戏依然不感兴趣,除了偶尔玩玩动作类的如拳皇、西游记、抢滩登陆等游戏,我几乎再没有认真地玩过其它的什么游戏,不管它有多火,多好玩。不知道是不是大学的这次游戏经历给了我的心灵予潜意识的沉重打击,或许至少有部分原因吧。
毕业设计当时已经开始流行开发Windows平台下的应用程序了,记得我老婆的毕业设计就是使用VC1.0开发了一个有各种功能的绘图程序。很多同届同学的毕业设计都做得是数据库相关的或者图形相关的,而我的毕业设计做的是一个用于化学计算的DOS程序,用TC2.0编写,虽然开发工具是落后了点,不过跟其它人的计算机毕业设计比起来,我认为毫不逊色,因为我这个DOS程序也是图形界面的,同样支持中文显示、菜单,鼠标,彩色图片,按钮等界面元素。在实现计算算法时,记得为了找到多元多次方程的解,我查遍了图书馆的相关资料(因为我数学不够好,很多公式都不是很熟悉),终于找到一份用BASIC实现的计算算法,我把它移植到了C实现里面。尽管我对这个毕业设计成果充满了自豪,不过我印象当中也仅仅是得了个良,不知道评委们当初是怎么考虑的。
毕业后很多次朋友和同事都曾谈起大学的课程没有什么用,这个时候我一般只是笑笑,其实对我来说,大学的专业课程给了我很大的帮助,这些课程给了我很好的计算机基础,给了我思考问题、解决问题的方法。事实上几乎所有的课程都在我以后的工作中或多或少的直接使用上了,后面的项目历程中也许我能够一一给大家展现这些课程的知识都用在哪里了。在我的众多同事中,有相当一部分人虽然拥有多年的工作经验,对上级分配的任务也能够完成,但在我看来依然没有入门或者仅仅是刚入门,因为他们解决问题的时候思维不够开阔,只能从自己的经验中获取知识,而不能从理论(我认为理论实际上更多的是来源于是众多人经验的总结)上来分析问题的所在,只能是作为熟练的编码人员,我认为这些的根源就在于计算机基础知识没有掌握好。若干年之后,我们公司的研发总监在一次校园面试上说:“重点看一下这些同学的C语言成绩,考不到80分的不要!”,我深以为然。
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值