十年程序员
2012年,终于可以和人家说,我有十年工作经验了。幸运的是,十年后,我还在写代码。
十年前,促使我选择写程序作为一生追求的是我对写程序的好奇以及实现功能后的成就感,但那时,在对自己未来充满信心的同时,内心深处依然惴惴不安。萦绕心头的乌云是所谓30岁程序员的说法。
那时,很流行的一个论调是,程序员只能做到30岁。人到30岁之后,智力在下降,体力在下降,再加上家庭的琐事,人很难再写程序了。
那时的自己尚年轻,没有体会到30岁后的状态,很难知道这种说法的真伪,所以,内心里还是会有一丝丝恐惧。有时,我会假想,29岁的最后一天我还能写程序,30岁生日一觉醒来,我的编程能力便烟消云散了。
大概当我有5年工作经验时,那个扰人的论调依旧,只是年龄上,从30岁变成了35岁。我暗自庆幸,我又可以多写五年程序了。也是那一年,我进入了ThoughtWorks,在这里,我遇到了一群疯狂热爱代码的人,我所能做的就是暗自打磨自己的编程技艺。
在ThoughtWorks几乎五年了,这期间,我跨过了30岁的门槛。时至今日,我依然能写
程序,我最担心的事情没有发生,而且,我写程序的能力似乎还在提升。相比于刚开始写程序的小朋友,
我在动手之前,就可以对自己要实现的内容有个更好的理解
我的解决方案会更简单,更容易理解
我分解出的任务步骤更小,更容易实现
我写程序时考虑的方面会更多
我会更多的考虑写出的程序对于全局的影响
在这期间,我也逐渐释然。其实,不是30岁能不能编程,而是那个时候,30岁的程序员本来就没有多少,这也是我5年的时候,论调成了35岁,是因为这一代人已经长过了30。这不,今年就有人开始讨论一些40岁程序员的问题了。
随着自己在ThoughtWorks经历的事越来越多,对这个曾暗自困扰我许久的问题,我也有了新的思考:真正可怕的不是X岁后能不能编程,而是X岁后只能编程。
为数不少有工作经验的人进入到ThoughtWorks之后,会感觉很不适应,因为这里很多刚刚毕业工作一两年的小朋友写程序都很厉害,他们自身在写程序的优势就不那么明显了。结对的时候,他们不断被这些小朋友们挑战,有些人就会很郁闷,因此离开ThoughtWorks的例子也是有的。
单就纯粹的代码输出能力而言,经过一段时间的刻意练习,人和人之间往往不会相差很多,相比较而言,在编写一段代码时,可以考虑到的方面,不同人会因为经验和视野差异极大。比如,要一个新手实现一个需求,他就会奔着代码直冲过去,而一个有经验的人,则会考虑许多方面,为什么要做这样一个需求
,实现这样一个需求有哪些技术
方案,实现这样一个功能是不是会对现有架构有什么影响,写这样一段代码是不是需要对现有代码进行某些重构,等等。
如果一个人具备的所谓工作经验,仅仅是所谓代码输出的经验,那他的实际价值就会大打折扣。
事实上,在ThoughtWorks的开发团队里面,我们也是鼓励一个人尝试不同的东西,比如,有人可以帮助QA做测试,有人可以去尝试去做业务分析,有人会在公司内部做分享等等。做这些
工作本身并部能让我们的开发技能得到大幅度提升,但这些不同的尝试会让人不同的看问题的角度,如果我没有了解过业务分析,我就不会考虑一个事情本身的价值,倾向于别人告诉我做什么,我就去做什么。如果没有带过团队,我就不会考虑,怎么把一个设计做得简单,让别人更好理解和接受。
道理说白了很简单,一个人的价值取决于他有多大的不可替代性。如果一个人只能按照别人的要求写代码,他的技能就是很容易替代的。
经验是什么?有一段时间,我一直在问自己这个问题。
许多所谓有着“相同工作经验”的人,表现的差异却极大。即便在ThoughtWorks,一同起步