一个让人目瞪口呆的BUG

几乎快要忘记这个故事了。

我的记性就是这么不靠谱,总是要把发生的事情写下来才肯放心。所以,才能从代码库中找到这个项目。所幸的是,开源中国的私有代码托管太棒了。

事情是这样的,当时有一家儿科医院,在病人住院后,要每天检测一次患者的各项指标,评估其死亡概率。 从程序员的角度来看,就是输入一组数字,根据给定的公式,算出结果,这么简单。

不知道医生每天在计算这些数据时心里在想什么,毕竟,计算别人的死亡率,感觉不太好。专门负责这件工作的人,每天要输入上百份数据,然后手工汇总到Excel中,也不轻松。

他们提供了一个在线计算的网站,由于年代久远,网址早已失传,只找到了这张截图:

这是他们每天都在使用的工具。关键是操作十分不便。他们要打开病历,照着上面的数字输入,第一项结束后,要把手移动到鼠标上去切换到下一项。比如200份资料,要输入200次,15项,那就是3000次输入。而且由于网站不能保存数据,他们要把计算结果复制到自己的Excel中。

这个Excel是他们要的结果,对于非IT人士,用于统计和研究,Excel是最容易,最常见,可能也是唯一的数据格式了。

so,需求主要有三点:一是不能依赖网络(说不定哪天断网了,或者这个网站挂了),二是要尽量减少人工的劳动强度;三是要把数据保存到 Excel 中。

具体需求如下:

1 提供一个界面,上面显示各项指标和计算结果。

2 每一项指标参数,都有格式要求。比如,x.xx, 意思是小数点后两位。比如,当输入 1.23 以后,光标自动跳转到下一个输入框。以节省切换光标的操作。

3 打开界面后,光标自动位于第1个输入框。

4 有一些固定选择的参数需要做成下拉框,成为焦点(就是获得光标)后,要自动弹出全部选项,自动选中第一个,用户可以用上下箭头选择。用右箭头结束。

4 全部输入完成后,结果实时出现。

最后的运行效果,应该是,用户不用看屏幕,盲输,眼只需要看着病历,手只需要放在数字键盘上,这样效率最高。

这样一个简单的程序,居然也要经过13次修改,才能让客户满意,也许当年我比较菜吧。最后完工的界面如下:

然而交付以后,用户说,按下每一项输入完成后,根本都不能自动跳转。

这是个大问题,相当严重。

对方的机器是XP系统,所以,我装了XP虚拟机,反复测试,在我的机器上没毛病。

怎么都测不出来这个BUG。

我要求对方把硬盘摘下来邮寄给我,遭到拒绝,理由是硬盘里有医院的机密信息。

我找了一台旧的台式机,在上面装了XP,依然不能测出问题所在。

最后,我打算亲自跑一趟,去现场解决这个问题。想一想路费,有点犹豫。最后,我说,要不然,你装个录屏软件,让我看看你是怎么操作的。

录屏没毛病。

我开始疯狂地测试,无论如何都无法重现这个BUG,测到怀疑人生。

我说,不然,你用手机拍下你的操作,把手的运动和屏幕一起拍给我看。

这下,我找到了原因,原来对方用的是小键盘。而我是用笔记本开发的,没有小键盘。

问题就这么解决了。我的判断逻辑,只针对键盘上面的一行数字跳转,因为我的笔记本根本没有小键盘啊。

那么台式机是怎么回事?因为我从来不用数字小键盘。

顺利结束。

后来,我在跟别人讲到这个BUG时,两个人都笑出了眼泪。

再谈IT培训

再谈IT培训

曾经听说李笑来开班讲学,讲编程,收费六七万一期,人员暴满。

当年学校组织两个月的强化实习培训,有两个学分,但我没有参加。我觉得自己是学霸 ,没有这两个学分照样能毕业(就算不能毕业也不care,当年学霸的逻辑现在我不懂)。没有参加是因为培训在另外一个城市,免学费,但食宿自理。但我出不起食宿费,想留在这里挣这两个月的工资。(市场上三个月,我们只需要两个月,人人都是学霸)

其实我非常想去,亲眼见见牛人讲师是怎么编程的,但是身不由己啊。我已经在公司实习了半年,没有人教,全靠自学,非常的苦闷。

在此之前,我已经自学了N多年,不用避讳,其实基本是没学会什么东西。我曾经一度怀疑自己是不是这块料,但人必须找到一件活计来养活自己,编程是我能看到的唯一的活计。

我自学过很多门语言。自认为C语言学得还不错,可以在DOS下用字符画界面,类似于这样的:

 

我写的程序是仿照这个界面设计的,有菜单,有按钮,有边框,重要的是,可以在DOS操作系统中下运行,是真正8位程序。

现在的计算机都64位了吧,不一定能兼容8位程序。现在估计没有人用这种界面了,所以所有努力算是白费了。我是讲师的话,绝对不会教这种技术,相信所有的讲师都不会。

后来学C++,书上讲的一回事,现实中又是另一回事,一个最简单的操作,我要研究很久,经历好多次失败,不知道有多少次怀疑自己的智商。

多少次我在想,要是有人能教我该多好啊。我很后悔没有去参加学校组织的培训,还没毕业,有三分之一的同学去了北京,被有名的软件大厂定向招走了,起薪4K+,而当时的我在本地,已经实习了一年,连这一半都不到。

所以每次见到那些培训生,都怀着无比复杂的心情,一方面是嫉妒,一方面是后悔。然而后面的人生中第一次招聘,改变了我的看法。

不知道是学校格外开恩还是我天生学霸,没有培训实习的学分也拿到了毕业证。毕业证拿到手没几天,同学们各奔东西。校招,领导让我选一些人来面试。打开邮箱后,傻了。几百份简历,几乎都是用同一个模板写的,都是三个月培训,加公司实习半年,有三个项目的实际经验。编程语言,全都是JAVA。

这些简历,像是工厂里下来的标准件,几乎一模一样但又各不相同,真不知道该如何去选。看了几天,看麻木了,领导开始催我了。

我对JAVA一无所知,只好胡乱选了几个。

第一个是同校不同校区的男生,他在学校里给老师做过项目。带着笔记本过来面试,领导不在,让我接待下。我让他打开他做的项目,随便指着一个地方,说这段代码,你给我讲讲什么意思。
他讲不出来,我跟领导说他能力不行。

第二个,是女生。跟着学校那批去培训了。我觉得女生可能学习更认真吧,况且是同一个系的同级同学。
来了之后,没带笔记本,不能看项目,只好尬聊。
她说:“我不知道我喜欢什么,同学们都在投简历,所以我也投了。”
我心想,这是个没有规划的人。打发走了,跟领导汇报说,投错了简历来的。

第三个没有选我们学校的,故意选了个专科的。想着专科的学生可能动手能力强,不会天天死读书。然而我错了,打了三次电话,每次都约好时间,结果却每次都不来。

领导开始批评我,并且给我贴了个“不适合搞管理”的标签,从此我与管理岗位无缘。

领导就是领导,亲自出了一份笔试题,考智商的。跳过技术考核(是不是感觉都白培训了),两天面试了十几个人,最后选了两个。

一个笑起来露出八颗牙,上四颗,下四颗,像是要把嘴吸在玻璃上那样。我根本不可能选他面试。
另一个,也好不到哪去,笔试三分钟放弃答卷,交了白卷。

居然都进来了。
其实都是刚毕业,大家都是白纸一张,何必挑来捡去。

第一个实习三个月后,进了用友,薪资10K起。不是我带的好,是人家本来就牛。

第二个只待了一个月,因为他早就被某985学校录取读研了。华丽丽的默默逆袭。

都算是牛人。领导虽然不懂技术,选人那是真牛啊。

培训出来的不见得就比别人好,牛人培训了还是牛人,渣渣培训出来还是渣渣。问题大家都培训三个月,就你不培训,你都不好意思去投简历。

所以所有的简历上都是培训三个月。培训两个月的,除了我们学校可能绝无仅有吧。

所以我也想去培训三个月,然后跳槽去北上广拿高薪。

去培训机构一打听,培训费一般一万五起,高的两三万,我根本付不起。所以真的太后悔没有参加学校的免费培训了,亏大了。本来想挣点生活费,结果却亏了学费。

新人一走,办公室就剩我跟领导两个人,天天大眼瞪小眼。我天天自学,每天都学到怀疑人生。

怎么办?接着招呗。招了三年,前后没有几十个也有上百人了,多到我都记不起来他们的脸和名字了。有打酱油的路人甲乙丙,也有一些自带天赋开挂的,比如有一哥们熬了6个月,然后跑到深圳干了半年就深得新老板赏识,遵旨开了分公司,如今总资产上亿。还有一哥们,三个月后去当了IT培训讲师,收入暴增十倍。

就是没有一个留下来的。

一个都没有。干不来的觉得没意思就自己走了。干的不错的,要的工资太高公司不愿意给。

来的人都跑了,为啥我没有跑?因为我没有培训啊。大家都培训为什么你不培训,简历上没有培训怎么好意思投呢。
每年至少损失100K的工资。

听说学校培训的那批同学,春节前从北京回来了。就剩下两个,一个女生转行干客服了。另一哥们升了开发组长。其余的人,全都转行了。两个班,75个人,就我跟他两个人在撸码,直到现在。(据我所知,我们学校这一届至少为社会贡献了8个职业程序员,另外6个是法律,物理,数学系出来的,8个人里面,7个都没有培训,培训过的约300多人里,只有1个以编程为生)

另外那哥们,我还想多一句,是个奇葩,没有学籍,没有毕业证。所以学历算是高中。多年以后参加成人自考拿到了本科学历,那是后话了。

是这个行业竞争激烈吗?并不。那时互联网还没有这么火,编程是个没有未来的体力活,职业年龄不会超过30岁,接受传统教育的高智商人群不屑于这种雕虫小技。要么去搞研究发表论文,青史留名,要么不济也得混个中产吧。考研,出国,进500强,事业编制,才是正道。

竞争激烈的是开高薪的企业。高薪者,必要求高能力也。能力不够,还是白搭。

领导终于下定决心不再招应届生,并且开“高薪”,要求至少是五年经验。所以呼啦啦招了十几个进来。

而我刚好够五年经验了。不,我还实习了一年,是六年。

看,公司还是能开高薪的。之前没开,是认为不值得。包括我在内。

当年不愿意花一万五培训,结果跳不动槽,并且五年损失了六七十万,客观来说,可能是八十万,到一百万,的薪水。

真可惜。那时没有信用卡,在最美好的青春里,一贫如洗。

所以笑来老师的培训课,六七万,真的很值,要是我刚毕业,又不想进入“腐朽的系统”,会买。没钱,去借,去套,去撸小贷。为了一个未来,一切都值得。

贫穷,限制了我的想象力。

可见IT培训,是门好生意。只要还有人出身草根想改变命运,只要这类人还有远见,就永远会有市场。