不爱创新的人,或者没有接触过原创工作的人,往往会有一种错觉:发明创造也好,经典神曲和传世诗篇也好,那都是天才灵光一闪的产物。
莫扎特的传记作者奥托杨就揭露过一个谎言:早在19世纪初,就有许多“鸡汤文”渲染莫扎特的创作流程:说他毕生最牛逼的作品,都是在夜深人静、环境优美、天人合一的状态下,由于灵感爆发、思如泉涌而创作出来的。
但是实际上,这种“鸡汤文”论调纯属扯几吧淡,是彻头彻尾的谎言。奥托杨早已证明,莫扎特根本不是这么一个人。
哪怕强如莫扎特,作曲也是要慢慢研究乐理、反复修改调音试听的。
哪怕强如李白,除了号称一蹴而就的三首《清平调》,他其余的大部分诗作也是要查韵部、抠字眼、和贾岛那句“僧推月下门”那样,为了一个个用字反复“推敲”的。
过度强调创造所需的“灵感”,而选择性的无视创造所需投入的“努力勤奋”,无非是鸡汤文和段子手们为了自己的文章销路,媚俗无耻地迎合大众,满足大众的自我心理保护。
因为庸碌的大众需要为他们的创新无能寻找一个开脱的借口。他们甘愿相信:看,创造这种东西,是天才才能做的事情。我们没做到,只是因为我们没有这种天分,而不是我们不够努力。
而在现代前沿企业里面——只要不是那种只会山寨别人产品的企业,只要有几分实打实的自主优化和创新的——在它们的研发部、软件部,有得是依靠拼搏和努力来实现创造的工程师、程序员。他们并没有外行大众想象的那种天才,他们有的,只是勤奋的努力,和一个正确的方向。
朱海波也好,杜俊强也好,都是新世纪华夏百万原创码农中一朵微不足道的浪花而已,他们一样没有天才,但是他们一样知道努力。
至于有没有把握到正确的努力方向,在此之前他们不敢说。刚刚工作了两年的码农们,心中有迷惘是很正常的。
但是遇到了顾莫杰之后,他们敢说了。因为他们知道,他们要找的东西,在顾总那里就有。
……
顾莫杰电话打完不到半小时,外卖就送来了,他礼贤下士地招呼大家过来一起吃,自己也先挑了一份盖浇饭,直接开吃,一点看不出老板的架子。
各怀疑问的程序员围坐一圈,闷头吃了几口,谁也不好意思先开口问。直到顾莫杰咽下一口青椒肉丝,挥着筷子反问:“我说午饭的时候趁机例会,你们就没什么想问的?今天的会我只负责答疑,没有硬性议题。”
听顾莫杰这么一说,朱海波第一个忍不住了,开口问道:“顾总,我想知道,我们公司的测试团队究竟有多少人?都是什么资历的?说实话,我在搜狐两年,也没见过这么强大的测试能力,居然可以针对一份基本功能都还没跑通的代码,就测出这么多问题。”
各位看官或许会好奇,为什么朱海波会对公司的测试实力如此关心。这个问题其实可以通过打个比方来说明。
程序就像是一个等待医治的病人,程序员就是负责开处方配药的医生,而测试员则是观察病人症状、反馈病人症状以及程序员用药后“病人药物反应”的人。
最差的测试员,只能告诉“程序员医生”,这个程序“哪儿疼”。好一点的测试员,能告诉“程序员医生”,这个程序“得了什么病”。所以任何软件公司,都需要软件部和测试部两个对抗性的部门合作,才能产出一款合格的软件,就像法庭上需要控辩双方唇枪舌剑,真理才能越辩越明。
一个公司的测试员是否牛逼,对于程序员能力的成长,会有很大的影响。
比如一个手机方案,面临一种症状为“翻盖后手机屏幕不亮”的故障,最次的测试员只会安安分分地按照上述文字提交一个bug,然后程序员需要费老鼻子的劲儿去查问题究竟出在哪儿。精力花了不少,进展却没多少。
而有经验有眼光的测试员,遇到同样的bug,就会不满足于上述简单结论。他会用更多的对照组实验细查问题根源,最后很可能总结出“翻盖上的霍尔器件传感器通信代码异常”这个深度的问题所在。与给力的测试员合作,程序员就能省掉很多排查的弯路,让自己的经验和写码技能快速成长。
公司测试资源的强弱,与自己的切身利益息息相关,与将来工作能力的进步速度相关,朱海波、陆俊强等人怎能不好奇?
顾莫杰听了这个问题,淡然一笑,把早就准备好的答案抛了出去:“公司肯定是有强大的测试团队的,这点你们放心。不过目前有一些人员还属于外包,没法介绍给你们认识。”
朱海波听了这个过于官方的回答,更是心痒难耐,进一步追问:“顾总,我绝对相信您说的话,也没有对公司的测试团队实力有任何怀疑。可是在国内我实在没见过这么强的测试,您能说一些技术上的细节么?
比如针对我昨天写的这部分代码,我看到测试的同事提出了一个‘词频反馈数据抓取环节存在内存泄漏’的bug,还精确到了某一段代码上,这简直是神乎其技了。基本功能都没跑通,测试是怎么测到这一步的?”
一个软件,写得越完整,越容易精确测出bug来,而软件越是原始、越是基本功能都没有跑通,要精确测出问题就越困难。这个道理是举世皆然的。
就好比一台手机,如果连基本开机都做不到,那永远只能测出一个bug:开不了机。纵然从代码层面看,这台手机的摄像头数据传输有问题、触屏算法有问题……也都轮不到被测出来了。
可是这种常人看来不可能的事情,顾莫杰偏偏就做到了。
朱海波昨天写的那部分代码,就相当于是一台开不了机的手机。而顾莫杰就相当于偏偏在没开机的情况下,就说出了“如果这台手机开机了,还会出现哪些bug”。
如果说普通互联网公司的测试员们属于“看到病人就说出病人哪儿疼”;而国内顶尖的测试大牛可以做到“看到病人就精确说出病因”;那么顾莫杰手下的测试团队,昨天的表现,就可以比作“哪怕看到的是一具尸体,都不用验尸,就能直接说出尸体的死因”。
法医的鉴定能力比给活人看病的医生强。连验尸都不用验就说出死因的人,自然比法医更强。这种测试能力,已经可以说是突破天际。不再仅仅是程序员的附庸,而是程序员的良师益友了。
众人好奇之中,顾莫杰放下盖浇饭,拈着一根筷子,作指点江山状:“那是我自己针对公司要研发的几款软件,写了一些代码层面的自动测试插件。所以凡是有结构体不完整、指针调用未定义、内存泄漏无法自洽……等等低级错误,都可以测出来。哪怕代码还不完整,都能发现问题。”
顾莫杰一说测试软件或者测试插件,朱海波、杜俊强等人就有几分听懂了,随之而来的,是一股肃然起敬。
测试插件,是一种降低测试员重复劳动、把一些简单重复的测试工作通过类似于“外挂”的功能自动跑完的软件。
比如用按键精灵写一个脚本,把一个软件上的每种按键组合都按一遍,看看功能有没有问题,就是一种最最简单的测试插件。
如果在目标软件里面有些低级错误的话,用测试插件的自动测试就能发现。但是测试插件能够实现的功能一般比较单一,只能做流水性的测试或者压力测试。要想用测试插件来发现复杂问题的话,那难度就不一般了,除非写插件的人本身也是程序高手。
2003年的国内,从来就没听说过有哪家公司的测试插件可以做得这么牛逼的,可是顾莫杰写的那个测试插件偏偏就做到了。
……
顾莫杰又回答了朱海波和杜俊强几个粗浅的问题,渐渐地就把程序员们彻底镇住了。
只有顾莫杰自己心中雪亮:他哪里是真有这么牛逼的本事、能够比钻研了数年搜索引擎代码的程序员都懂行?他之所以可以给出这么多指导性意见,完全是靠初音娘给他的那个vs2050牛逼。
众所周知,一款软件越是先进,那么对使用者的软件操作水平要求就会降低。
这个道理很好理解,就像ad每更新一个版本,据统计就能降低绘图的工程师们在绘图环节5%的时间花费;ps每更新一个版本,也能让p图的美工人员手脚快一些(在脑中构思构图的时间不算,这里仅指画图软件的操作时间)
vs作为程序员们写码的工具,2002版和2050版之间的效率也是天差地别的。后世由于有大数据,vs可以把全世界所有程序员们犯过的错误bug统计起来,归纳出一些程序员容易犯的常见病,然后把这些常见bug集成到vs2050的自动测试插件中去。
所以2050年的程序员们不仅写的代码比2002年可读化程度高得多,连除了逻辑错误以外的低级错误都几乎不会犯。时代每进步十几年,程序员的单位时间平均写码效率翻一番,这个定律从古到今都没有变过。
现在顾莫杰开公司了,vs2050的客户端部分自然是不能直接拿给公司的程序员们使用的。但是服务器端因为加密的原因,只有顾莫杰一个人可以接触到,所以哪怕他在服务器端动再大的手脚,都不会有人发现他的金大腿。
如此一来,这个外挂也就开得顺理成章,合乎逻辑了。程序员写代码的时候,很多错误并没法直接自动纠错出来,但是只要上传到了公司的代码服务器上,服务器运行自动测试功能,就可以把很多问题找出来,再批一层皮,假托一个子虚乌有的“公司测试团队”的名义,把bug反馈出来。
当然,初音娘在穿越回本时空的时候,因为云端bug数据库是存在2050年的,所以初音娘没法调用后世的数据库,只能是回到本时空之后从头开始,在网上各种渠道搜集充实自己。
也亏得如此,顾莫杰借用vs2050来完成自动测试时才没有表现得太过逆天、没有超过同时代人类的想象力极限。否则的话,他需要雇佣的程序员人数起码可以再省掉一大半。
……
众人被顾莫杰镇住之后,随着解释的深入浅出,他们心中越来越雪亮,对于是否要在顾莫杰手下长久干下去,也是下了决心。
在互联网公司,拿着同样薪水的程序员们,往往有些可以按时下班,而有些却天天加班。外人或许会觉得:难道是老板不公,给某些程序员加码的任务很多,而另一些不加班的则是关系户?
实际这种都是大谬不然的误解,在所有创新行业中,互联网公司是最容易按任务量分配活儿、童叟无欺的了。
之所以有些程序员加班多,完全是因为他们写出来的最初代码bug太多,所以后续的反复修正工作量太大,修修补补中就导致了天天加班。
而如果真有本事和那些程序大牛一样,一遍写过,只有区区几个小bug,不用大规模推倒重来。那完全是可以做到不加班,甚至提早下班的。
你加班,只有两种可能:
第一,你的原始代码写得太烂,后续修改工程量浩大。
第二,和你合作的测试员太烂,不会帮你精确定位问题,所以你的每一个bug都需要你去反复排查核心症结所在,导致你需要加班。
外行人不懂这个道理,做程序员的人怎么可能不懂这个道理?
顾莫杰手下那个至今没有露面的测试团队,以及顾莫杰亲手编写的那几款神乎其技的测试插件,居然可以测出主功能都跑不通的代码里的bug,这是何等逆天的能耐?
而且还有一个问题是:如果国内真有测试员做到这个水平了,谁还会甘心只作一个测试员呢?须知国内软件企业并不重视测试,测试员的工资只有程序员的几分之一,人家有这个能耐,这个诊断眼光,不如自己学一学写代码的基础,转行去当程序员赚高薪了。
所以,就算他们去百度、去阿狸、去藤迅打工,他们能够像在顾莫杰这里打工这般,让自己快速成长么?让自己的写代码能力天天获益匪浅么?
显然不能。
顾莫杰借用初音娘的vs2050,换取的就是这么一个效果:如果你为了一时的高薪,想去别人那里打工,或许我留不住你。但你若是一个有追求的程序员,不满足于仅仅赚钱,还想醉心于写代码,有几分改良这个世界的野望,希望快速提高自己的写码技能。那么他们就会被顾莫杰吸引住,如同指南针遇到磁石一样,被顾莫杰征服。
“顾总!我要向您道歉。”朱海波两腿一软,瘫坐在沙发上,浑身冷汗淋漓,似乎大病一场那般,“昨天我还怀疑你,还想着你这儿不靠谱,学不到真本事。现在我才知道,我真是有眼无珠!只要你将来不炒我,我这辈子就跟你混,绝对不想跳槽的事情了!”
顾莫杰微微一笑,环视全场,其他几个程序员也都是这番被他的表现彻底征服了,一副恨不得要斩鸡头烧黄纸表忠心的姿态。
有的还纷纷表示他们认识几个原本去了百度和阿狸的同事,如今也不顺心想谋求跳槽,他们一定卖力帮顾莫杰挖人过来,如果挖不过来就把顾莫杰的牛逼之处向那些前同事们宣扬宣扬,让他们亲眼来看看……
听了最后那番表忠和帮忙挖角的表态,顾莫杰总算是吁了一口气。
21世纪什么最重要?人才!
这股王霸之气,还真是漏得不容易。
……
(ps:只能向媚俗低头了,写了两天偏向程序员阅读喜好的章节,掉了我50多个收藏。看来程序员这个社会阶层实在是没什么消费潜力。
我也不作死了,明天开始进入大学校园章节。这一章将近5000字,算是做个了断吧。本周没有推荐果奔,尚且更新这么多,过年了还是减少一些字数吧,反正也没人追。)