你为什么会爱上编程?怎么才能成为一个优秀的程序员?做软件开发很苦很累,怎样坚持下去呢?
驱动你做一件事情的动力来源是什么?不知道大家想过这个问题没有。一般人可能会想到两种驱动力。
一种是生存本能带来的驱动力,即生物性驱动力。比如每天要吃饭、睡觉、上厕所;长大了要恋爱、结婚等。这种驱动力保证我们能够生存在这个世界上,是一种原始的驱动力。
另一种是奖励或者惩罚带来的驱动力,即外在动机。比如老板承诺工作干的好有奖金,我们就努力干活。如果上班迟到会罚款,我们会早起等。这种驱动力会改变人的行为,使其多做鼓励的事情,少做禁止的事情。
如果只依靠这两种驱动力,那么你的人生会变得精彩吗?很难。为什么那?第一种驱动力只解决了你的生存问题;而第二种驱动力则约束了你的行为。你不想上班,但不得不上班。一旦你做某件事情获得了奖励,你就会对奖励上瘾。而当你认为你得到的奖励与你的付出不成正比时,你的行为就会松懈下来。
要想保持第二种驱动力长期有效,那么就需要管理者具有相当高的水平,比如确保内部公平和外部公平,报酬要高于平均水平,考核标准衡量因素要广。咱们作为打工的,能碰到这样的领导那肯定是烧了高香。能有10%的领导都做到以上几点就算行了大运了。
那么除了这两种驱动力,还有没有第三种驱动力那?答案是有。那就是内在动机,即完成某件事情带来的成就感和愉悦感。比如你打LOL,完成了5杀,那感觉嗨翻天了。还有你去跑步,第一次不间断跑了10公里,完成后的感觉肯定会非常奇妙。你修复了一个存在已久的软件故障,那么今天就会感觉很充实。这种没有人主动给你奖励或惩罚的事情你却干的津津有味。为了练好LOL中的大局观,你研习了数千盘比赛录像。为了能够跑的更远,你查阅了很多跑步相关的教程、书籍。为了修复你遇到的bug,你不惜花费很多时间和金钱(原文FQ)来搜集相关资料。
如果你能驾驭这第三种驱动力,那么恭喜你,你的人生会一直前进。关键在于,如何驾驭这第三种驱动力那?你首先要问你自己一个问题,“我真的喜欢编程吗?我能确定我当程序员不仅是为了养家糊口,而是为了实现自己的人生价值吗?” 这一点非常重要,它决定了你是否能利用第三种驱动力来促使你成长。如果你答案是为了养家糊口,那么很可能你成为不了一个优秀的程序员,并且在这条路上你越走越疲倦;如果你的答案是真心喜欢编程,那也很可能说明不了什么问题,除非你每天都在主动的学习和进步。
在编程的路上想要利用第三种驱动力,请先忘却掉它可能给你带来的奖励,而是切实的学习知识,充实自己,奖励只是你进步途中的副产品。如果你做一件事情先想着它有没有价值,会不会给你带来收益,那么你还是在利用第二种驱动力。能不能带来收益在你当时的环境中你是很难看出来的。举个例子,AngularJs刚面世的时候,我一个同事对其非常感兴趣,研读了很多相关的资料,并积极试用,虽然那时候它极不成熟。在那个时间点其实看不出来它会带来什么收益,说不定过几个月AngularJs框架就会销声匿迹。但是几年下来,我这个同事已经是国内AngularJs的专家了,社区里影响力很大,目前还在写一本关于它的书籍。
第三种驱动力,内在动力,其实就是自主性。当你做些不是工作范畴之内的事情时,你反而离成功更近。再拿编程来说,很多大牛在上班时间外,会写一些博客,参加一些社区聚会,翻译或者写书。做这些事情都是靠内在动力驱动的。所以他们成了大牛,而按部就班的程序员依然是普通的程序员。当你自发想做一些事情时,你无疑已经领先了很多人一大步,因为他们都在原地踏步。
第三种驱动力是一种良性循环,很容易就可以把人变得乐观,积极向上,感觉生活充满希望。善于驾驭这种能力的人会在生活和工作中都使用它,而工作和生活统一起来,不再相互冲突。拿我来说,我平时喜欢跑步,从一次只能跑10公里,跑到了一次可以跑15公里,20公里,42公里….直到上周花了17小时跑了72公里山路,本来计划跑100公里的,但是膝盖受伤,不得不终止。没人强迫我这样跑,我跑完了也没有任何金钱上的奖励,而且跑步本身其实也是蛮花钱的。我为什么这么喜欢跑,那就是一种挑战自己的精神,看看自己的极限在哪里。我不和别人比,只和自己比。只要能证明今天的自己比昨天的自己更优秀,那我今天就没有白过。这种精神也会传染到我的工作中。工作中再大的困难都不算什么,别人能做到我也能。即使现在做不到,那么也会主动的寻找差距去弥补,去提升。如果你能从早上6点跑到第二天早上8点(我参加的比赛关门时间是26小时,从早上6点到第二天早上8点,我认识的好几个人都跑了25个多小时,而我在跑了17小时候因伤退赛),那么你会发现很多以前对你来说不可能的事情都不再那么困难。
程序员更需要第三种驱动力来维持程序生涯,我们要从枯燥无味的代码中找到成功的快感,这个成功也许仅仅是一次调试成功给你带来的心跳,程序员里有这样一句话:不长痔疮的程序员不是好程序员,坐不住意味着你不适合这行,所以程序员更应该关注健康,全民运动是当下谈论最多的话题,为此我买了个华为手环,每天为了完成里面的数字而坚持运动,只跟自己比,看看每天齐刷刷的数字,找到内心的成就感和愉悦感,就是这种驱动力让我在工作中保持自我驱动,完成貌似不可能完成的事情。
驱动你做一件事情的动力来源是什么?第一种驱动力是养家糊口,第二种驱动力是奖励惩罚,第三种驱动力是内在动机,也就是你的兴趣爱好加上自主性,努力学习不断进步,坚持到底勇不言弃的精神!希望大家多多发挥自己的第三种驱动力,只有这样你的程序员之路才能走的更深更远!