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