英文原文:Programming is terrible so learn to enjoy it
最近关于编程是如何如何可怕的观点喧嚣日上。看到这篇文章之后,回顾往昔我也不由得产生了共鸣。年少轻狂时,我也曾以为自己无所不能,一定能在这一行里出人头地,令人刮目相看,但是残酷的现实一次又一次地打碎了我的美梦。在这段艰辛的旅途中,我发现了如何让自己快乐的方法,渐渐开始享受编程之旅。
我非常同情这个作者,当面对一个特别无聊的新项目时,当眼见那些黑客展示他们高超的技术时,当目睹别人的代码优雅得像一幅幅画卷时,他的沮丧和无奈我深有体会。我们对自己的期望值太高了,觉得写的每一个软件都能流传万世、永垂不朽。
我刚刚学会编程和建立网站那会,感觉自己就像一个强大的魔法师。当我创造、构建和成型一座——其实是用丑陋的代码搭建起来的——巨塔时,我感觉自己真是牛逼到无可救药啊!而且在我眼中这座巨塔美丽得像女神。像孩子玩积木叠罗汉一样,叠得那么高,真想让全世界的人都来膜拜。我非常享受这种感觉,觉得这就是我想要的生活。
我的第一份编程工作着实给了我当头一棒——原来现实并没有我想象的那么美好。首先是项目、然后是我自己,都让我气愤难以。愤怒会蒙蔽人的内心使人束手无策,而这又会反过来让我更加生气。最后我只能绝望地承认,编程其实并不是我想象的那个神奇的魔法世界。项目就是项目,就是搞网站而已,没什么好炫耀的。
可是,我一点也不希望我的工作就是不断地建设网站,这个做完做下一个。可是,客户才不管你是怎么做的,他们不需要知道网页组件如何交互作用的细节,也不关心背后的代码写得如何——只要网站能工作就行。我一度以为他们的想法是对的,我只需要做一个能让网站运作起来的机器就可以了。
我经手的项目越来越多,有小网站也有大网站,但是心中的愤怒挥之不去:为什么项目达不到完美?为什么这些奇葩客户啥都不懂?而且随着时间的推移,这种情况并没有太大的改变。倒是我因为在这一行干得久了,学到了很多关于编程和开发的东西,变得更优秀了。而我懂得越多,那些客户就越加想做甩手掌柜,把所有事都甩给我。
我渴望快乐的时光。当我完成项目回过头看我做的那些开创性的举措时,我兴奋异常。我想我又发现了这个世界的魅力。我觉得编程并不仅仅只是一个接一个地做那种千篇一律沉闷无趣的网站,我意识到客户(和客户经理)的确没必要像我了解的这么透彻,因为这不是他们的工作,而我则是他们雇佣来干这工作的人。我的工作并不只是编程而已,我也是导师和顾问。客户指望着我来帮他们做决定。
我也渐渐爱上了编程的过程。我终于知道,编程(尤其是做网站)并不是在创造最终的产品,也不是最终确定的形式。这是一个发现和解决问题的旅程。我开始接受这种想法,我做的网站其实并没有结束,它们一直在通往完美的路上。
一直以来,我对“差不多”这个词一直嗤之以鼻,认为是失败者的标志,懦弱者的借口。但是我也不敢肯定,以后我会不会也会慢慢接受“差不多”,慢慢接受使用那些丑陋的并不完美的工具来完成我的工作。
关于写那篇“编程是如何如何可怕”的作者,最后为自己选择了这样一个理由:将编程当做工作。确定需求、写代码、测试代码、修复 bug,然后获得客户的认可,循环往复,周而复始,这样做就再不必为编程而苦恼。这真心让人觉得悲哀,这也彻底终结了在编程中寻找快乐的想法和奔头。
只是我依然相信这是一个神奇的世界。在我的项目范围内,我可以全身心投入创造一个个小小的美丽国度。因为客户并不在意我的代码,所以我完全可以按照自己喜好,怎么开心怎么来。我已经不在乎别人是怎么想的,我也不再执着于一定要比别人家的孩子代码写得好,我开始为自己而工作。每时每刻,自己快乐就好。
译文链接:http://www.codeceo.com/article/learn-to-enjoy-programming.html
翻译作者:码农网 – 小峰