过去的几个月里发生的几件事情,让给政府做软件开发的人感受到压力的陡增,从奥巴马的医保网站饱受诟病到美国退伍军人事务部官方网站的预约系统从1985年起就没有更新过,这些事情让我回忆起曾经作为政府程序员的经历,以及这段经历如何变成一种一直督促我努力工作的思想动力。 我 曾在某个政府部门维护过一个写于1990年代的老系统。当一个新的系统启动开发来替代部分的老系统功能时,很多的程序员对开发新系统的工作产生的 严重的抵制心里。起初,我并不知道为什么他们会有这么大的反感。对这个系统维护一段时间之后,我才慢慢明白,有些程序员是专门维护系统,时间长达15年之 久。当被邀请开发新系统时,他们对新事物和新技术都感到心里没底。 这让我警醒:这种事情也会很容易发生在我的职业生涯中。我可能会安逸的 干着某一种工作,安逸的年年维护着某个系统。当这个系统长岁数时,我对它也变 的更有价值,我的角色会最终变成专职维护它。我的余生也就整天执行相同的任务,直到退休。而当有一天,当这个系统不再被人需要时,我会发现外面的世界已经 日新月异,我需要从头学起。 这可不是我希望的生活轨迹;我作为程序员喜欢的方式是学习新思路来解决新问题,而不是安于现状。我们程序员很 容易迷住某一项技术而将全部精力都放在 上面,对于其它的毫不关心。虽然这样可以让你在某一个领域成为专家,但你却得不到探索其它领域获得的更多好处。当意识到这种目光狭窄会扼杀我的进取心后, 我开始避免让所有鸡蛋都放到一个篮子里,我开始走出自己职业仕途中的安逸环境。 学习新技术你一直在用PHP编程吗?尝试一下使用Rails或ASP.NET。也许尝试一种新的语言或框架会让你感到受挫和沮丧,但探索的趣味也就在这里。至少,你应该看看同一种功能用其它语言是如何实现的。如何你只会用锤子,那你眼里所有的东西看起来都像钉子。 不惧怕老代码虽然上面我举例的那个老代码的例子有些极致,但我并不认为所有的老代码都应该立刻替换掉、删掉。在如今的软件中,有很多稳固的、良好设计的程序代码,它们对那些只会使用集成开发组件的现代程序员来说是很好的学习教材。如果你的公司里有老项目、老代码需要你去维护,研究一下!你会吃惊于从中学到那么多的编程知识以及公司的业务规则。还会发现一些当前正在研究的问题,其实几年以前就有人已经解决了。 了解你的敌人程序员很容易对某种语言或框架产生宗教式的虔诚。如果你发现自己曾经痛恨或鄙视某种技术(参看Jeff Atwood的一篇经典文章),也许你应该强迫自己去研究一下它们。最不济,至少你能证明讨厌它们是有理由的。最好的情况是,你会从它们中学到很多东西。不要让你的偏见阻挡了你的探索道路。 不要太贪心程 序员很容易被各种层出不穷的新平台、新语言、新工具、新类库吓倒。你很容易产生一种恐惧心理,感觉自己已经落后——那些程序员谈论的技术我怎么从 来没有听说过?当你发现一种新技术看起来很有用或很有趣时,做个笔记,几周或几月后在回来看看它,如果人们还在谈论它,那么,你就应该进一步研究它。事实 上很多热门新技术都是昙花一现,你完全可以忽略它,不要让它们浪费了你的大脑。 学无止境程序员都有着一种天生的好奇 心,这种好奇心引导着我们的编程生涯。写几行代码,装载到计算机里,让它按照你的思路工作,这是非常有趣的事情。但随着 开发的东西越来越多,我们变的越来越忙,这种好奇心会慢慢的减退。我们应该时不时的用一些新思路挑战自己,让自己的思想保持锋锐和专注,提醒自己为什么当 初选择码农这条道路。 [英文原文:Getting out of your comfort zone ] |