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