心怀畏惧
今天头疼,请假在家休息。额,是身体上的头疼,不是精神上的头疼。。可能是因为前段时间加班多了点吧
印象中以前也有一次像这样,特别头疼的,那是很久很久以前,long long ago,2012年,那时候似乎是年底,项目工期紧张,连续加班两个月。我记得那时候有个新闻,说搜狐有个程序员,连续加班一个月,猝死在工位上,当时报导说那个程序员连日加班,工位上有好多红牛的瓶罐,空罐子都堆成了小山。。我记得当时和小伙伴们都很不以为然,他才一个月算什么呀,我们这都两个月了呢!结果没过几天,我的头忽然就疼起来了,好吓人。
当时是乍回事呢,当时项目紧张缺人,本来眼看着要收工结项了,客户突然说要加消息推送功能,把各模块的消息推送到咱的企业IM里,说得轻巧,可是缺人啊,于是只能从别的项目组借了个实习生过来。这个功能其实是个非常大的工作量,几十个业务模块,需要对整个项目有深入的了解,可是没办法,缺人。于是那个实习生过来,就这么轻装上阵,初生牛犊不怕虎,顶着压力居然很快就给做出来了,但看起来是完工了,可是一提测,一堆bug,折腾两个星期,眼看着要交付了,bug是越改越多了。。没办法,项目组商量,让我加加班帮他复查代码。。
当时的场景历历在目,因为那天的加班餐吃得不错。。当时吃完加班餐,我满怀信心地开始复查他的代码,结果噩梦出现了,几十个业务模块的消息处理被那哥们用几十个if-else一路平铺下来,把屏幕塞满了,当时我的感觉就是,满眼的字母,真是一望无际啊。如果每个if-else结构体中罗辑都简单明确到也可以接受,那样的代码虽然长但也是可以阅读的。但很明显这哥们最初写的时候确实每个if-else都简洁明了,写完一个if-else,然后复制几十行代码,觉得工作就完成了。可是现实哪有这么简单呢?各个模块肯定是有区别的,于是他在一堆堆bug的蹂躏下把最初整整齐齐的if-else改得一踏糊涂,嵌套到不知道哪里去了,我试着从头开始往下缕,缕到一半突然之间就感到一阵头晕目眩,好像积攒了两个月的疲劳突然全部暴发了一样,来势凶凶,脑袋特别沉得,于是赶紧和头头说了一声,回家休息去了,真是吓死宝宝了。
那次还好,晚上好好休息了一下,第二天我又生龙活虎的回到公司,早上挤地铁的时候,我回想昨晚看到的那一坨坨代码,再想想搜狐猝死在工作岗位上的那位程序员,顿时感觉毛骨悚然,突然间就顿悟了一个道理——我们是程序员,但是一定要心怀畏惧,我们会写代码,但是不能瞎写。
那一次,我头一次体会到了,看代码居然也能对身体造成危害,程序员的确是一种高危职业啊。话说这周计算机界发生了一件大事,计算机下围棋战胜了人类。有人说,机算机战胜人类并不可怕,当计算机故意输给人类时才是真的可怕。每个程序员都能写出让计算机读得懂的代码,编译器不报错即可。而好的程序员要能写出让人类读得懂的代码,我们不能总是按照计算机的输出结果来调试程序。我有一种感觉,当程序复杂到一定程度,它可能就不会按照人类的意志运行了,海量的数据,无数种的可能性导致了无数种不确定性,无数据个偶然与必然则会导致计算机脱离人类的掌控,也许这就机器人脱离人类掌控的根源。所以说,程序员要心怀畏惧,让人类在波涛滚滚的历史长河中,在势不可挡的无尽变革中,掌控自己的命运,把电影中的情景永远保留在电影里。
扯得有点远了,优秀的程序员应当犹如技艺搞超的玉石工匠,即使技术经验再高的玉石工匠,在雕琢自己的作品时也会小心翼翼,战战兢兢,如临深渊,如履薄冰。玉石工匠制作的作品不是留给自己享用的,而是为了给别人欣赏。无数的程序员在编织美好未来的同时,也应当为后来的人留下一些钥匙。
又扯远了,从小处讲,程序员编写美好的代码,也许就会在未来的某次加班中,免去了你的头痛之苦,这里说的头痛是字面上的意思。毕竟人命关天,程序员要心怀畏惧啊!想在程序员的道路上走下去,就必须要学会写让别人看得懂的代码,至少也要让未来的自己能看得懂。