技術路線的選擇重要但不具有決定性(zz)

轉自 http://blog.chinaunix.net/uid-9863638-id-3080961.html

最近微軟在技術上連續有大動作,在PDC上發佈了Windows Azure雲計算平臺,預告了Visual Studio 2010、.NET 4.0和C# 4.0。如果放在幾年前,我相信微軟粉絲們一定是歡聲雷動,不過這次情況有點不太一樣,在網上看到有人在抱怨微軟技術更新速度太快而且四面出擊,還有人揚言要改弦更張,投奔Linux或者Java陣營。我本人也收到一封來信,寫信人大意是說自己大學時選擇.NET路線,一路跟下來很辛苦,2.0還沒學好,人家已經4.0預覽了,感到很困惑,問我該怎麼辦。老實講,這樣的問題我無法回答,每個人具體情況不同,所應該採取的態度和解決方案也不同。從我自己來講,其實技術路線問題也曾長時間地困擾我,所以我想把我現在的一些想法攤出來跟大家分享一下。羅列如下:

1. 根據我長期的觀察,做開發技術的人按照其人生路線設計,可以分成幾類。第一類是把自己的命運寄託在一項事業上。這樣的人知道自己想幹什麼,而且有能力把技術當工具來實現自己的想法和事業。這裏所說的事業是廣義的,並不是說你非要自己開公司當老闆,而是說你認可一件事情,比如促進人們交流和言論自由,帶給大家更多娛樂,提升大衆身心健康水平,增強國家國防實力,或者提升某個行業的信息化水平,然後你能夠以技術爲手段,在這個事情上做出成績。這種人做着自己認爲值得一生投入的事情,願意領略這一追求帶來的人生起伏並且無怨無悔,我認爲這是做技術的最高層次。第二類是把自己的命運寄託在組織和團隊上。這種人雖然不知道自己到底想幹什麼,但是技術水平出色,而且綜合素質突出,勇於變化,能夠把技術當敲門磚進入某個優秀的團隊,以團隊的目標爲目標,依據團隊的需求而轉型或者堅持,跟團隊一起幹出一番成績。這類人有令人羨慕的職業背景,在大公司裏高薪厚祿,生活比較安定舒適,但是中年以後會經常自問到底做了什麼自己想做的事情,爲自己過於風平浪靜的人生感到惆悵。但總的來說,這個層次也是比較高的。第三種是把命運寄託在技術上。這種人有能力成爲技術的專家,然後就希望奇貨可居,待價而沽,把技能當商品出售謀求富足人生。這種人沒有大的人生目標,不想把自己的命運跟企業和組織綁定在一起,也不願意做什麼改變,只是滿足於技術高手的層面,寄希望於其技術專長能夠長期值錢,有點投機主義者的意思。第四種是還處於出賣勞動力的階段,在這裏就不多說了。

我想說的是,在過去很多年裏,很多技術人實際上是把自己定位在第三種人裏。而實際上,只有成爲第一類和第二類人,纔算達到了比較成功的狀態。第三類人實際上最危險,因爲技術的變遷不但是可能的,而且是一定的。他們要麼馬上被淘汰,要麼追得老了累了追不動了以後被淘汰,被淘汰只是時間問題。 因此,如果你認爲某個軟件技術的興起或者衰落對你個人的職業生涯構成了決定性的影響,那麼你可能正走在錯誤的路線上,應當儘快改弦更張。

2. 對個體軟件人來說,什麼是核心競爭力?不是時間差,不是技術,不是基本功,不是什麼思想,也不是聰明腦瓜,而是你獨特的個性知識經驗組合。

有人看到新技術出來了,急急忙忙趕上去嚐鮮,以爲自己快人一步,就能如何如何,實際上這種想法根本不靠譜,最多在論壇博客上風光兩天,等這項技術投入實際應用以後一點便宜也佔不到。

有人把某個技術、框架、平臺研究得裏外通透,以爲這樣就能奇貨可居。實踐中,這種人能紅火一時,但很難超過5年。這是現階段技術發展生命週期所決定的。此外,現在越來越多人意識到了,能夠靠讀書看文章讀代碼做練習學會的東西沒什麼門檻,智力正常的人只要願意花功夫,都不難達到你的程度。有的人認爲,自己有能力駕馭技術潮流,哪個紅學哪個。我在技術行業裏不敢說閱人無數,見過的高手上百是有的,說句不怕得罪人的話,能夠連續抓住兩個以上的潮流並且始終處於領先位置的人及其少見,一隻手就數的過來。更常見的情況是,上一個階段的成功會成爲下一個階段的障礙,所謂隨機應變屹立潮頭之說,往往只不過是當紅小生給自己壯膽的狂言,時過境遷之後,他就只能聽着新一代當紅小生的豪言壯語而默默苦笑。

有人強調基本功,這是對的。在任何技術性行業裏都一樣,基礎打得多深,上面就能造得多高。現實中,基本功紮實的人很少見,這跟中國教育的弊病有關,所以基本功好的人,一般應變能力強,學習速度快,比較受歡迎。但說基本功是核心競爭力,還是沒有抓住本質。我們經常能看到基本功差不多的兩個人,一個發展的很好,一個發展平平,這表明基本功成功職業生涯的是重要條件,但不是決定因素。

有人強調這個那個思想,實際上軟件行業裏的偉大的思想就那麼屈指可數的幾個,窗戶紙一點就破,其他衍生出來的思想,就跟技術風潮一樣,各領風騷三五年,成不了你核心競爭力。

還有人強調自己的智商,聰明腦瓜,覺得自己比別人聰明,自己的聰明是核心競爭力。大學生、剛畢業的人持這個觀點的比較多,然而有過人生閱歷以後,自然會對這種觀點不以爲然。本質上這是因爲社會對於“聰明”的定義與學校不同,一個解題高手在學校裏可能是受人仰慕的聰明腦瓜,但在職業人生中則可能是個大傻蛋。我們身邊很多人走了一條不盡如意的人生道路,往往不是因爲他們不夠“聰明”,而是因爲他們太“聰明”了,聰明反被聰明誤。我想這也是爲什麼人們要發明“智慧”這個詞以區別於“聰明”的原因。另外,關於這種觀點,還有一點不得不指出,那就是在軟件這個行當裏,一般聰明就可以了,絕頂聰明佔不到多少便宜。

那麼核心競爭力是什麼?我觀察圈子裏很多成功和不成功的技術人,提出一個觀點,那就是個人的核心競爭力是是他獨特的個性知識經驗組合。這個行業裏擁擠着上百萬聰明人,彼此之間真正的不同在哪裏?不在於你學的是什麼技術,學得多深,IQ多少,而在於你身上有別人沒有的獨特的個性、背景、知識和經驗的組合。如果這種組合,1,絕無僅有;2,在實踐中有價值,3,具有可持續發展性,那你就具備核心競爭力。因此,當設計自己的發展路線時,應當最大限度地加強和發揮自己獨特的組合,而不是尋求單項的超越。而構建自己獨特組合的方式,主要是通過實踐,其次是要有意識地構造。關於這個觀點,話題太大,我不打算贅述。

3. 雖然技術路線的選擇不是核心競爭力,也不應該具有決定性,但對於個人職業路線還是具有比較重要的影響力。但這並不是說,我們應該煞有介事地把自己歸於Java或者.NET技術陣營,整天捧本書吭哧吭哧啃。正確的態度應該是着重於你要乾的事情,然後認真把這件事情做好,通過必要的學習將所需的知識體系構築完整,在整個過程中及時更新知識體系。只有心理沒譜的人,纔會爲新技術的推出感到惶恐,因爲他不知道自己要幹什麼,也就不知道自己要學什麼,看到什麼東西出來了都以爲如果不學就會落伍,纔會覺得是個壓力,日積月累,纔會痛苦彷徨嚷嚷怎麼辦。相反,如果你很清楚地知道自己要做什麼,就會發現,其實必須及時更新的知識變化並不頻繁,大多數新鮮玩意根本不在自己關注範圍內,任他三仙落地,五佛昇天,與我何干?因此完全可以安步當車,穩紮穩打。

4. 幾年前我剛加入CSDN的時候,.NET和Java之爭是最熱門的話題。現在回過頭看,其實當時無論你選擇那條路,如果認真做下去,搞些實事,別玩虛活的話,現在都應該有成就了。當然,客觀上來說,這幾年微軟技術變化是比較快,彎彎繞得比較多,相比之下,如果當時你選擇的是Java,可能這幾年過的比較幸福一些,這是事實。我對此並不是沒有自己的看法,但是這畢竟不是多麼大的問題,實際上Java這幾年折騰得也夠猛,只不過作爲一個比較開放的領域,Java爲其追隨者保留了更多的自由度,而微軟的追隨者大多數有一種被驅趕的感覺而已。話說回來, 微軟的技術變革並不是沒有章法的,其今天的技術架構,早在2003年就已經明明白白地公諸於衆,只不過因爲某些微妙的原因,一些微軟跟隨者這幾年被帶着兜了一些圈子,浪費了一些精力,比較辛苦。不過,現在.NET技術體系的塵埃基本落定,從體系結構上看,相對穩定的時期已經到來,投資微軟技術可以放心。

5. 不過我相信未來不同技術流的應用領域會出現一些明顯的分化。在中國,涉及國防、國家安全、命脈產業和關鍵行業的服務端要害系統,國產化改造是阻擋不住的潮流,長期來看,開源和Java將在這個領域佔據主導低位。其他的領域,隨着微軟技術變革的的大勢確定,相信微軟的優勢不可小覷。這裏沒有考慮中國政府可能做出的產業調整政策。這次微軟黑屏事件,無論是否出於微軟本意,其最大的效果在於向有關部門展示了一下其信息戰力,中國政軍內部有關機構對此不可能不加以警惕,這是否會引起中國國內IT產業政策的調整,現在還不得而知。但我相信,微軟系統恐怕將在不長的時間裏與中國關鍵要害領域的核心繫統徹底說拜拜。未來中國IT系統的格局,很有可能是處廟堂之高則清一色Linux/Java,居江湖之遠則Windows佔主導。

6. 幾年前還有一個熱烈爭論,就是Java和C#之爭。現在實際上塵埃已經落定,兩個語言的定位已經分道揚鑣。Java實際上已經落實了成爲系統語言的諾言,在現在的計算機體系結構上,Java與15年前的C一樣,可以成爲構造基礎設施的利器,而且其性能相當不錯,完全突破了之前人們對虛擬機語言的認識侷限性。我相信在未來,Java將有效地侵蝕C語言的一些曾經以爲千秋萬代永不變色的地盤。雖然同時Java也在向上發展,但是其力度與C#不可同日而語。相反,C#主要是在往上發展,即將成爲超級瑞士軍刀,微軟版十全大補膏,所有於應用開發有意義的特性都要加上,從編程語言發展來看,它將成爲一株奇葩。作爲一個編程語言的愛好者,我正饒有興致地注視着史上特性最豐富語言C#的發展動向。但是,不得不指出,C#的弱點在腳跟。自從用它開發Longhorn Avalon失敗以後,微軟暫時放棄了讓C#成爲系統語言的努力,專心專意讓C#變成應用開發領域的超級無敵霸王3000,而在覈心領域,仍然是C++、COM當關。這就出現了有趣的局面,在可見的未來,微軟體系內真正的核心軟件基礎設施,還是將由微軟自己用C++來構造,而組合裝配的應用開發,則由C#完成。VB和CLR平臺上的其他動態語言都不會有太多機會,因爲C#將窮盡神智正常者一切關於語言的幻想。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章