5.跟踪变化

软件技术的变化如此之快,势不可挡,这是它的本性。继续用你熟悉的语言做你的老本行吧,你不可能跟上技术变化的脚步。

赫拉克利说过:“唯有变化是永恒的。”历史已经证明了这句真理,在当今快速发展的IT时代尤其如此。

你从事的是一项充满激情且不停变化的工作。如果你毕业于计算机相关的专业,并觉得自己已经学完了所有知识,那你就大错特错了。

广告:个人专属 VPN,独立 IP,流量大,速度快,连接稳定,多机房切换,每月最低仅 5 美元

假设你是10多年前的1995年毕业的, 那时,你掌握了哪些技术呢? 可能你的C++还学得不错,你了解有一门新的语言交java,一种被称作是设计模式的思想开始引起大家的关注。一些人会谈论被称作因特网的东东。如果那个时候你就不再学习,而在2005年的时候重出江湖。再看看周围,就会发现变化巨大,就算是在一个相当狭小的技术领域,要学习那些新技术并达到熟练的程度,一年的时候也不够。

技术发展的步伐如此快速,简直让人难以置信。就以java为例,你掌握了java语言及其一系列的最新特性。接着你要掌握Swing,JSP,Struts,Tapestry,jsf,JDBC,JDO,Hibernate,JMS,EJB,Lucene,Spring….还可以列举很多,如果你使用的是微软的技术,要掌握VB, VisualC++, MFC, COM, ATL, .NET,C#, VB.NET , ASP..NET,ADO.NET, WinForm, Enterprise, Service,Biztalk,….并且不要忘记还有UML,Ruby,XML,DOM,SAX,JAXP,JDOM,XSL,Schema,SOAP,Web Service, SOA,同样还可以继续列举下去(我们将会用光所有的缩写字母)。

不幸的是,如果只是掌握了工作中需要的技术并不够。那样的工作也许几年之后就不再有了----它会被外包或者会过时,那么你也就会出局。

假设你是Visual C++或者VB程序员,看到Com技术出现了,你花时间去学习它(虽然很痛苦),并且随时了解分布式对象计算的一切。当xml出现的时候,你花时间去学习它。你深入研究ASP,熟知如何用它来开发WEB应用。你虽然不是这些技术的专家,但也不是对它们一无所知。好奇心促使你去了解MVC是什么。

如果你跟上了这些新技术,接下来学习.NET就不再是大问题。你不需要一口气爬上10楼,而需要一直在攀登,所以最后看起来就像只要再上一二层,如果你对所有这些技术都一无所知,想要马上登上十楼,肯定会让你喘不过气来。而且,这也会花很长时间,期间还会有更新的技术出现。

如何才能跟上技术变化的步伐呢?幸好,现今有很多方法和工具可以帮助我们继续充电。下面是一些建议。

迭代和增量式学习。每天计划用一段时间来学习新技术,它不需要很长时间,但需要经常进行。记下哪些你想学习的东西-------当你听到一些不熟悉的术语或者短语时,简要地把它记录下来。然后再计划的时间中深入研究它。

了解最新行情。互联网上有大量关于学习新技术的资源。阅读社区讨论的和邮件列表,可以了解其他人遇到的问题,以及他们发现的很酷的解决方案。额一些公认的优秀技术博客,经常去读一读,以了解那些顶尖的博客作者们在关注什么(最新的博客列表请参照pragmaticprogrammer.com)。

参加本地的用户组活动。Java,ruby,delphi,.NET,过程改进,面向对象设计,Linux,Mac,以及其他的各种技术在很多地区都会有用户组,听讲座,然后积极加入到问答环节中。

参加研讨会议。计算机大会在世界各地举行,许多知名的顾问或者作者支持研讨会或者课程。这些聚会时向专家学习的最直接的好机会。

如饥似渴的阅读。找一些关于软件开发和非技术主题的好书(我们很乐意为你推荐),也可以是一些专业的期刊和商业杂志,甚至是一些大众媒体新闻(有趣的是在那些常常能看到老技术被吹捧为最新潮流)。

切身感受

你能嗅到将要流行的新技术,知道它们已经发布或投入使用。如果必须要把工作切换到一种新的技术领域,你能做到。

平衡的技术

许多新想法从末变得羽翼丰满,成为有用的技术。即使是大型,热门和资金充裕的项目,也会有同样的下场。你要正确把握资金投入的精力。

你不可能精通每一项技术,没有必要去做这样的尝试。只要你在某些方面成为专家,就能使用同样的方法,很容易地成为新领域的专家。

你要明白为什么需要这项新技术--------它视图解决什么样的问题?它可以被用在什么地方?

避免在一时冲动的情况下,只是因为想学习而将应用切换到新的技术,框架或者开发语言。在做决策之前,你必须评估新技术的优势。开发一个小的原型系统,是对付技术狂热者的一剂良药。