《那些年啊,那些事——一个程序员的奋斗史》——09 -12

来源:互联网 发布:儿童心理测评软件 编辑:程序博客网 时间:2024/06/04 20:11

 调试程序,断点调试需要吗?不需要吗?需要吗?只不过对于段伏枥来说,不是需不需要的问题,而是他根本就不懂这玩意。虽然在大学里也写过一些程序,但这些大都是从书上依样照搬,并且就只需要看看最后的输出结果而已。如果结果不对,那就查一下代码,看看是哪里写错了。与其说这是程序,不如说这是算式更为贴切。只不过这一套在计算器程序中就行不通了,经常在点击按钮的时候输出结果不对。不过天无绝人之路,段伏枥还知道有MessageBox(注1)这个函数,在他觉得哪里有问题的地方,就输入这个函数令其显示相应的数值,以作判断。这种看似非常古老而又原始并且绝对会受到老鸟们唾弃的方式,伴随着段伏枥半个月。
    
    只是,这有什么办法呢?深圳是一个创业的乐土,这也就意味着小公司多如牛毛。而这些公司注定是不会有大公司那种完整又严格的培训,所以他们往往喜欢招有经验的人,进来就能干活。如果一个新人到了小公司,想要生存下去,那么意味着他必须付出更多的努力,而这一切却又必须自力更生。虽然段伏枥不太喜欢念书,仅仅因为这不是他所喜欢的,而现在程序员的职业,却是由来已久的梦想。因此再多的困难,又算什么呢?就像RPG游戏一样,打不过BOSS,就练多几级再来呗!所以段伏枥白天在公司拼命地写程序,回到家就拼命翻书。在没有正规培训的公司里,通过看书来提高技术水平的唯一也是最好途径。当然此时段伏枥断然想不到这些,但他只是知道,自己的水平很菜,看书或许还有点希望,不看书则什么都没有。
    
    段伏枥的注意力绝对不是盖的,而是由来已久。在他刚学会走路不久,就特别喜欢观察蚂蚁,经常能蹲上一天不挪窝。有一次搬家不久,在门口的树边就有一窝的黄色蚂蚁,段伏枥自然就很嗨皮地扑哧扑哧走过去,蹲下来细细探究。小孩子一般穿什么裤?开裆裤!那些可爱的蚂蚁们,顺着段伏枥的小腿往上爬,很顺利地到达小鸡鸡的范围。蚂蚁们爬了那么久,估计都渴了,累了,想喝红牛了,于是都快快乐乐地在小鸡鸡来上几口。别看这黄色的蚂蚁小,但咬起人来那狠劲,以及接下来的痒和痛即使是成人也难以忍受。那对于一个小鸡鸡被咬满了一个个小包的小孩子来说呢?结果可想而知。接下来的几天,段伏枥可真是哭得凄凉,一边哭,还不忘一边用手去搔搔那个被咬得红彤彤的小鸡鸡。这便是段伏枥人生中体会到的第一次“蛋疼”的感觉,那么久远,又那么深刻。
    
    半个月,和同事混得也差不多了,特别是研发部几个小兵都喜欢一起去吃饭,彼此间也熟络不少,特别是老章,也不会像之前那样冷冰冰了。估计老章也想看看段伏枥程序写得如何了,今天特意过来看看。
    
    “你程序写得如何了?”
    
    “嗯,界面写好了,功能也有一些。”
    
    “噢,小伙子,不错嘛~本来这计算器是要我写的,你现在来了,可减少我不少负担啊!”
    
    “嘿嘿~过奖了~”
    
    老章的眼睛还是比较尖的,一眼就看出来不妥:“你这里为什么要那么多的MessageBox?”
    
    “因为我想知道跑到这里的时候,这个是什么数值。”
    
    老章像看到外星人一样,目瞪口呆:“你就凭着这个写好了计算器?”
    
    “是啊!”段伏枥觉得很奇怪,难道你们不都是这样的么?
    
    “来来,我告诉你要怎么弄!”估计老章看不下去了,这样原始的方法,简直无异于石器时代。所幸,从今天起,段伏枥知道了还有一个叫“断点”的东西,这个东西可以让程序跑到该处代码时停下来,查看相应的变量数值。
    
    “噢,原来还有这么简便的东西啊!”
    
    “嗨,这个写程序的都懂的。你以前的做法太耗费时间了,以后你有什么不懂的,就直接问我吧!”
    
    “好,谢谢!”望着老章走回自己办公桌的身影,段伏枥突然有种莫名的感动,这并不是因为老章告诉了他一个更好的方法,而是觉得老章已经开始承认了他。能够受到一个老鸟的认同,这对于一个陷于苦恼中的菜鸟来说,是一个多么不可多得的鼓励啊!
    
    自从得到了老章的指点以后,段伏枥后续的代码就快多了。一晃半个月又过去了,此时段伏枥的计算器已经能够正常运行,基本上所有的功能已经完善。虽然代码非常惨不忍睹,某些函数甚至超过两三百行,甚至有一些功能相同之处也不懂得用函数,而是简简单单的复制粘贴,但不管怎么说,这是段伏枥的第一个程序,至少,它能跑起来了,它能正常计算数值。
    
    当段伏枥将技术总监请过来,查看自己的成果时,技术总监笑呵呵地说:“呵呵,小伙子不错嘛!你再看看,还有什么地方可以优化的。”听到这话,段伏枥觉得像掉进了蜜罐,觉得这一个月的辛苦没有白费,自己所做的东西终于有人承认了。这份感觉,似乎比什么都来得珍贵。
    
    就在段伏枥还在自我陶醉的时候,干姐来电话了:“喂,你今晚还要加班么?早点回来大家一起吃个饭。”
    
    “好,没问题!”刚好计算器写完,今天按时下班,就算给自己一个小小的奖励。只不过为何干姐今天要请吃饭呢?莫非是因为有什么事?
    “哇塞,这么多菜?干姐今天你要大出血了啊!”
    
    白切鸡,酸菜鱼,客家酿豆腐和紫菜蛋花汤,便是今晚的菜肴。在很多人眼里,就这几道菜根本就算不得什么大餐,但在段伏枥眼里,这却是难得的美味。段伏枥之前为了增加成功率,简历上的工资一再降到1500,而公司也很不客气地满足了段伏枥的愿望——只给1500。所幸公司还没过于太狠心,还给了200元作为餐补,因此1700元便是段伏枥的第一份工作的薪水。
    
    这1700段伏枥可是绝对的掰着花。早上怕因为路上塞车而迟到,又要考虑到充足睡眠,所以早上一般都是在世界之窗坐地铁到国贸,花费5元;而晚上回家,则是坐201公交车到世界之窗,只要两元。其实坐201完全可以到白石洲,然后下车走上两分钟就能回到出租屋,只不过这样需要花上3元,而段伏枥觉得这1元花得太亏了,不如在世界之窗下车,然后走个15分钟到家更划得来。而早上的早餐呢,段伏枥基本上是不买的,因为公司有牛奶,早上只要喝一盒牛奶就能熬到中午。而中午也不会有什么很好的伙食,虽然和同事一起去吃快餐,但他总是点菜单上最便宜的那几样。至于晚上,虽然没有加班费,但公司会给加班的人订一个加班餐,而这也是段伏枥会选择加班的原因之一。
    
    今晚的这一顿饭,虽然价格估计只在100元上下,但对于三个月来饥一顿饱一顿的段伏枥来说,已经是天下最好的美食了。其实干姐的工资也并不是很高,这一顿饭也算是花费不菲。
    
    “干姐,为啥你要请我们吃大餐啊?”
    
    “因为我要搬走了!”
    
    “什么?”段伏枥和刘思敏同时停下了筷子,还互相望了望,显然两人都是刚听到。为什么?
    
    看着两人不解的神色,干姐继续说到:“公司要扩大规模,搬到梧桐山去了。从白石洲到梧桐山太远了,去就要两三个小时,恰好公司那边有宿舍,所以我就搬过去。”
    
    干姐要搬走?那不是意味着,只剩下自己和刘思敏两个人了?那是不是……?似乎,有种不一样的感觉……?
    
    干姐估计也看出段伏枥的神色不对,但显然她猜错了段伏枥的所想:“老弟没事,你这不是没发工资嘛,这个月的房租还是我和小敏一起给啦。”
    
    “啊?哦……”段伏枥急忙从遐想中回复过来。
    
    “哎呀,你这么一走,那房子卫生就犯愁了~”刘思敏嘟了嘟嘴,向段伏枥看了一眼。
    
    段伏枥不好意思地低下了头。因为段伏枥每天下班都很晚,然后出去也不迟,所以屋子的卫生基本上都是干姐和刘思敏包办的,无论是扫地啊,拖地,甚至是倒垃圾这种顺手的活儿,他其实一样也没干过。虽然前两个月段伏枥是空闲的,但他因为没找到工作也没有什么心情去做这些家务活,所以也是她们两人包干的。
    
    “哈哈~老弟,以后你就不能这样撒手不管啦!老姐不在,这些清洁卫生,你也要自己动手做一下了。要知道,女人总有那么两三天是很累的。”
    
    “啊……哦!”啥两三天?总不能每天都问一次刘思敏,你那个来了没?来了的话,今天就由我来干活吧!算了算了,别想那么多,以后勤快点就好了。
    
    这一晚,大家都吃得很晚,似乎这顿饭吃了就不再一样。
    
    离别的日子总是悄然来临,今天是周六,帮干姐搬家的日子。其实干姐的东西并不多,衣服全部装在一个背包里,一个大袋子里装的是毛巾毯,还有一个桶和一个洗脸盘。一个人来搬,确实有点困难,但其实不困难,段伏枥和刘思敏也是打算和干姐一起到梧桐山那边的宿舍看看的。不过路途确实遥远,再加上周日塞车,晃晃悠悠花了近三个小时才到达目的地。
    
    干姐的宿舍其实是一个套间,三房两厅,不过是两人挤一间房而已。阳台面向的是梧桐山,不时还能听到鸟叫声,阳光也能普撒到大厅中,比起白石洲那暗无天日的农民房,不知道好上多少倍。这一天,三人的晚饭又吃得很晚,上车回程的时候,已经是快九点了。
    
    坐在公交车上,段伏枥有种别样的感觉:干姐搬走了,今晚开始就只剩下自己和刘思敏了,怎么总觉得似乎哪里不太对劲呢?
    
    段伏枥往坐在旁边的刘思敏看去,发现她已经背靠着椅子睡着了。刚刚干姐和刘思敏让自己走远点,究竟两人聊了点啥呢?这一切无从而知。只是此时,她睡得很安稳,似乎什么都放下了。只是,真的如此吗?

“你这算法效率太低了,怎么能直接用除法呢?你要用查表的方式!”段伏枥写完计算器没多久,同事老柳突然跑过来说要帮忙看看代码。
   
    “查表?”段伏枥隐约记得,用查表的方式来计算除法,在没有除法器的单片机上为了加快运算速度是常用的方式。只不过在现在公司所用的夏普LH7A404这款ARM9核心的CPU,也需要用到查表的方式吗?段伏枥作为初学者,隐约觉得使用查表的方式似乎不妥,可又说不上为什么,但既然老鸟都发话了,那么肯定是必然有其道理。只不过段伏枥现在发愁的是,这查表程序应该要怎么弄呢?那时候的段伏枥还不善于使用baidu或google之类的搜索引擎,多次问题也是摸不着头脑,而老柳也只是丢下这话之后拍拍屁股就走了。
   
    到中午和研发部几个同事一起吃饭的时候,老章看出段伏枥魂不守舍的样子,问到:“咋了,遇到什么事情了,让你如此大皱眉头?”
   
    “哎,老柳让我将计算器的除法改成查表的形式,但我实在记不起来查表应该怎么做了。”
   
    “为什么要改为查表的形式?”
   
    “因为他说效率不高啊!”
   
    “哈哈!那我问你,即使效率不高,那么对于用户影响在哪里?”
   
    “啊,这个……”段伏枥一下子也懵了,是啊,影响在哪里?
   
    “我问你,你现在做的计算器,什么时候会用上除法运算?”
   
    “在按下除法运算符,然后再按下等于的时候啊!”
   
    “那就是咯。假如查表运算真的很快,比如说快个400ms,然后在按下等于到你窗口显示结果的这一过程中,对于用户会有什么很大的影响吗?”
   
    “也是哦,好像没有呢。但为什么老柳非要让我改成查表的方式呢?”
   
    “因为他是做单片机出身啊!单片机在做除法时为了效率都是这么做的,然后他就想当然现在也要这么做,只不过环境什么都变了,简单的套用肯定不妥啦!”
   
    “啊,这样啊!”
   
    “哼,他们就是死脑筋,抱着以前的东西不放!可要知道,现在的技术发展已经日新月异了,一个跟不上发展的程序员,是不适合这个时代的!”
   
    “哦,恩~”段伏枥也只能这么点头,因为他自己也知道,其实自己根本没有资格去评论别人。老柳也许是跟不上时代,但底子什么的都还在,可反观自己呢,纯粹的一个菜鸟,还是一空二白,什么都没有。不过,在运算符这点上,段伏枥还是听了老章的建议,维持不动,还是采用C++的除法运算符,剩下的就交由编译器处理吧。而老柳呢,也仅仅是这次提了一下而已,后来似乎压根就忘了这事。
   
    只不过对于段伏枥来说,他记住了老章说的一句话:一个程序员,一定要经常学习,不能落后于时代。作为一个程序员,其实是不幸的,同时也是幸运的:不幸在于,在这个行业中,一定要保持积极不倦的学习态度,不能倦怠,否则就会不适应技术的发展要求;幸运的是,做这行能够接触很多新鲜的东西,不会有别的行业一成不变的死气沉沉。更为有意思的是,经验在这行业中绝对不能生搬硬套,比如以前写DOS程序,限于内存的大小,编程的建议是在一个函数中尽可能一个变量复用;而到处理器和内存飞速发展的现在,却变成哪里用到变量才声明,并且最好给予不同用途的变量于不同的名称,这是因为一两个变量的大小相对于如今的内存容量已经是微乎其微,现代更看重的是代码的可读性。但如果以为在现在都应该按照这准则来进行,那却又是一番错误,虽然桌面微机发展得很快,但同时还要看到,如今还有不少单片机存在,并且还在各行各业发挥无可替代的作用,而这些相比于DOS时代的微机,资源其实也多不了哪去,这便需要以前的法则。只不过此时的段伏枥并不知道这些,他紧紧关注的是,他一定要努力,争取跟上时代的步伐。
   
    段伏枥的计算器写了大约有两个月左右,算是大功告成了。只不过作为小公司,对于软件的评测其实很可笑,技术总监过来,随便点击几个按钮,觉得结果是对的,那么这软件就算合格了。没有什么测试人员,自然也没有什么严格的测试,只要上头觉得可以,那就行了。只不过段伏枥没有那么乐观,他只是默默地祈祷:以后千万不要有人拿这个来计算重要的资金数额啊,如果出问题了,可千万不要找上我!
   
    其实段伏枥在学校也写过计算数值的程序。那是物理的试验报告,段伏枥觉得自己手动计算这么多带小数点的数值太麻烦了,所以用C语言写了一个计算程序,可惜那时候自己不懂得整数和整数相除必然是整数,而只有浮点数才会有小数的道理,以致于最后的结果与正确数值差的天壤之别。只不过学校里面的老师大多是不负责任的,看到本子上有数值就算通过了。也正是因为这样的老师存在,所以才会发生考试时,只要将题目抄一遍,将试卷填满就能合格的笑话。没念大学之前,段伏枥看过一些报道,说国外不承认国内很多大学的文凭,那时候他觉得国外太过分了,太看不起国内了;可大学毕业之后,却深深觉得国外的鄙视是完全有道理的。试想,如果一门课程,在最后一节课,老师会让所有的学生到教室,然后翻看课本,说:大家翻到课本第XX页,看到第x段,我在这里会出一道填空题;第XX段,我会出一道选择题!这样的教学和考核,有几个人会觉得这文凭有含金量?但这大学却又不上不行,你不上,你就没文凭,招工时就少了敲门砖,就会因学历不符合公司要求而被剔除。
   
    写完计算器之后,段伏枥过了两天舒服日子,这不,技术总监布置任务来了:写一个录音机程序!段伏枥可能没想到,这个程序将他带入了另一个更深的领域,让他更深入地了解Windows CE这个操作系统。

录音机程序对于一个初学者来说,其实可以说是难,也可以说不难。难是在于初学者经验少,可能碰到一些bug不知道如何处理;不难是因为类似的应用,只要懂得使用搜索引擎,那么类似的例子就一大把。段伏枥是菜鸟,但并不是笨鸟,倒是找了不少代码,拼拼凑凑还做了个像模像样的程序。只不过这录音机程序却有一个很大的问题:不能录音!当然,这也是最致命的问题,不能录音的程序还能叫录音机么?
   
    段伏枥开始头大了,感觉这一周来的辛苦,还是没有找到突破口。所幸老章看到冥思苦想的段伏枥,提了个建议:不严格来说,Windows CE的API函数可以看成是Windows的子集,不妨将代码编译成Windows程序试试看,先确认代码是否正确。经老章这么一指点,段伏枥觉得忽然豁然开朗起来。说干就干,打开Visual Studio 6.0,将Windows CE的代码全部放进去编译。还真别说,这代码确实没问题,在Windows XP上能够正确录音!
   
    那为什么在Windows CE上不行呢?等等,Windows XP上如果无法录音的话,一般就是驱动程序的问题,那么在这Windows CE设备是不是也是如此呢?很有可能!段伏枥将目光锁定于驱动程序。
   
    公司的研发部分为硬件部和软件部,而软件部又细分为应用组和系统组。段伏枥,老章和一个姓郃的女孩属于应用组;而系统组只有一个人,便是老柳。当段伏枥兴冲冲地跟老柳讲解自己的怀疑时,老柳还半信半疑,末了,说一句:“不一定啦!你再试试看!说不定是你代码问题呢!”
   
    没办法,老柳不同意,段伏枥也无计可施,只好回自己的办公桌冥冥思索。时间又过两天,还是没有在应用代码上找出任何有可能的地方。没辙,段伏枥再一次找到了老柳。老柳估计这次是躲不掉了,想了想,便同意了,于是便在段伏枥的电脑上安装Platform Build 4.2。
   
    Windows CE是一个可定制的系统,Platform Build 4.2便是用来定制的工具。简单点来说,该工具首先将C++代码编译成exe和dll文件,然后将这些生成的文件拷贝到工程目录,最后打包成系统nk.bin。在这里老柳耍了个滑头,虽然给段伏枥安装了Platform Build,但并没有将所有的驱动代码文件给他,而仅仅是给了音频驱动的代码,以及已经编译生成的exe和dll文件。老柳告诉段伏枥,首先进入命令行,用“build”来编译音频驱动,最后调用“Make Image”来生成系统,并且还特意警告段伏枥,绝对不能点击菜单上的“Sysgen”。为什么不能点击“Sysgen”呢?因为该命令会重新编译所有的驱动程序,而老柳根本就没有将所有的驱动程序给段伏枥,如果选择此命令,那么绝对会出现一大堆的错误。只不过这原因老柳没有告诉段伏枥,而他自然也不懂得这些。但既然能够开始调试音频驱动,那别的什么都无所谓了。
   
    其实这完全算不上调试,因为段伏枥什么工具都没有,就连一个最简单的串口调试版也没有。当然,段伏枥自然不会去计较这些,或是说,其实他根本就不知道这些。他知道自己所能做的是,一行一行看代码,试图找出蛛丝马迹。只不过这工作对于菜鸟来说,确实是太困难了,连日来的不断思索,还是没有找到真正的源泉。段伏枥正垂头丧气地趴在桌子上之时,忽然手机短信响起,是刘思敏的:“今晚能早点回来么?”
   
    段伏枥看了看电脑,发现已经差不多九点。虽然平时都是加班到十点多才回去,但今天想得实在是头大,并且反正暂时没有头绪,干脆先回去吧。和技术总监说了一下,段伏枥背起包包往公交站走去。
   
    算起来,干姐搬走已经差不多半个月了。段伏枥本以为只有两个人的时候,总会发生点什么,但事实上,两人的话语反而比三个人还在的时候要少多了。也不知道为什么,干姐还在的时候,段伏枥自己还能和刘思敏说说笑笑。可当只有两个人的时候,面对面,却不知道该说些什么了。气氛很沉闷,很尴尬,于是段伏枥干脆每天都加班到很晚,回去的时候刘思敏也差不多睡了。这时候往往是刘思敏问一声:“你加班回来了?”
   
    “嗯。”然后段伏枥便去洗澡,洗完衣服,出来之后一般刘思敏也熄灯睡觉了。既然两人面对面尴尬,干脆就什么都不要说了吧,段伏枥觉得这样挺好,虽然心底有那么点点失望。
   
    只不过今天刘思敏居然会主动让自己早点回去,莫不是有什么不好的事情吧?这么一想,段伏枥一激灵,放弃了省钱坐公交的打算,直接奔向地铁口。30分钟的地铁,相对于要1个小时的公交,其快速自然不言而喻。只是在心急如焚的段伏枥心理,这30分钟却是那么的难熬,第一次觉得地铁居然那么慢。好不容易在世界之窗下了地铁,段伏枥赶紧快步往出租屋奔去。匆匆打开大门,就听到痛苦的呻吟声:刘思敏究竟怎么了?

原创粉丝点击