时间:2015-09-22 18:02:35 来源: 复制分享
不知是因为各个互联网公司在招聘时总是标注他们要招那些“热爱编程的人”,还是因为很多人到处标榜“我热爱编程”,这个词汇在程序员圈子里已经随处可见了。可惜的是我从业这么多年,还是发现自己并不是一个热爱编程的人。不过,我真的很想问问他们:
热爱编程是什么鬼?
解释这个问题,先要确定一下对于“热爱”的理解,百科上这样解释的:
情愿全身心投入地爱,激情四射,充满幸福的幻想,去奋斗、去付出,享受其中过程(即使是酸甜苦辣),即使没有回报也不后悔。尤其在遇到阻力、挫折时,才显出什么是真正热爱。
如果认可这个解释,似乎就意味着只有当编程遇到阻力的时候,我们才能区分一个人是不是热爱它。所以,正常情况下我们并不能确定一个人到底是不是热爱编程。也就是说:
如果一个人和你说,她/他花了整个晚上去搭建服务器,我觉得我看不出其中的热爱;
如果一个人和你说,她/他花了一个周末去解决一个算法题,我觉得我也看不到其中的热爱;
如果一个人和你说,她/他一直花时间在学习、深入某个技术上,我觉得我还是看不到其中的热爱……
别笑,我自己就是这样的人,但是我并不觉得我是热爱编程的。
而且有趣的是,有很多人还在鼓吹一种说法:如果你不热爱编程,你可能就没有办法掌握好编程这门技能。也就是说,不热爱编程就会影响程序员的能力?
不仅如此,编程的门派之别也好像武侠电视剧上看到的门派之争一样,武林正派鼓吹自己的派别才是正途,除了自己的方法以外,别人的方法都是异教徒式的。同理,如果有的人通过某个编程技能成为了大师,而别人因为没有掌握这个技能而没有成为大师,于是这个大师就会告诫别人“你应该这样走(用我所学习的技能),你如果不这样走,可能就成不了大师了”,所谓编程的门派便在于此。
光热爱一点用处都没有
热爱编程才能成功,真的是这样吗?如果他所谓的热爱编程,只是因为对于算法的热爱,或者只是因为沉迷于编程呢?(在实际工作上能有多大用处呢?)
在我多年的编程历程中,反而见到很多这样的现象:有些“热爱编程”的人,即使他再怎么热爱,能力也没有比一些“不热爱编程的人”高,有的人还不如别人。
绝大部份公司需要的还是能解决问题的人。即使他们觉得一个程序员是否热爱编程很重要,但最终聘用的决定还是会更看重他在现在、未来是否能解决更多问题。如果员工的“热爱”与公司需要的解决问题能力不在同一个维度,那么再怎么热爱也是无益的。
况且,编程是技术的一种,先不说技术在很大程度上只是一些业务的附属品,重点在于,只要是技术,就是一种“可以被学习的方法”,也就意味着谁都能够掌握它(只是时间问题)。我们“热爱”它并不保证能学得又快又好,但是“不热爱”也不意味着我们学不好。况且在很多情况下,有目的的学习要比热爱的学习效率更高。
抛开热爱编程,你可以去热爱什么?
一个单纯只是热爱编程的程序员更像是一个机器人,他甚至不需要知道自己的目的是什么,有可能只是在盲目地扩大或者深入某个知识范围、知识点,心里会觉得乐此不疲罢了,这种“爽”对实际工作来说往往并没有多大用处,他深入的这个知识点恐怕鲜有机会能用到。编程只是表面的东西,比起热爱“编程”,我们应该可以再深入挖掘编程背后的东西。
那么可以去热爱的还有什么呢?
对于我来说,更喜欢的应该是创造和解谜,就好比在造轮子之前,我们可以先去学会怎么拆轮子。解开一个又一个谜团的过程,比单纯地训练编程能力来得更有益处,也成长得更快。当我们把一个个谜团解开后,可能会发现生活变得索然无味了,这时候就可以利用习得的经验去创造一些“更有意思的轮子”。
而创造并不意味着你需要去了解一门语言的所有,又或者去了解一个系统的所有。我们所要做的只是去依据需要的东西,了解这个“点”的所有。
举例来说:我对自己需要的能力定义是“可以不断地‘创造轮子’,快速完成开发”。这就意味着我需要学会读懂别人的设计思想和系统性的框架设计。因此,我开始在我的Github不断地“造轮子”,不断地开发应用。直到某一天,我完成了我需要的那些知识和技术积累,我便觉得可以了。
比起“目的”,在一开始的时候,“热爱”给人带来的感觉的确会好一点,但是随后两者的差异会越来越少,直到有一天,我们看不出两者的区别。事实上,在某项事业的长期的实现过程中,我们往往会忘记初衷,无论出于目的还是发自热爱,都会有足够的驱动力让我们完成它。所以,不需要太担心“并不热爱”就意味着失败,你更要去考虑的是解决摆在面前的事情。想要长时间在程序员这条路上走下去,把这个关于热爱编程的问题想清楚是有利无害的。