“杨家有女初长成,养在深闺人未识”——紧张的学习生涯

2002 8月,软件学院第一批学生正式上课了。最初的前半个月,每天都一直在上C语言,给我们上课的是计算机系的一个博士,叫马云龙。只记得他给我们布置过三个作业,一个是写一个表达式求值的程序,另外一个是写一个文件分割合并器,还有一个是写一个小型的数据库。那个时候,虽然机房不能上网,但每个晚上机房人都是满满的。大家都是转专业过来的学生,一群杂牌部队,虽然底子不行,但是干劲十足(看看现在我们的机房经常门可罗雀,哎……)。尽管如此,第一个表达式求值程序就把我们所有人都难住了。学过数据结构的同学不要笑,不就是两个栈么,一个放操作符,一个放操作数。可是那时候的我们,谁知道栈是什么啊?那个时候在机房上机,经常能听到“两个栈”,“两个栈”的讨论声。后来唐建锋老师毕业后风尘仆仆来到上海,到学院工作了,他也加入了“两个栈”的讨论中。

后来万老师看我们实在顶不住了,怕我们不堪重负,重压之下会有人产生轻生的念头(记得有女同学还偷偷的在机房角落里面哭鼻子。不过后来这个同学毕业去了北京,在全球著名的数据存储公司工作,然后还作为校园大使,衣锦还乡来到学院招聘学生,这是后话),就从计算机系找来三个保研的同学,给我们当上机指导老师。三个老师都姓朱,当时被我们称为“三朱口服液”,这三朱其中,就有我们现在的朱宏明老师。

C语言课程结束后,我们马上开始了Windows程序设计课程,给我们“上课”的是毕业于美国麻省理工学院的博士,叫严咏欣。为什么上课打引号,下文再说。严老师曾经在Adobe工作过,我们用的PhotoshopAdobe Reader中,都有严老师的心血。后来他归国创业,在物流系统方面颇有造诣。严老师教育的方法非常特殊。我记得当时Windows程序设计的第一堂课是这样度过的:老师打开Windows的扫雷程序,说这个游戏叫扫雷,很好玩。扫了两把雷之后,说,好了,大家回去每个人也都写一个扫雷出来,一周以后上交,下课。我们当时所有人面面相觑,目瞪口呆。

于是所有人又重新陷入了混乱:责怪声,抱怨声,痛苦声,无奈声……不绝于耳。严老师最终也没有告诉我们如何做扫雷,后来迫于压力,也只是给我们讲了一些GDI画图的知识。担子还是落到了我们自己身上。于是,新一轮的讨论,递归啊,鼠标左右键消息啊,又回荡在机房里。

一周过后,到了交差的时间,同学们互帮互助、连蒙带抄,基本也都有了一个像样的扫雷程序。谁知道严老师故伎重演,这次打开了Windows里的画图板,又让我们去做一个跟Windows画图板一模一样的程序(这个程序现在已经成了学院Windows程序设计课程的经典保留曲目)。画图板无论从难度还是代码量上,都与扫雷不可同日而语。对于我们,又是一轮新的蹂躏。也正是这个作业,让我对Windows的画图板非常熟悉,后来自己写第一本教材的时候,几乎里面所有的插图,都有Windows画图板的功劳。艰难的挨过了画图程序,接下来迎接我们的是自动扫雷机,东西大概类似于今天的网游外挂吧。不过经历了前面那么多大风大浪,我们也不惧怕什么了。

刚刚开学没多长时间,严老师就突然让我们自行分组,自行申报题目,准备开始做项目。并且告诉我们课程不考试,最后一个项目做完之后现场演示答辩,就作为我们的成绩。当时我们很难理解严老师的意图,因为我们觉得还什么都不会,老师还什么都没教,怎么就要期末考试了呢?虽然满腹牢骚,但是还是报了题目,并且一点一点做了下去。后来,这套自行组队报题,项目答辩的考试形式,被广泛的应用到了我们学院很多的工程实践类课程上。并且成为了我们学院的一大特色,可以说严老师是首创,功不可没。

记得后来Windows程序设计课程答辩的那天学院异常热闹,像过节一样。同学们把自己做的东西如数家珍的拿了出来,介绍给严老师、万老师和其它同学。这些项目毕竟是一群“乌合之众”短时间内自学做出来的东西,今天看来可能简单甚至可笑,但是并非一无是处。其中一组同学做的餐馆管理系统,成功的被他卖了出去,小赚一笔;另外一组同学做的学生上机管理系统,就是我们现在学院老师上下班刷卡考勤系统的最初蓝本。答辩从早上一直进行到夜里。当所有答辩都进行完之后,我们才无意中知道,一直陪着我们答辩一整天的万老师,那天居然是他的结婚纪念日……

在答辩完之后的最后一堂Windows程序设计课上,严老师向我们透露了很多课程幕后的故事:万老师曾经电话施压严老师,逼迫他给我们讲点东西;在课程最艰难的时刻,我们要被压垮的时候,严老师曾经在屋里反复踱步思考,最终还是选择了义无反顾的把逼我们动手的教学方式进行下去……或许严老师的教学方式跟我们那届的Windows程序设计课程都是在我们当年那个特定的环境下才会发生的不可重复的事情。我初次登上讲台的时候,曾经想克隆严老师的教学方式,但是最终还是没有执行。回顾我们短短两年软院本科生涯,我们都觉得Windows程序设计是这其中最重要的一门课程,严老师虽然没有教给我们多少直接的知识,但是通过这门课程,我们学会了如何学习知识,解决问题的一系列方法,而这些,对我们来说是受益终生的。在最后一节Windows程序设计课程的结尾,我们给了严老师长时间的发自内心的掌声。可是,严老师最终还是激流勇退了,在教完我们一届后,他再也没有在软件学院教过书,而是选择了其他生活方式。后来本科毕业后,我和几个同学一起又去看过严老师,他已经有了爱人和一个可爱的宝宝。打那以后,就再也没有机会见过严老师了。

接下来的课程就慢慢步入了正轨。Simon给我们上口语强化课,周胖胖老师给我们上C++,金伟祖老师给我们上J2EE和计算机网络(金老师可是严永欣老师当年创业公司的副总),施润身老师给我们上数据结构,杜庆峰老师给我们上软件工程,陈师傅为我们站岗放哨(我们的门卫陈师傅也算得上是学院的资深人士了,学院成立伊始就来到学院,并且跟着学院从沪西搬到了嘉定)……不知不觉,软院的第一年就过去了。

在这段时间里,虽然苦闷,虽然艰难,也体验到了前所未有的创造的成就感,是苦趣也是乐趣。我至今还记得自己的扫雷程序,在多次调试,终于实现可以递归翻开空白区后,我高兴得人仰马翻掉到桌子底下的一幕;也记得为了实现画图板的重做、撤销功能,我自己居然“发明”了双向链表;还有为了软件设计问题,我跟同学在研发中心大声讨论,结果惊动了隔壁正在加班的万老师,以为我们要打架;还有因为经常晚上熬夜,所有同学都成了夜猫子,结果早上一二节课的马哲,出勤率经常创新低,最终马哲老师在课堂上当众发飙,说他从教二十余年,我们是他们见过的最差的学生(但是后来我们马哲考试成绩却都出奇的高,我一直怀疑学院背后把那个老师收买了);还有闲暇时间,同学们一起在bbs.tongji.net的软院板块灌水;以及我们小组代表同济在“创新杯”上为学院拿回了第一樽奖杯……“随风潜入夜,润物细无声”,就这样,潜移默化地,我们在通向合格的软件工程师的道路上慢慢行进。