后来我和老虎了解到国家有一个软件水平与资格考试。它由是软件行业权威的考试,极低,当时每年的仅在10%左右。不知现在有没有变化。并且它的通过与职称评定相结合。也就是现在常说的以考代评。当时软件水平考试通过的级别与职称的关系是这样子的:
初级程序员 技术员
程序员 助理工程师
高级程序员 工程师
系统分析员 高级工程师
通过全国三级(B)以后,我们原打算再报考全国四级的。但了解到软件水平考试后,我们决定放弃全国四级,参加软件水平考试。--正是由于它极低的与相关的待遇吸引了我们去挑战。
买来大纲,研究一番后,我们决定先考程序员。也就是相当于助理工程师一级。那时我们刚18岁,也不知天高地厚。买来几本参考书,一阵乱啃。然而老天呀,没有任何人给我们上过计算机课,编译原理里的那些什么形式语言/制导翻译、数据库原理中的什么模型定义/函数依赖,一开始就把我给弄得昏头转向。但这关总要挺过的。于是我把书看过一遍又一遍,书都翻烂。周六周日就到省图书馆去参考大学计算机专业的教材,竟然后来都看懂了。理论性的东西十分好办。只有理解了,要背要记很容易。
软件水平考试真正有难度的地方是下午场的考试。因为上午考基础知识,大家只要死记硬背就没有什么大问题。下午场考程序设计,题型比较灵活,难度也比较大。那时我已有一定的C语言基础,也用C写过一些小程序。考试要求的一些数据结构实现、算法求解之类的问题觉得比较好对付。例如用递归算法找个什么数列呀,如何用回溯法解决狼怎样才能抓到小羊呀,还有什么猴儿吃桃、皇后走棋、查找排序之类的问题,也挺容易的实现了。对于下午场,我很有把握。
进考场。上午考得还算顺利。一些涉及高数和英语的分数估计会丢掉不少。下午场的考试同样考得很辛苦,那些指向指针的指针七指八指,指得我心慌意乱。不过总的感觉还好。出考场,一对答案,有几成把握能通过。上午场可能比较险点,但估计问题不大;下午场通过肯定是铁定了的。
哪知考试成绩一出来,顿时让我傻了眼。上午场竟然考得奇好,50多分(总分75分),下午场则惨不忍睹,才40多分。老虎和我也差不多,都是输在了下午场。
第二年,我们决定放弃程序员,直接考高级程序员。总结经验,还是在于自己的基础不牢固,准备不充分。这,我制订了一个详细的安排表,根据计划安排进度。遇到难题今时求证。不可否认,高级程序员比程序员要难多了。所面对的问题了不再是解决猴儿吃桃那么简单。那段时日时间本来就比较紧张。记得有次晚上躺在床上点烛看书,看得迷迷糊糊之际,蜡烛倒了下来,把书给烧着了。幸亏发现得早。--否则后果不堪设想。我把理论知识搞定后,然后花大力气对付下午场的程序设计。CASL汇编、测试用例、软件工程方法、C程序的实例应用,我一个一个地来啃。我没有基础,没有人教,甚至连一个可以问的人也没有。学得还是比较艰难和辛苦。但是,每当想起我们现在为之付出的努力对将来是值的时,我们便又恢复了信心。我们利用一切可利用的时间备战。我甚至想方设法通过各种途径弄来历年试卷,一一进行分析。--那个时候,互联网还刚刚起步,不象现在这样要查个资料,通过网络很方便地就搞定了。
同时我们还报了四门自考。我以高程为主。高程在10月12日考试。自考在10月28日开始。这一两个月的努力终于得到了回报:高程和自考全部通过了!
很多朋友经常写信问我怎样应付程序员/高级程序员的考试。就我的经验来说,有这么几点:
1. 掌握好的学习方法,合理安排时间。--这是重要的。
2. 基础理论要吃透。对于程序设计,一定要多动手,多实践。
3. 一定要找出以前的试卷,进行分析了解。
我想,不论什么事,只要认准了一个目标,然后朝之不懈地努力,就一定实现。考试是这样,干事业是这样,甚至追求爱情也是这样。这个道理,每个人都懂。关键在于实际行动。