讓我們聽IBM大中華區(qū)總架構師寇衛(wèi)東話說程序員的職業(yè)生涯。有一些年輕的程序員向我咨詢,將來的路應該怎么走?俗話說,條條大路通羅馬。不同的路都能走向成功。到底選哪條路,取決于自己的興趣?赡苡谐绦騿T會問:如果還沒找到自己的興趣怎么辦?我的建議是多嘗試,努力做,這是職業(yè)生涯的必經(jīng)之路。當你積累了一定的技術和經(jīng)驗之后,就會面臨多種選擇。選擇哪條路,因人而異。
如果對某一種或幾種技術非常感興趣,并且能夠持續(xù)鉆研,經(jīng)過一定時期的積累,你可以逐漸成長為專家級程序員。專家級程序員對于所掌握的專業(yè)技術的熟練程度非一般程序員能及,各類常見編程問題在他們手中都能迎刃而解,可以說這類專家"越老越值錢"但是這類專家也有一定的風險性:隨著經(jīng)驗的增加和年齡的增長,這些人的工資會越來越高,當公司改變技術路線而不再需要專家級程序員所掌握的專業(yè)技術時,或者想降低做事的成本,他們就可能面臨失業(yè)或者另找工作的局面。
資深培訓專家也是個不錯的發(fā)展方向。成為培訓專家,不僅需要深厚的技術功底,同時還要具備優(yōu)秀的溝通和表達能力,因為他們的主要工作不再是研發(fā)某種技術,而是傳播技術知識。這條路很寬,有一些優(yōu)秀的技術培訓師除了擔任本職工作,還會兼職到大學里講課。雖然培訓專家的技術可能達不到專家程序員的水平,但是工作內容相對更為豐富,接觸的人也更多。
成為公司的技術總監(jiān)是很多程序員的夢想。這條路線是從初級程序員成長為高級程序員之后,以做項目為工作重點,進而發(fā)展成項目經(jīng)理、開發(fā)經(jīng)理,最終成為技術總監(jiān)甚至公司副總裁。這些程序員走的是技術管理路線,從做項目開始,逐漸積累管理經(jīng)驗,然后成長為優(yōu)秀的技術管理者。技術總監(jiān)在公司甚至技術界的影響力非同一般,對于那些有志于成為公司領導層的程序員,是個很大的誘惑。但是權力大、管的人多,就意味著更大的壓力,技術總監(jiān)不僅要保持對新技術的敏感,還要抽出精力做管理。比起成為純技術專家,這條路也許更為艱難。
還有一些程序員職業(yè)發(fā)展的終點是總架構師、總設計師。這類程序員的興趣,不是某種特定的技術,而是偏重對軟件產品或者軟件應用項目的設計。如果將軟件項目開發(fā)團隊比作一個樂隊,那么程序員就相當于一名樂手(比如小提琴手、長笛手等),他們負責將自己的樂器演奏好;項目經(jīng)理是樂隊指揮,負責指揮和協(xié)調這個樂隊的配合;架構師則相當于作曲家。從入門的架構師開始,逐漸成為資深架構師乃至總架構師。如同歷史上偉大的作曲家,杰出的架構師能夠在各種軟件中譜寫出旋律優(yōu)美的"曲子"。
另外一些程序員心懷創(chuàng)業(yè)的理想,等到自己有了一定的技術積累,再掌握一些市場需求以及管理方法,他們會開始創(chuàng)業(yè)之路。一旦成功,這類人的影響力會非常大,像Google和雅虎的創(chuàng)始人,都是技術創(chuàng)業(yè)的成功典范。但是這條路也是最艱辛的,有句話叫做"不當家不知柴米貴"不親自創(chuàng)業(yè)的人也很難體會它的艱辛。創(chuàng)業(yè)涉及方方面面,稍有差池就會功虧一簣,投身創(chuàng)業(yè)的程序員并不少,但是真正能成功的少之又少。踏上這條路不僅需要過人的勇氣和魄力,更需要堅韌不拔的毅力,以及深度的商業(yè)智慧,再加上市場機會,才能夠贏到最后。
很多程序員會走上技術支持路線,進而發(fā)展成為精通業(yè)務的技術和行業(yè)咨詢專家。這類程序員會在成為高級程序員之后加入銷售團隊,直接面對客戶,負責技術層面的問題。如果對某一行業(yè)(比如銀行、電信)非常熟悉,久而久之,就成為精通這個行業(yè)技術的專家;如果對于某一類解決方案(比如ERP、CRM、SCM)非常擅長,就可以發(fā)展成為跨行業(yè)的技術專家。
還有一部分程序員會成為IT專欄作家和自由職業(yè)者。這些人通常對寫作比較感興趣,文字表達能力也不錯,他們會將自己從事技術工作的內容或心得寫出來,然后發(fā)表文章賺取稿費。只要對技術足夠精通,這類人是很受雜志歡迎的。在北美還有一種自由職業(yè)者叫做合同工,就是不定期的承接項目,在項目開始前簽訂協(xié)議,項目完成后結束合作。雖然這種職業(yè)目前在中國還不太多,但是其自由性對于很多程序員來講,也非常有吸引力。
上文提及的若干條路,程序員可以根據(jù)自己的興趣進行選擇,但是一般來說,無論走哪條路,都有一個前提條件:從初級程序員進階為高級程序員。因為在這之前,你甚至沒有選擇的機會。從初級進階到高級,通常需要2~5年的時間,因個人素質而異。大家都說,程序員要耐得住寂寞和枯燥,年輕的程序員更要克服浮躁的心態(tài)。在職業(yè)生涯的起步階段,很多人總會摸不著頭腦,這時一定要靜下心來,多向資深程序員求教,慢慢熟悉技術、熟悉開發(fā)流程和行業(yè)。有時你會感覺掉進了一個知識海洋,身邊全是陌生的事物,很難抓住。所以就更要四處探路,逐漸尋找到方向,在尋找中進步。
成功進階為高級程序員,也并不意味著前途一片光明。如果說從初級到高級需要的是學習,那么從高級到專家,需要的是不斷地嘗試和堅持。比起前一個階段,這個過程更為漫長,通常需要5~8年。在這期間,因為有了之前的積累,并且已經(jīng)取得一定的成就,人會更加自信,同時也會更加彷徨,有一個問題會時常盤旋在腦中:將來的路到底要怎么走?這時就可以利用自己所積累的資源,多做一些嘗試,嘗試不同角色、不同的項目,與不同的客戶打交道,時間長了,自然會找到最適合自己的發(fā)展方向。
總結起來,初級程序員和高級程序員時期,都屬于職業(yè)生涯發(fā)展的第一階段,我們可以稱之為黃金時期。這階段程序員的年齡在20~35歲之間,因為年輕,所以更善于學習,而且體力充沛,很多走過這個階段的程序員有過通宵工作的經(jīng)歷。在這個時期,你有大把的時間學習提高,為將來的事業(yè)打下堅實的基礎。而一旦超過了30歲,無論從體力還是精神上,都會有所改變,從30~40歲是轉型時期。這時的程序員(很多人已經(jīng)不再編程)已經(jīng)明確了自己的發(fā)展方向,并且向著目標努力,讓自己有所建樹。40~60歲是專家時期,至此,一名優(yōu)秀的程序員會徹底實現(xiàn)"破繭成蝶"的愿望,成長為專家。
程序員的職業(yè)很精彩,同時也很艱苦。享受高工資,掌握最新的技術,有可能成為創(chuàng)業(yè)成功的富豪,甚至有機會改變人類的生活方式(例如互聯(lián)網(wǎng)瀏覽器的開發(fā)、電子商務的應用、手機短信等)這就是別人眼中程序員的生活,也許正因此,每年都會有很多新人加入這個龐大的隊伍,體驗向往已久的精彩生活。但是大多數(shù)人卻忽略了光鮮背后的艱辛,高工資的代價是工作強度高,學習新技術的代價是工作壓力大,成為富豪的代價是心力交瘁,而若想改變人類的生活方式,那就要耐得住日復一日的枯燥和寂寞。酸甜苦辣都要自己品嘗,程序員的發(fā)展道路有很多條,就看你怎么選。