曾经在知乎回答过类似问题,那也是我在知乎获赞最高的回答。但是发现这个问题简直成了知乎的日常问题,可见广大同行的焦虑。那么索性从新审视这个命题,谈谈我对这件事情的看法。

程序员的职业生命到底有多长?

程序员是可以做一辈子的,但单纯只会敲代码的程序员,职业生命十年左右。
从业初期,肯定是从小工到大工的成长过程,业务逐渐熟练,技巧逐渐丰富,理解逐渐深刻,这时你成为了“技术大拿”,你成为团队的“百晓生”、“顶梁柱”;之后,势必会承担起更多的责任,这时工作内容会逐渐体现出一些管理性质,你开始带团队,培养新人,做一些设计,参与制定一些规范,进行代码审查,这时公司开始信任你,依赖你;再后来,开始直接接触客户,收集需求,技术选型,开始考虑成本与利润,开始考虑风险与回报,这时你已经成为公司不可或缺的一部分。
我只是写出了一个程序员成长路线的一种可能性,但是可以看出来,随着时间的流逝,公司对你的期待会越来越高,所以,程序员的职业生命是和个人能力成正比的。如同逆水行舟,不进则退,只要不断成长,让自己的能力与自己的资历匹配,职业生命就可以无限延长;否则,当你的能力无法匹配你的资历,面临的最坏结果就是出局。

技术重要还是管理重要?

作为对技术抱有热情与幻想的程序员,我一度坚持认为技术最重要,但是现在我觉得我错了。技术当然是重要的,这也是我得到认可的原因,但是“技术”只是个工具,最终我们的产出是利用“技术”实现了的那个“需求”。我不断地磨练自己的技术,不断地学习,目的是当面对“需求”,我可以给出更多种可行的方案,我可以在实现的过程中有更多的选择,解决难题时我可以想到更多的手段。
谈到管理,曾经觉得它和技术格格不入,但现在我觉得我又错了。“管理”可不是单纯的“管人”,项目的结构、团队的协调、进度、质量都需要管理,而这些也可以理解为广义的“技术”,当技术成长到一定程度,自然而然地会思考如何让项目进行得更流畅、效率更高、质量更稳,那么这时事实上我们已经在思考“管理”了。
所以,对技术痴迷,也不要固执地排斥管理;对管理重视,也不要愚蠢地鄙视技术。技术缺管理是一盘散沙,白费力气;管理缺技术是缘木求鱼,攻而不克。

要不要“赶时髦”?

新技术、新理念,我们要积极地去了解,但是要慎重地使用。软件行业用日新月异来形容毫不为过,这个充满活力的行业,各种新鲜事物层出不穷。作为从业人员,我们需要开阔视野,前沿知识哪怕不用,也要去了解,因为这种积累,在日后会为你提供更多的思路。但是在新技术的使用上,我偏向于求“稳”,贸然引入新技术,特别是整个团队集体转向,会引入太大的风险。现在互联网公司呈现出的激进的风潮,我是持保留态度的。

程序员的核心竞争力是什么?

是学习能力。我们这个行业实在变化太快,“一招鲜,吃遍天”这种事情是不存在的,我们总会遇到从未接触过的新挑战,怎么办?学习。就如同一个优秀的企业,它最有价值的地方在于它有无限的发展前景。那么一个优秀的程序员,最有价值的地方就在于拥有无限的潜力。要知道,公司雇佣一个人,并不是因为他现在水平深浅,而是他能不能和公司一起成长,只看眼前的公司不会长久,只看眼前的员工没有未来。

程序员到底何去何从?

其实啰嗦了那么多,归根结底就是持续提升自己,就这么简单。把焦虑、嫉妒、迷茫的时间拿来充实自己,到了35岁你会发现,这真的是职业生涯的分岔路口,只不过我们的路通向美好。

11-04 14:55