《疯狂的程序员》

下载本书

添加书签

疯狂的程序员- 第14部分


按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!

介绍完,周总安排绝影就坐小周旁边的办公桌,说:“那你们先忙吧,我就不打扰你们了。遇到什么问题要多问小周。”

小周一直没说话,也一直没抬头,等周总走了,他只说了句:“听说你汇编不错。”

绝影忙说:“不敢当不敢当,就是学了一点,了解一点。”他看这办公桌上的电脑正是自己面试时做题的那台机器,连衣服都没得穿,破得不得了。他问小周:“那我现在做什么呢?”

“先看MFC。”

先看MFC,MFC这个东西绝影倒是知道,其实只能算是了解,不就是Microsoft Foundation Classes――微软基础类库么。具体是什么他不知道,总之一个东西你只要知道他的全称是什么至少能给别人留下非常专业的印象,你问小周:“你知道MFC全称是什么吗?”他还不一定答得上来。

在哪里看?从哪里开始看MFC?看MFC什么?绝影都不知道。他本来想问小周,但看他一直神情专注一丝不苟而且貌似他又是个不爱答理人的人,至少说的第一句话“听说你汇编不错”感觉有点藐视绝影的感觉,他不想去碰壁,干脆就开了电脑对着它发呆。

最后终于还是小周沉不住气了,他说:“我在你共享里拷了个Project,你先打开看看,有什么不懂就问我。”

他双击打开那Project,VC++的进度条唰唰唰跑了好几躺终于才看到它的真面目,尝试编译一下,乖乖,居然用了将近一分钟,有时候就编译一个cpp文件居然就要用好几秒。还是汇编好,你看一个ASM文件拿来汇编,基本就没有停顿,汇编器来得快,写起程序来也来劲。拉开左边的Source Files列表,里面密密麻麻都是cpp文件,看得绝影头都大了,程序入口点在哪里,哪个文件干什么,他都不知道。你想用32位汇编来做,做再大也就放在一个ASM文件中,技术好一点,分成几个ASM文件用include包含进来,技术再好一点,分别把几个ASM文件汇编成obj再连接,要找入口点,直接去搜索“end xxx”,这个Project可好,居然连WinMain都找不到。

可他又不好意思开口问小周,作为一个程序员,虽然只是实习试用期的程序员,你跟别人说你连入口点都找不到那还不被同行笑死。于是就装模作样一个人看,似乎看得仔仔细细津津有味。

燕儿问绝影:“第一天去工作感觉怎么样?”

他不敢跟燕儿说自己去做了一天啥都不懂啥都没做,只能说:“行,还不是那样,不就写程序吗?”

他这样说,自己还是偷偷去书店买了本《MFC入门与精通》,得亏大家都还不知道他对MFC一点都不懂,要不这工作八成没希望。虽然公司不怎么样,但拿出去跟同学说:“工作吗?这个问题我已经落实了,程序员。”还是感觉很有面子,特别是新闻上老是讲毕业生就业率怎么怎么不乐观,说得多了,看得多了,让他们这些大四学生还是挺有压力,前几届毕业生还互相比谁谁谁的工作单位好,待遇高,前途大,最近几届就比谁谁谁找到了工作,谁谁谁已经签了合同。

所以那段时间绝影一遇到同学聊天不到两句就把话题扯到找工作上来,他问他们:“怎么样?工作的事情有眉目了吗?”

他们说:“还没呢。”然后一般会反问一句:“你呢?简历做好了没有?”

这就是绝影要的。他可以大大咧咧若无其事地说:“做啥简历阿,工作我已经落实了,程序员。直接去做了个面试题就过了,简历什么的做都没做,自己有技术有东西就不用去骗人,还要简历那东西干啥阿?”

很多时候程序员中的前辈讲一个人学写程序有没有前途,总说:“学程序,不光要能吃苦能用功,还得看有没有‘sence’,没sence的人就是再怎么学再怎么给他讲效果都不好。”

本来绝影挺相信这话,毕竟是前辈说的,他总想自己应该算有sence的吧,至少很多人都还是夸他智商高聪明。要换成另外一个人听了这样的夸奖肯定高兴得不得了。但绝影不这样,别人越夸他聪明他越反感。

初中的时候有一个星期五班长对大家说:“明天是星期六大家去放松一下我组织大家一起去看场电影吧。”绝影没去,他回家一个人背政治,就在家里踱步从客厅这头踱到那头一边踱一边背政治。星期一政治考试他考了94分全班最高分。于是同学们开始夸奖他:“哟,真是太聪明了,看几遍就能背了,就能考94分,智商高就是不一样。”

绝影觉得他们那样说简直是对自己的侮辱。凭良心说我背书的时候你们干啥去了?看电影去了。我考到94分你们就说我智商高聪明来为自己没考好找借口,同时把我的刻苦用功给我全部抹杀掉。

其实“sence”这个东西也是这样。

有时候想学个东西比如KmdKit开发驱动程序吧,学了好几天都没啥进展,头脑里全是调用API,想凭着经验去套用驱动程序,结果帮助文档是看完了可自己头脑里还是一点印象都有甚至连Kernel Mode Driver是啥东西都还不清楚。

又说用VC++,MFC,本来知道这东西是有用以后工作阿开发的肯定要用,还是去看了一两天,觉得还是没一点头绪,想算了还是放弃了也许自己真的是没有“sence”。

所以“sence”就像跟你捉迷藏,开始你以为肯定找不到他了或者他根本就没在你这里,等到你急着要用的时候它突然又不知道从哪里一下蹦了出来,让你突然欣喜若狂。

绝影也是这样,没想到这几天突然“sence”出来,他看MFC如有神助两三天时间居然看出点门道。不过这东西还真不是一般人能看的,比如土匪,这学期都学了C++了,你跟他说“微软基础类库”他还是照样理解成“微软基础内裤”。这样理解也就算了,可他还一脸虔诚地问绝影:“你说微软没事了搞内裤做啥阿?他们不是搞软件开发的么?”

又去了几次公司,土匪突然给绝影打了个电话:“C++的杨老师到处找你呢,说你好几次没来上课,问你C++还想不想考试。”

绝影突然意识到问题的严重性,上次本来数字信号处理这门课他铁定能过的,就因为旷课又没给老师打招呼结果给挂掉了。后来他给那老师写了封信,告诉他我现在是计算机XXXX三级,软件设计师,我在一家公司兼职就是做数字信号处理的(当然这个是为了增加说服力虚构出来的),如果这门课连我都挂了,估计这个学校能过的人不超过3个。后来也许那老师去了解了具体情况,还是给绝影回了封信,大概就是很遗憾什么什么的,但是他也没办法了,因为成绩已经入了教务处的数据库是没办法修改的。

后来绝影一个很好的朋友也是他数字信号处理试验课的老师跟他说:“以后什么课不去上,先去给老师打个招呼。”

他立刻找到杨老说,说:“我现在在一家公司实习了,程序员,用的就是C++和MFC,所以C++这门课肯定没问题,因为公司的事情比较多,可能来上课的时间就比较少了。”

那时候工作是头等大事,就算拿到院长校长那里去他们都是鼓励和支持学生就业的,再有可能杨老师还是觉得自己的学生挺有出息,这么早就找到了实习工作,还是搞开发的,凭良心来说在公司用C++实习两个月肯定比在学校念半年书有用得多。于是和蔼的说:“没关系没关系,考试的时候来就是了。要是考试的时候来不了,就提前给我打个招呼。好好工作去吧。”

绝影觉得这个杨老师挺好挺讲道理,还是去上了他几节课。下课的时候他问杨老师:“我定义了一个类,如果用‘new’来动态创建它,编译器会分配空间,自动调用构造函数等对它进行初始化,如果我用GlobalAlloc这个API来为它分配空间,系统会自动调用构造函数来对它进行初始化吗?”

杨老师用粉笔在黑板上比划了半天最后说:“还是去试一下吧。”

那时候他忽然觉得学校很忽悠。当时他真的不知道这个问题的答案,但他没想到教C++的老师也不知道这个问题的答案。

公司里面跟小周学了一段时间,绝影也觉得特别鳖,那小周看起来每天都很忙,忙得没有一点时间回答他的任何问题。他总是说:“等一会,你自己先看看。”这一等往往就等到他下班,他又说:“下班了,工作上的事情先不谈了,下次你来我给你说。”于是扔给绝影一本VC++的书,书绝影没怎么看没有印象。

没办法还是要自己学,虽然累,但成绩还是有的,那个他自己做的读写注册表的Demo就是证明。他把这个东西交给周总,周总脸上露出一点笑容:“不错不错,小周还是让你进步很快嘛。行,实习试用期就算过了,现在开始正式实习。”

过来国庆节,周总又把他叫到办公室:“由于种种原因,小周要暂时离开公司,以后你要在公司发挥更大的作用。看看能不能多点时间来公司。虽然你在学校也可以做点东西,但我们主要还是想让你尽快融入这个环境中来。”

绝影想这不是整死人吗?就这巴掌大点的公司,对外还宣称一个医疗软件公司,年利润多少多少实际上真写程序的人也许就小周这么一个,现在他都走了不如关门算了。还让自己发挥更大的作用,自己还指望过来学点东西呢。

这么想,绝影还是跟周总点点头。他说:“马上毕业了,学校事情还有点多,下周马上体育期末考试了,我考完了就多抽点时间来公司。”

回到学校的几天,绝影一直在思考还要不要去公司。去,那公司实在没什么前途,也许让同学知道公司是这么个破样还会被耻笑;不去,同学都知道自己找到了工作,现在工作丢了还是会被他们耻笑。

这天,正好是体育期末考试,绝影刚跑完1000米感觉气都接不上来,突然“电蛐蛐”响了,一看,是公司打来的。

毕业设计

这次周总的语气显得有些焦急,绝影预料都有什么重要的事情发生。他说:“小绝啊,那个KIPACS的BUG你现在能不能抽点时间加紧修一修。明天我们就要去为一家医院安装,时间很紧啊。”

周总说的KIPACS是公司一个软件产品,以前一直是小周在做,虽然名字叫PACS,后来绝影才发现,这个软件产品其实还算不上真正意义上的PACS。小周一直拿它当宝贝似的,还记得前不久刚刚把视频卡模块加进去的时候他一个人在那兴奋得不得了,还让公司好几个员工都来拍张照片留念。绝影也拍了一张,比摄像头效果好得多,因为视频采集卡是9bits的。

“本来以为没什么问题了,今天下午我在公司测试了一下,发现还有好几个BUG,现在再去把小周找来肯定是来不急了,你先看一看,我把源代码和BUG列表已经Email给你了。”

绝影觉得这事情来得太突然,自己在公司现在最大的成就莫过于用MFC做了一个注册表读写的Demo,现在突然要他来修改一个商业化产品的BUG他实在没什么底气。他说:“KIPACS代码我看过,但从来没往里面写过代码,不知道行不行。”

“你就试试吧,能改多少改多少。”

“好的,我去看一下,改完了我给你电话。”

显然周总也处于十分被动的局面,明天就要给别人医院安装,现在都已经是下午六点,公司原来负责这个CASE的程序员又不在,他也只好死马当活马医了。

事情来得紧急,绝影也顾不得吃饭,他给燕儿打了个电话,说:“晚上公司有事,要写点程序,我刚跑了1000米,及格了,反正现在也吃不下饭,你先一个人去吃饭吧。”

周总的邮件里面列了5条KIPACS的BUG,绝影看了一下问题都不大,他这才第一次认认真真地看KIPACS的代码。虽然老早之前小周就把KIPACS的代码发给他,当时也就是让他看看,没啥其他要求,所以他也没压力,看了几眼觉得代码又复杂,结构混乱,各个cpp文件中都随处定义的全局变量,没用匈牙利命名法,注释也很不完整,才看了几眼就感觉头都大了,所以他也没怎么认真去看。

这次不一样,你要真刀真枪去修改BUG,于是从APP类开始,顺着程序流程往下看。以前绝影的思想中基本没有“类”这个概念,所以看MFC的工程就看得累,一个一个cpp地文件去寻找实现这个功能的函数在哪里。后来周总交他一个法子:别去看那文件列表,直接把类视图展开,从APP开始,从类成员函数中去寻找,特别注意那些OnXXX函数,一般就是处理消息的。

时间一点一点过去,绝影修完一个BUG就在那BUG列表文档相关的项目上打个钩,修改一会又去看看那个文档,刚才打的钩还在,打钩的越来越多,没钩的越来越少,看一看觉得还是很有成就感,又埋头继续看代码,有时候一边看一边骂,骂谁?骂小周。代码得这么混乱,根本没想过给后人留点方便。所以要是以后自己写代码,就一定好好写,写规范,写好注释,免得别人骂我。

不知不觉就到了11点,绝影在骂人和成就感交替的心情中终于把所有BUG都修改完。他仔细地在BUG列表的文档中每条BUG后面打上括号,写上“已修正,X年X月X日,绝影”,然后把KIPACS工程打开,从头到尾把自己修改过的代码旁边打上注释:changed by Hamber; yyyy…mm…dd。

是后来燕儿帮他起的英文名,燕儿英语专业出身,给她们讲课的也都是老外,老外就是迂腐,非要给全班每个同学都起个英文名,名字不过就一个符号,但他们好像只记得住英文的名字。

燕儿也觉得很有意思,虽然没留过洋,但有个英文名感觉还是要牛B一点,于是兴高采烈回来也给绝影起个英文名。以前绝影就有个英文名叫Hitetoshi,那是从一个日文名字演变过来的,想1998年世界杯几乎全中国球迷都支持日本,所以用个日本名字还是比较洋气。后来小日本越来越过分,绝影对他们的腹绯也越来越多,最后腹绯变成愤怒,终于决定采纳Hamber这个名字,跟小日本彻底决裂。

现在考个驾照比以前严格得多,就路面行驶如果视线离开正前方超过三秒钟就直接不合格。这个要求对很多人来说的确有点难,路上那么多人啊,车啊,

小提示:按 回车 [Enter] 键 返回书目,按 ← 键 返回上一页, 按 → 键 进入下一页。 赞一下 添加书签加入书架