如何成为有影响力的程序员?
作为一名程序员,崇拜别的程序员是很不健康的一种心态;当你对其他程序员过度崇拜时,这会让你妄自菲薄,觉得这辈子也永远无法超越对方,甚至放弃超越对方的努力。
每当有人问我:你最崇拜的程序员是谁?我听到这种问题,大脑会产生迟疑,因为我不崇拜任何一名程序员,对他们更多的是一种敬佩的态度。
其实,大部分有名气的程序员,他们的成名可能是遇到时代的某些机遇,就技术实力而言,普通人也是可以努力达到的。
但是,对一个程序员产生敬佩,你会更多的去思考:这位程序员的那些方面值得我学习,我该如何缩小我们之间的差距?
程序员是一种脑力劳动,研究得越深入,对自己的渺小和无知认识得越深刻。我自己虽然在软件这个领域做了一些微不足道的工作,但与真正的大神相比,还是差得太远,依然会感觉是高山仰止。能够站在人类智能巅峰上的毕竟是少数人,大部分人一生都是生活在这些少数人的光芒下,他们的命运自然也黯然失色。
如果你想要做到尤雨溪在前端那样的影响力,你必须要学会思考“解决什么问题才是最有价值的”。
要成为有影响力的程序员,你必须要变强,程序员的“强”与比赛不一样,不是赛一场就决定出谁最强。但是每个人对于变强的理解也不一样,比如,靠公司职称?靠Github Stars数量?靠赚足够的钱?靠Npm的下载数量?等等。
但是,我对强的理解是“产生影响力的能力”,即你写出的代码有多少影响力。很多人认为尤雨溪很强,多半是来源于Vue的影响力;如果Vue没有成为热门的前端开源框架,你还会觉得他很强吗?
那么影响力从哪里来呢?我认为影响力来自于实际问题的解决;与科研类似,如果某个领域的问题被挖掘得差不多了,你想要在这个领域产生影响力就很难了。在合适的时间解决合适的问题,产生的影响力会成倍增加,但问题的发现和解决总是处在一个动态平衡中,你能否发现有价值并且有能力解决的问题,需要一定的机遇。
如果你想最大化的创造影响力机会,你需要具备两点因素:
- 有发现问题的能力,并且能够判断出那种问题值得解决。
- 具备解决某个领域问题的高质量技术水平。
对于第二种,你只要多努力就能够做到的,对于软件开发,还没有到要拼智商才能解决问题的程度,只要你对需求明确,绝大部分都是能够做出来的。
如果你是一个刚入行的新人,你首先要打好基础,多看和多研究别人的项目,试着模仿别人的项目,多造几个轮子,做出几个开源小项目,对于代码的细节,需要靠时间和经验去不断积累。
当你具备第二种能力之后,最难的是第一种能力,具备第二种能力的人远超于第一种。你得搞明白时间和精力该用在什么地方?最终能够产生影响力的人必然是具备这两种的。
很多人可能具备第二种能力,但发现问题完全是以自己的兴趣或技术为准,即使在这上面投入很多时间和精力,能够产生的影响力也是微乎其微。
很多程序员实现某个功能时,很容易产生强烈的兴奋感,但这恰好也是一个陷阱。因为你想要实现的某种功能,可能没有受众的群体,要么就是早被别人解决了。
所以,你想要影响力,你就必须要思考“解决那种问题才是最有价值的”。