在我学习软件开发时,对我最有价值的信息源之一就是论坛。那时我问了问题,也遭遇了很多凌辱:
他们说我的问题是垃圾,解决方案更垃圾,还说我选错了语言,甚至不配成为“好”的程序员。
我想要变得更好,似乎只是为了把他们甩在身后。就像在体育运动中一样,我训练并不是为了某个神圣的目标,只是为了变得“更大、更强、更快”。就像菜鸟拳击手想要努力击倒电视里的大个子一样。
这样很痛苦,但我一直在努力。
当我变得越来越好之后,我把我的代码交给真正的牛人去评审。他们有比我多三倍的开发经验。每次我都被羞辱得体无完肤,有时我甚至都想退出这个行业了。我太笨了,根本不胜任这个行业。我一个星期的努力几分钟就被摧毁了,我甚至都没有任何争辩的余地——每条评论都那么明显那么正确。
很奇怪的是,每次发生这种事情,第二天我都能说服自己说用不了1-2年我就能比他们做得更好,让他们看看谁才是真正的王者。
最后,我变成了我曾经痛恨的样子:
拿着自己的本事当拳头到处惹事的人。我做代码评审并不是为了业务,而只是想贬低新手。我的技术终于开始给我回报了。
如果别人给我的代码中有错误,我就会觉得自己很聪明,从而感受到莫名的喜悦。然后条件反射地给自己找一个合理的解释,就像那些道德败坏的政治家一样。我会告诉自己我的所作所为都很正确,我是为了公司而守护代码库。但这种借口并不意味着就是实情。
如果你告诉我你从未有过这种感觉,那你一定是在撒谎。如果你告诉我你有更崇高的目标,例如训练新手以及其他云云,那么我敢确定你也有这种感觉。如果你告诉我你已经学会控制这种感觉(然而这种感觉还是会出现),那么一定是很稀有的那个。
但这就是我的想法。一方面,我在别人的取笑中学会了准确的编程。人们唤醒了我的愤怒,而这种愤怒帮助我提升自己。上苍通过这种方式成全了我,所以我也可以唤醒其他年轻和没有经验的程序员的愤怒,这样他们才能成为更好的程序员,然后再对其他人做同样的事情,以此类推。
我们对成功的渴望以牺牲他人为代价,但这只是物竞天择的一种简单的手段。而且我会欣然接受这种方式,因为这不是重大的问题。