我估计大家看到这个标题,会满怀疑惑,《老人与海》跟你的编程有毛关系?大部分点进来的我怀疑也是想看笑话的:你一个码农跟伟大的诺贝尔文学作品攀什么关系,我倒要看看你能扯出些什么东西…嘿,喝,那位忍不住的看官且慢,你看完再向我扔砖也不迟吧~
周中的沙尘暴毫无征兆地袭击了京城,也不给这座本就笼罩在PM2.5阴影里的城市留一点面子。我当时看去窗外已经是漫天昏黄,车和人在拥堵、熙攘,如果不是街道两旁的树木还绿意盎然,仿佛真的有置身《星际穿越》片场的错觉。当时是什么感受呢,仿佛是产品跑过来告诉我,刚才那个需求变了,能不能再改一下?或像是他又当场给我演示bug说“这不科学啊…这个”,是那么的压抑和不爽,那种情绪犹如这失控的需求和bug一样捉摸不定。忽然想起来家里窗户还大开来着,倒是刚好找了个准点下班回家关窗户,于是在这么个天气里早早地离开了这些天一直陪着我吃晚饭的代码。
周末便抽个时间打扫卫生,整理屋子,还翻出来了这个泛黄的小本本,正如你在题图中看到的,他的封皮已经破烂不堪了,想必是有一定的历史年数了吧?是的,记得是上初一的时候,大哥送给我的这本书,那个时候觉得不管是再厚的书都能读完,更何况这个小本还不到100页,以至于我觉得没过多长时间就读完了,更大的原因可能是这个故事一下子吸引了我。后来在不同的时间段里,我又读过几遍,最让我印象深刻的一次是,我读的时候去上厕所,然后忘带手纸了,然后就无奈地把前后扉页给……
这次翻出来看,突然发现老人与海的故事,仿佛是我现在从事编程的真实故事。
老人跟鱼亦敌亦友。老人要拼尽全力,使用各种技能去征服他,最终打捞他,鱼则在自己更熟悉的海里跟老人斗志斗勇,他们可谓是彼此强劲的对手。我们编程同样如此:需要学习编程语言,使用编程工具,想尽各种方法使程序朝着自己预想的结果运行,却又一次次深陷在bug和自己不太熟悉的“海域”中,每次承载的同样是征服时的成就感和跟天气、海浪一样善变的需求,跟暗礁同样深不可测的各种bug,而每次也跟老人在晴天里修补渔网一样对代码缝缝补补,阴雨交加的日子里,我们则需要加班加点来实现还未完成的功能以及测试,以期像在下次出海的时间(预定软件发布的日子)时做足准备。
其实,我一直在想,老人与海这么一个简单的故事,为什么获得那么高的成就,抛开它创作的时代背景和蕴含的深刻意义,单从故事性来看,我比较喜欢的便是文章通过大量描写老人的心理活动来揭示老人的性格和情节的发展。我想说,与老人独自驾着船在大海中航行一样,程序员也是相对孤独的那一种,我们跟代码的沟通犹如老人在猜测鱼和大海的想法一样。
人生元编程的序言中有这么一段话:
有人评价程序员说他们“成天跟机器打交道”,别闹了,电脑才不会跟人打交道,它执行你要求的每一句逻辑,你对它没什么脾气,因为起承转合都来自于你的编排,机器只是精确执行。在这台坚硬的机器前,一切喜怒哀惧都是程序员心中的自言自语。
我擦,最后一句话太特么精辟了,一下子说到了我的心里,不知道你有没有被触到?我们来看看老人的自言自语:
1、“鱼啊,我非常喜欢你又敬重你,可是不到天黑我就会杀死你”。
2、“你现在吃到苦头了,鱼儿。可天晓得,我跟你一样啊”。
3、“让你只管蹦吧,我有的是绳子足够对付你 "老人自言自语,然后又想:"不知道它干嘛要蹦,它蹦起来几乎就像是专为了让我瞧瞧它有多大似的,不管怎么说我算是领教了。但愿我也能让它瞧瞧我是个什么样的人,不过那样它就会看见这只抽筋的手,他想。我但愿自己是那条鱼,它有对付我的一切,而我却只有意志和头脑”。
再来看看程序员的碎碎念:
1、“OK,今天效率不赖,完成了规划的事项,看来可以早点回去跟朋友一块吃个饭 。恩,还有一个棘手的问题得好好斟酌斟酌…”
2、“什么情况,需求又要这么改了?目前的实现方法不支持哀,倒是可以这样改一下…等等,这么改的话,不是太合理,如果丫的以后又要那样了怎么办,恩,重新独立出来比较好,这样易于扩展…但是,需要改动的地方不少啊,还有手头上的“*#@%”还没处理完呢,要不,先放放?”
3、上午阳光明媚,心情不错,敲起代码来噼里啪啦,一路过五关斩六将,谁也甭想阻止我爆棚的信心和快要爆发的小宇宙,哈哈…到了下午三四点,“我去,这个问题好奇葩啊,(上网查了一通后)你妹的,网上也没太多有用的信息,难道这样的实现方法不可取吗,好吧,这会思维好顿呐,看来是有点小累了,嗯…待会问问其他同事,看看他们有没好的解决思路…”
4、“我擦,怎么会出现这个问题呢,想想不应该啊~~这个不可能吧,我之前测过的啊,没问题的呀!好吧,看看具体的实现方法去…(n分钟之后)代码也没看出来问题啊,看来的需要模拟调试一下了,(又经过n分钟)恩恩,原来如此,唉,竟然忽略了这么个情况,大意失荆州呐!需要引以为戒了,下次一定别再出现这样的情况了!”
看吧,程序员每天大概就是这样跟自己和代码神神叨叨的。
所以,现在你开始觉得我的标题还是有些靠谱的对吧。然后,我在想怎么没有一本同样伟大的关于程序员和编程的书呢,然后又一想,跟职业性质有关吧,毕竟没多少行外人愿意去看你程序员在那里唧唧歪歪(我理解为他们欣赏水平不够,哈哈~),貌似跟文学的创作也有关系,这个我可以尝试着下次分析分析(别期望太高)。
今天篇幅貌似不短了,更主要是后半部分是在外面用手机敲的,它也快没电了。所以,我能说“开始期待下篇吧”…
本篇为原创文章,转载请标明出处。