谢幕时分

  2001年9月中旬,我来到了山西,这个在我印象中只有煤和醋的地方。这个时候的我,就如同大多数刚入学的大学生一样,狂妄、无知、踌躇满志,妄想着哪一天能在这个舞台上成为主角。

  开学的第一天,照例是我们新生参观校园的日子。而在我残存的记忆中,只留下了依稀的一点,就是参观我们系机房的那些散乱片断。
  计算机系的机房名不虚传,里面坐满了人,使得整个机房都为一种令人不愉快的人肉味道所充斥。坐在机器前的师兄师姐们在一个蓝底黄字的界面下编写着代码——这个界面我曾经见过,是传说中的Borland Turbo C 2.0。其时的我自恃有过两年编程经验,便凑了上前,想看看传说中的计算机系到底在写些什么样的程序。
  那是一段有着花括弧的for循环结构,至于具体内容我则是一点也看不懂——于是我开始为我小学那点顺序化BASIC程序设计的经验而自惭形秽了。
  “这些学生不是我们系的,由于最近要考计算机二级了,所以他们来我们系机房练习C程。”在这个时候,辅导员说道。
  这句话于我有如当头棒喝,我开始幻想我们系的师兄师姐们会是个什么样的水平,以及将来我成为别人的师兄的时候又会是个什么样的水平。
  现在回忆起来我感到极为庆幸,因为我的警钟敲响得是如此之早。那个蓝底黄字的界面,从那时起就深深地印在了我的脑海中,以至于直到现在我每每打开TC的时候都会打上一个冷战。

  没过多久,初入大学的新鲜感就已经一扫而光,取而代之的则是空虚和无聊。不知什么时候,口头禅之中出现了那个词——“郁闷”。地球人都知道与否我不清楚,但至少地球上的大学生都知道,因为他们都一样郁闷。
  我开始喝酒。起先是喝啤酒,酒量不好的我几乎逢喝必醉,此之可谓酒精考验。慢慢地,我的酒量开始和我的肚皮一起增大,以至于到最后增加到一捆的数量。在这期间我有了两个疑问,一是为什么山西的某些啤酒和山西的醋一样酸,二是为什么胃里可以装下一捆啤酒但装不下等体积的水。
  后来我发现我的身材开始逐渐走形,于是痛下决心戒除啤酒,开始改喝白酒。什么尖庄、二锅头、高粱白(这个还是山西名酒)都尝试过了,也得出一个结论:尖庄其实是用来助睡的,二锅头其实是用来洗胃的,高粱白没啥特点,喝了也是浪费。
  其实到了山西最应该喝的应该是汾酒,否则算是白到山西了——但是在山西的头半年我好像真是白到山西了一样。

  在我的印象中,计算机专业一直是很热门的专业,有多少人挤破了头都挤不进来。但是我不曾预料到的是,这个专业的学生竟然会遭到歧视。
  其实现在想来这是一件极为正常的事情。计算机专业诚然热门,IT业也有着巨大的人才缺口,这两点得天独厚的优势使得很多计算机专业的学生变得不思进取了——不单单是指我们学校。计算机系的学生并非什么编程高手,他们中更多的是网游的挂机王或者CS/魔兽/星际高手。他们无法无天,因为这个专业有着据说无比乐观的就业形势。而更多热衷于编程的学生,却是出自于别的系了。
  ——“你们计算机系学生的学风是最差的!”
  这句话深深地印在我的大脑中。说这句话的人是我大一时候的高数老师,他还说了很多,大意是数学系没有老师愿意给我们系代课之类。别往自己脸上贴金了,这么说无非是想衬托你丫有多高尚而已——在那个叛逆的年代,我如是想,而且干脆破罐子破摔:上课开始睡觉,直至逃课。辅导员说过我们系的学生大一的时候不听讲,大二的时候则开始逃课,由此看来我要求进步的觉悟还是蛮高滴。
  这学期,我挂了一科,高数。

  过年回家的时候着实被教育了一顿,我开始反思上学期自己到底干了些什么。左思右想实在没能给自己什么答复——抑或说借口,直到现在我才知道那个学期我所做的事情,只不过是叫做适应了大学生活而已。
  那个学期只开了一门专业基础课——PASCAL程序设计,我考了70分出头。高中带来的唯分至上思想开始让我怀疑自己那两年的BASIC是不是白学了。后来我一直对Delphi没有好感,估计也就是这时候埋下的种子。

  新学期开始后,我暗暗下定决心要发粪涂墙一雪前耻。这个学期开了两门专业课,倒是也真让我提起了兴致。
  首先是C程序设计。这一科目的内容并未给我留下什么具体的印象,倒是任课的孙老师给我留下了深刻的印象。我无端地认为,孙老师无论是气质还是谈吐,都和我想象中真正的程序员无二。时至今日所有的印象皆已淡去,唯独记着这一门课我只逃过一节课——应该是我大学时代逃课次数最少的一门了。后来期末考试这一门考了92.6分,重新让我燃起了自信的火焰。
  至于离散数学,本来我觉得并没有必要在这儿提起,因为这可能是我最为嚣张的一节课了。记得有一次下着小雨,我在最后一排百无聊赖地走神。突然,寝室一哥们从后门出现,示意让我出去。我沉思片刻,便毅然弓下腰从后面“蹬蹬蹬”溜了。所以,这一门课给我留下的记忆,只有第一章中的一个悖论示例:“我正在说谎”——这点唯一记住的东西竟然成了三年以后我求职笔试题目的一个答案。由此可见,书到用时勿恨少,因为付出与收获是成正比的,除非诸位能有我这样的狗屎运。

  五一过后,高数重修开始了。自那以后我的周末几乎失去了所有的时间,恍若生活在了地狱中一般。不过后来我才知道这不算什么,因为据说不挂科的大学生活就是不完整的大学生活,而且我后来的大学生活是越来越完整了。这是后话。
  终于,卧薪尝胆的我咬牙通过了大一下学期所有的考试,并获得了100元的校级二等奖学金——也是大学中唯一一次获得此等殊荣。

  已经记不得是哪位高人在网上发的贴子了,说大学是彻头彻尾的盈利机构。从过去的一年中我虽无从悟得这句话的真谛,但是我已经约略明白我是不大可能在这个地方的课堂上学到什么有用的东西了。后来的事实证明,我的这一决断倒是非常正确的。

  2002年国庆过后,我将暑假在家购置的电脑搬到了宿舍。这之后的半年,成为了改变我命运的半年——我开始改变我在这个舞台上的角色;可以说,没有这半年,我进不了中关村。
  那是极为单调、枯燥、痛苦的一段日子。我终日守在电脑前,一行一行地调试着那些现在看起来简单得不能再简单的程序,大多数时候往往不得不亲操调试器深入到堆和栈之中,搜寻那些使程序崩溃的臭虫。但也就在这个时候我才知道:其实在这之前,对于C语言来说我根本就是什么都没学会,虽然考试的时候拿了90多分的高分。
  虽然单调、枯燥和痛苦贯穿着这段生活的始终,但是我的痴迷和执着仍然为我赢得了些许成就感作为附赠品。每每有所收获,我便欣喜不已,乐而忘形。说为什么有那么多人要干程序员这行,其原因并不仅仅是这一行的高薪,而更主要的就是这种成就感——我想这种感觉我大抵是了解了。
  这个学期我逃了很多课,每每回忆起来的时候我都觉得很值得。我并非是撺掇谁去像我一样逃课,我只想说:其实世上本没有路,我只是走出了自己的路,仅此而已。

  就在这一学年的冬天,由于种种原因,我和相处了三年的女友分手了。我开始发现,其实爱情并非我先前所想象的那样简单,只是那些看似浪漫感人的海誓山盟蒙蔽了我的双眼罢了。也就是在这个时候,我悟出了一句令我极为得意的话:其实在兑现之前,海誓山盟和谎言没有什么两样。
  所谓爱情远远不及代码来得清楚直率,我也无意再去思考抑或寻找之。中国古老的男权理念就在此时主宰了我的思想,大男人不立业何以成家,我如是想。殊不料我的这个决定竟然使我在未来的两年多中独身一人从脂粉丛中穿过,却无有染得一缕花香。
  我开始喝酒。起先的确是为了排遣空虚打发寂寞,但是很快我便发现自有一种乐趣在其中。于是,整整一个寒假我喝掉了若干瓶53度的黄盖玻汾酒,将汾酒的味道狠狠地烙在了我的舌苔上。“汾酒入口甘冽,初入口时酒气便会聚在鼻子处作欲爆发状,即使下至胃中烈性仍然不减分毫。”这是我在我的小说《游民稗史》中描述汾酒的一段话,形容的也正是这种53度的黄盖玻汾酒,因为它无论是从身体上还是精神上,都使我刻骨铭心。
  后来开学了,吃饭的时候当然不会再有汾酒相伴,每每这个时候我会便觉得嘴里发苦。唉,上瘾了竟然。

  接下来所发生的事情想必诸位都知道,那就是2002年震惊整个东南亚以及全球范围的非典。我也很荣幸地作为中国重灾区太原市的一员,亲身见证了这个注定要被写入历史的时期。
  是的,正如领导们所说,与非典的斗争决不亚于一场政治斗争,还是全民性质的。当时,学校所作的一件让我很郁闷的事情就是封存所有未办理相关手续的电脑——我的电脑自然在这之列。不过这未必是一件坏事,因为我从中倒是得到了两个好处,让我受益匪浅。
  头一个好处是我大大得益于全民健身运动。在非典时期我进行了大量的体育锻炼,身体状态达到了大学四年的最佳水平。身体是革命的本钱,对于程序员来说自然更加重要。
  还有一个好处就是让我得以有机会反思一下过去的半年我都学到了什么,而不再是傻乎乎地一个劲儿写代码了。这个时候班上恰有一哥们买了林锐的《高质量C/C++程序设计指南》一书,我便从头到尾把它读了个遍。我发现林锐博士在书中的见解于我有醍醐灌顶之效,有些是我已经悟到的(比如关于指针的那部分),还有更多的则是我从未悟到过的——我也就是从这时开始,决定好好培养一下自己的编程修养。后来的事实证明,我的这个决定倒是极为英明睿智的。
  这个全民性质的反非典运动,在现在看来倒更像是一场全民性质的大恐慌。在非典时期,全中国有数千人因为非典失去生命——不过这个数字较之山西这两年大小煤窑的实际死亡数字,可能就差远了。

  暑假的时候,非典的恐慌早已消去了大半。各种条件都已具备,我开始继续我在寒假时开始的网恋。小说《二进制的风花雪月》描述的正是我的这段历史,只不过我略写了结尾而已。
  小鱼是个很有主见、很有思想的女孩,她的这两点是我十分欣赏的。不过正如我在小说中所说:爱要怎么说出口,而我的爱已死了——说明白一点,就是我打不起精神来。你并没有给我任何心动的感觉,虽然你是一个可爱的丫头。我如是对她说。她突然流下了泪水,转过身去抹着眼泪。这个时候男人的本性使我突然有种冲动想把她揽入怀中,不过还是克制住了。因为我深知自己的好色秉性,如果这一次没有控制住自己,那么只可能为我和她带来更多的麻烦。于是,我竟然静静地看她把眼泪流完。
  后来小鱼说,我希望你能为我写一篇文字,于是我便写了《二进制的风花雪月》赠她,她说她看过后,心里很难受。我说,你有没有为我写一篇呢?她回答道:写了,这些日子我天天都会为你写东西,不过我不能让你看。
  时至今日,任我再如何努力,也无法回忆起那段日子的详细情形——也许这些琐忆都是我潜意识中极力想要忘却的,而我又恰恰达到了目的。为了忘却的记念,我谨用上面这一点文字为《二进制的风花雪月》做一个结尾,亦以之记念我那段中道崩殂的网恋。

  倘说大二的时候我是“功成”,那么大三这一年,就可以算是“名就”了。我仍旧是在学习上很不得志,但这并不影响我在舞台上激情四射的表演。网上有人说我是“中北第一学生程序员”,其实我更清楚,“第一”轮不上我,因为真正的程序员高手应该是默默无闻的;而对于我这种上窜下跳的,倒是可以算是“第一爱出风头”的程序员。

  大三开学之后不久,宿舍的众弟兄便商议整个宽带用——其实这个计划在非典时期就已经在筹备中了,只不过那个时候的条件不允许而已。
  有了宽带以后,我开始发现我的生活越来越颓废。整天价早上起床把机器开开,然后把BT往上一挂去上课,最后等它下完了我看就是了。每天的生活千篇一律如是,我也就丝毫没有再编写代码的动力了。有人说程序员编写代码的动力要么是压力要么是灵感,我深以为然,因为当时的我就是什么都没有,所以一行代码都写不出来。
  不过就在这个时候,一个天大的运气降到了我的头上。2003年10月下旬的时候,kedy君给我打来一个电话,说是介绍一个项目给我做,问我是否有兴趣。其时我恰恰有些厌倦了那种颓废的生活,于是就想去试试,还可以借机学习正规的商业软件项目开发流程。
  就这样,我投奔到机械工程系一个老师的门下,开始了我的杏花村之行。整个的开发过程我已写成了日记,所以我也就不再赘述,只想再对这个项目本身做一个小小的总结。项目的整个开发过程与我想象的软件开发相去甚远,因为它说到底仍然是一个小作坊式的软件开发——三个人利用Delphi强大的数据库组件,不厌其烦地把一个个功能相近的窗体组合再组合,最后拼凑成了这一个所谓的“软件”。而真正的核心技术内容,只不过是100余行代码就可以完成的数据库操作罢了。我是前说过我写下了17000余行的代码,但其实说白了也就是把这100行的代码重复了170多遍而已。至于那些草草做好的需求分析和功能设计,更是为后来的维护埋下了深深的隐患。可以说,这次开发使我深深体会到了软件工程的重要性——这是个完美的反面例子。
  经过这次项目开发,我完全对校园的软件项目失望了。我以为作为非名校的学生有过一两次这样的经验足矣,这样可以体体面面地写进毕业简历中用以作为获得面试机会的筹码,再有更多的次数则只可能会浪费自己宝贵的时间,甚至还有可能会沾染上校园开发中那些不良的开发习惯。
  半个学期的开发工作结束了,现在再回忆起来唯一让我魂牵梦绕的,就只有杏花村的酒香了。

  2004年的寒假,我决定尝试着实现“QQ尾巴病毒”的核心技术,借以学习Windows的钩子技术。殊不料这个决定给我带来的麻烦远远超过了它成功后给我带来的成就感。
  单纯从技术的角度上讲,这个病毒并没有什么高深的东西在里面,所以没有花几天时间我就成功了。兴奋的我决定把这个病毒实现细节写成文章发表,也就是诸位后来看到的《“QQ尾巴病毒”核心技术的实现》一文。我所没有料到的是,这篇文章在网络的流传速度之快大大超出了我的想象,那个时候更是每天都会有人把我的QQ加为好友,与我讨论这个病毒的各个技术细节。现在看来,走非正规的渠道似乎比走正规渠道更容易出名——不单程序界如是,很多领域亦如是:不知这是否可以归到“兵法”的范畴。
  我开始恐惧。虽然说“技术无罪”,但是在现实中却远远没有这么简单。技术虽无罪,然而罪在人心;只有人心无罪,技术方才无罪;否则,“技术无罪”只不过是为人心的罪孽作了一个不高明的掩护罢了。到现在为止,这篇文章仍然在网上流传,仍然会有人对这些老掉牙的技术津津乐道;特别值得一提的是,到了2005年,仍然还有人在乐此不疲地制作着这种病毒,享受着技术给他们带来的罪恶的成就感。

  在草草结束了杏花村的项目之后,大三的下学期我又获得了一个我做梦都没有想到的机会。一天,luzhaojin兄在QQ上问我,是否愿意给他们系的几个研一学生讲一讲C++程序设计的相关内容。我当时有些不敢相信自己的眼睛,因为这对于我一个大三的学生来说,不啻于一个天大的殊荣。我忐忑着应了下来,心想这当是一次难得的锻炼机会。
  我开始上自习了,一本钱能老师的“红宝书”(《C++程序设计教程》)充当了我的备课参考书。我从来没有当过“老师”,但第一次当“老师”竟然就是给我的师兄师姐们当“老师”,这使我战战兢兢,唯恐出现任何错误。不过,任凭我多么认真地准备,还是在课堂上有些手足无措,经常出现半个小时就把我头一天准备的东西全部讲完了的情况,所以我的课竟然是以“答疑”居多的。还好,师兄师姐们对我非常支持,令我非常感激。几堂课之后,我也就不再拘束,课上谈吐愈加自如,只是课堂还是以答疑居多。
  算起来我一共讲了7个课时的课,获得了300元的报酬。luzhaojin兄把钱给我的时候,笑道:“这可是按副教授的标准给你的哦。”现在看来,也只有在中北我才能获得这样近乎神话的机会,倘使在清华北大,那是万万不可能的。

  期末考试又如约来临。这个学期开了一门课,名为“面向对象程序设计方法学”——其实就是C++。回想起来大一下学期的C语言,那个时候我对于C一无所知,却考了92.6的高分;那么这一次,我觉得我已略通C++之皮毛了(而且还给研究生讲过课),又该得多少分呢?
  考试时果然不出我之所料,试题异常简单,我只花了半个小时左右就答完交卷了。可后来卷子发下来,我却只得了86分,分数比我高的人不计其数。当然他们之中有很多人的水平的确在我之上,但是同样有些人连10行C++代码都没写过。
  我苦笑,大学的考试,不过如此。它只能检验你是否不合格,因为如不及格自然是不合格的;但是它无法检验你是否合格,更无法检验你是否优秀。考试的分数,更是一个天大的障眼法。有的学生拿着灿烂夺目的成绩单昂首毕业,待到开始工作后才发现自己一无所知——正是这个障眼法在给人满足感的同时,蒙蔽了人的双眼,坏了人的前程。

  大学的最后一年到来了。可以说到了这个时候我既“功成”又“名就”了,那么接下来该考虑的,自然就只有工作了。我极为庆幸的是先前我走了一条真正适合我走的路,所以这最后的一年并没有任何的波澜壮阔,所有的一切都来的是那么自然直接。舞台上的我,也由一条毛虫真正蜕变为了一只绚烂的斑蝶。

  大三的时候我逃了很多的课,我便以为是天堂了。可是升到大四以后,我才发现其实大三还是和大四差远了。
  这一学期一开始,我便被告知我们班被划分到了硬件专业,而这又恰恰是我最不愿意见到的。于是我开始更疯狂地逃课,或者说,基本不上课。我每天所做的事情,依然是从网上找片子下,然后再看。这期间我是真正再也无法写出程序了,因为我发现在天堂中生活,人也会变得颓废。
  其实这一个学期我并非没有事干,而是参加了软件设计师(高级程序员)的考试——我也想为我两年来的程序设计经历讨得一个所谓的“名分”。但是由于是前过于颓废,所以直到开考前一个月的时候,我才勉强打起精神来开始上自习,但每次自习都上不了多长时间,有的时候甚至不到一个小时就拍屁股走人了。我隐隐地感觉到,我的学生生涯,真的是到头了。
  逝者如斯夫,终于到了考试的日子。那一天我们起了个大早——这在我大四的历史上应属极为罕见的了,然后坐上学校的校车开赴考试地点太原理工大学。到达太工后我们饱饱吃了一顿早饭,这当属我在太原四年来最过瘾的一顿早饭,由此亦能推断出中北范围内的奸商(无论是公家还是私家)仗着偏僻这一地利干了多少无法形容的事情。
  上午考的是综合知识,几十道选择题构成了这一场考试的全部内容。既然是“综合知识”,那么题目范围当然是海阔天空无所不包,甚至包括很多程序员用不到的知识。我向来对这种做法很有腹诽和诟病,但由于我说话不管用——所以我也只能是腹诽和诟病。这种题目十分好答:会的就是会,不会的就是不会,挑着最顺眼的答案写上便罢,于是我不到一个小时就交了卷子。
  下午则主要是软件设计方面的题目。这一场我发挥得较为淋漓尽致,花了约有40分钟便交卷开路了。后来考试的成绩说明,我下午的成绩合格,上午的不合格——于是这次考试成了我大四的唯一遗憾,我越来越坚信我是个不适合考试的人。

  当毕业生推荐表和成绩单做好的时候,大家才隐隐约约地感觉到要开始找工作了。说到这里我不由得感慨当前网络的发达,因为我自己就是得益于这个媒介,并没有大动干戈就找到了一份工作。
  当时我锁定了三个网站:ChinaHR、51job和jobcn。每天早上起床,打开这三个网站便成了必做的工作。打开自己的职位搜索器,凡是最新更新的职位都打开一看,留下邮箱的就投到邮箱里,没留下邮箱的就在线申请职位——这些个过程其实和论坛的刷屏灌水无异,但又略有不同:其一,刷屏灌水是一项自愿的行为,而投简历却属于被迫行为;其二,刷屏灌水有遭到论坛班主或管理员惩罚的危险,但投简历可以肆无忌惮为所欲为。于是乎不到一个月,我投出了100余份简历。
  终于,2004年12月上旬的一天,我收到了第一份面试邀请。其时我正躺在床上看《康熙王朝》,突然手机响了,我懒洋洋地拿起手机,却发现这是一个010开头的陌生号码。这时候,我已经猜到是一个面试邀请了——当然,如果不是国家反灌水办公室打来的话。我接电话,下面的一切事情都是那么的顺理成章:我将于这个月的下旬赴京面试。
  当我挂断电话再躺下的时候,却无论如何也没有心情再看下去了。

  自那之后我的生活更加颓废,似乎是只等着赴京了。终于有一天,班上一个女生说,你给我讲讲考研的数据结构吧,我说好,正好我已经厌倦这种生活了。
  那一个上午是让我极其压抑的一个上午,我隐隐约约地感觉到中国学校和软件工业的距离几乎完全是背道而驰的。现在看来,我更加认定了这一事实。不说别的,仅以那些标准答案中的代码来说,就让我有些不寒而栗。标准答案,这种有导向性作用的标准答案如果放在中关村,早已经被项目经理骂的狗血喷头了,居然还堂而皇之地称为“标准答案”?如果上天给我一个机会,我会用三个词语来形容这些所谓的“标准答案”,那就是:丑陋、晦涩、凌乱!软件作为产业,需要的是整洁、明了、清晰的代码,但是如果被这种“标准答案”代码熏陶的学生进入软件产业,会造成什么样的损失,我不得而知。也许我有些杞人忧天,因为学生进入软件产业以后是可以改正的,但是我还是想说,“亡羊补牢”终究不如“未雨绸缪”的好。
  这个上午,我悟出了一句话:真正的代码不是数学家在纸上写出来的,而是程序员上机调出来的。

  终于,我进京了。面试、签约、上岗,这一切也都没有任何的波澜壮阔。看着胸卡上的“软件工程师”字样,我心中泛起一种莫名的感觉。两年半来对技术的执着,给我带来了太多的得与失,时至今日最后换来的这五个字,不正是我先前追求的所谓“名分”么?
  走笔至此,我突然觉得已经再也写不出什么东西了。心想也是,后来我所做的工作,是一个程序员所做的,而并不是学生所做的。我的所谓“谢幕”,是针对大学这个“舞台”而言的,至于程序员的生活,我尚未品出味道来。我无法预料我未来是否还会为做程序员的经历去写类似这样的回忆文字——当然那些也不是在今天我考虑范围之内的了。
  无限的怅惘夹杂着对未来的希望,我持续四年的表演也慢慢到了尽头。似乎现在我要做的,就是在最后这一个月的时间里,亲手谢下自己舞台的落幕。享受着谢幕的灯光,躬下上身默默退去,即使耳边没有任何喝彩,仍可算是一件幸事,属于自己的幸事。

李马 2005年5月16日于京师海淀

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值