1. 程式人生 > >高效程式設計師的10個習慣之二 跟蹤變化

高效程式設計師的10個習慣之二 跟蹤變化

“軟體技術的變化如此之快,勢不可擋,這是它的本性。繼續用你熟悉的語言做你的老本行吧,你 不可能跟上技術變化的腳步。” 

赫拉克利特說過:“唯有變化是永恆的。”歷史已經證明了這句 真理,在當今快速發展的IT時代尤其如此。你從事的是一項充滿激情且不停變化的工作。如果你畢業於計算機相關的專業,並覺得自己已經學完了所有知識,那你 就大錯特錯了。 

假設你是10多年前的1995年畢業的,那時,你掌握了哪些技術呢?可能你的C++還學得不錯,你 瞭解有一門新的語言叫Java,一種被稱作是設計模式的思想開始引起大家的關注。一些人會談論被稱作因特網的東東。如果那個時候你就不再學
習,而 在2005年的時候重出江湖。再看看周圍,就會發現變化巨大。就算是在一個相當狹小的技術領域,要學習那些新技術並達到熟練的程度,一年的時間也不夠。 

技 術發展的步伐如此快速,簡直讓人們難以置信。就以Java為例,你掌握了Java語言及其一系列的最新特性。接著,你要掌握Swing、 Servlet、 JSP 、 Struts、 Tapestry、JSF、JDBC、JDO、Hibernate、JMS、EJB、Lucene、Spring……還可以列舉很多。如果你使用的是微軟 的技術,要掌握VB、Visual C++、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是什麼,設 計模式是什麼。你會使用一點Java,去試試那些讓人興奮的功能。 

如果你跟上了這些新技術,接下來學習.NET技 術就不再是大問題。你不需要一口氣爬上10樓,而需要一直在攀登,所以最後看起來就像只要再上一二層。如果你對所有這些技術都一無所知,想要馬上登上這 10樓,肯定會讓你喘不過氣來。而且,這也會花很長時間,期間還會有更新的技術出現。

如何才能跟上技術變 化的步伐呢?幸好,現今有很多方法和工具可以幫助我們繼續充電。下面是一些建議。 

迭代和增量式的學習 。 每天計劃用一段時間來學習新技術,它不需要很長時間,但需要經常進行。記下那些你想學習的東西——當你聽到一些不熟悉的術語或者短語時,簡要地把它記錄下 來。然後在計劃的時間中深入研究它。 

瞭解最新行情 。網際網路上有大量關於學習新技術的 資源。閱讀社群討論和郵件列表,可以瞭解其他人遇到的問題,以及他們發現的很酷的解決方案。選擇一些公認的優秀技術部落格,經常去讀一讀,以瞭解那些頂尖的 部落格作者們正在關注什麼
(最新的部落格列表請參考pragmaticprogrammer.com)。 

參 加本地的使用者組活動 。Java、Ruby、Delphi、.NET、過程改進、面向物件設計、Linux、Mac,以及其他的各種技術在很多地區 都會有使用者組。聽講座,然後積極加入到問答環節中。 

參加研討會議 。計算機大會在世界 各地舉行,許多知名的顧問或作者主持研討會或者課程。這些聚會是向專家學習的最直接的好機會。

如 飢似渴地閱讀 。找一些關於軟體開發和非技術主題的好書(我們很樂意為你推薦),也可以是一些專業的期刊和商業雜誌,甚至是一些大眾媒體新聞(有趣 的是在那裡常常能看到老技術被吹捧為最新潮流)。 

跟蹤技術變化 。你不需要精通所有技術,但需要清楚 知道行業的動向,從而規劃你的專案和職業生涯。

切身感受

你能嗅到將要流行的新技術,知道它們已經發布或 投入使用。如果必須要把工作切換到一種新的技術領域,你能做到。

平 衡的藝術

 許多新想法從未變得羽翼豐滿,成為有用的技術。即使是大型、熱門和資金充裕的專案也會有同樣的下場。你要正確把

    握自己投入的精力。
 你不可能精通每一項技術,沒有必要去做這樣的嘗試。只要你在某些方面成為專家,就能使用同樣的方法,很容易地成

    為新領域的專家。
 你要明白為什麼需要這項新技術——它試圖解決什麼樣的問題?它可以被用在什麼地方?
 避免在一時衝動的情況下,只是因為想學習而將應用切換到新的技術、框架或開發語言。在做決策之前,你必須評估新

   技術的優勢。開發一個小的原型系統,是對付技術狂熱者的一劑良藥。