天天看點

IBM大中華區總架構師:話說程式員的職業生涯

有一些年輕的程式員向我咨詢,将來的路應該怎麼走?俗話說,條條大路通羅馬。不同的路都能走向成功。到底選哪條路,取決于自己的興趣。可能有程式員會問:如果還沒找到自己的興趣怎麼辦?我的建議是多嘗試,努力做,這是職業生涯的必經之路。當你積累了一定的技術和經驗之後,就會面臨多種選擇。選擇哪條路,因人而異。

如果對某一種或幾種技術非常感興趣,并且能夠持續鑽研,經過一定時期的積累,你可以逐漸成長為專家級程式員。專家級程式員對于所掌握的專業技術的熟練程度非一般程式員能及,各類常見程式設計問題在他們手中都能迎刃而解,可以說這類專家“越老越值錢”但是這類專家也有一定的風險性:随着經驗的增加和年齡的增長,這些人的工資會越來越高,當公司改變技術路線而不再需要專家級程式員所掌握的專業技術時,或者想降低做事的成本,他們就可能面臨失業或者另找工作的局面。

資深教育訓練專家也是個不錯的發展方向。成為教育訓練專家,不僅需要深厚的技術功底,同時還要具備優秀的溝通和表達能力,因為他們的主要工作不再是研發某種技術,而是傳播技術知識。這條路很寬,有一些優秀的技術教育訓練師除了擔任本職工作,還會兼職到大學裡講課。雖然教育訓練專家的技術可能達不到專家程式員的水準,但是工作内容相對更為豐富,接觸的人也更多。

成為公司的技術總監是很多程式員的夢想。這條路線是從初級程式員成長為進階程式員之後,以做項目為工作重點,進而發展成項目經理、開發經理,最終成為技術總監甚至公司副總裁。這些程式員走的是技術管理路線,從做項目開始,逐漸積累管理經驗,然後成長為優秀的技術管理者。技術總監在公司甚至技術界的影響力非同一般,對于那些有志于成為公司上司層的程式員,是個很大的誘惑。但是權力大、管的人多,就意味着更大的壓力,技術總監不僅要保持對新技術的敏感,還要抽出精力做管理。比起成為純技術專家,這條路也許更為艱難。

還有一些程式員職業發展的終點是總架構師、總設計師。這類程式員的興趣,不是某種特定的技術,而是偏重對軟體産品或者軟體應用項目的設計。如果将軟體項目開發團隊比作一個樂隊,那麼程式員就相當于一名樂手(比如小提琴手、長笛手等),他們負責将自己的樂器演奏好;項目經理是樂隊指揮,負責指揮和協調這個樂隊的配合;架構師則相當于作曲家。從入門的架構師開始,逐漸成為資深架構師乃至總架構師。如同曆史上偉大的作曲家,傑出的架構師能夠在各種軟體中譜寫出旋律優美的“曲子”。

另外一些程式員心懷創業的理想,等到自己有了一定的技術積累,再掌握一些市場需求以及管理方法,他們會開始創業之路。一旦成功,這類人的影響力會非常大,像Google和雅虎的創始人,都是技術創業的成功典範。但是這條路也是最艱辛的,有句話叫做“不當家不知柴米貴”不親自創業的人也很難體會它的艱辛。創業涉及方方面面,稍有差池就會功虧一篑,投身創業的程式員并不少,但是真正能成功的少之又少。踏上這條路不僅需要過人的勇氣和魄力,更需要堅韌不拔的毅力,以及深度的商業智慧,再加上市場機會,才能夠赢到最後。

很多程式員會走上技術支援路線,進而發展成為精通業務的技術和行業咨詢專家。這類程式員會在成為進階程式員之後加入銷售團隊,直接面對客戶,負責技術層面的問題。如果對某一行業(比如銀行、電信)非常熟悉,久而久之,就成為精通這個行業技術的專家;如果對于某一類解決方案(比如ERP、CRM、SCM)非常擅長,就可以發展成為跨行業的技術專家。

還有一部分程式員會成為IT專欄作家和自由職業者。這些人通常對寫作比較感興趣,文字表達能力也不錯,他們會将自己從事技術工作的内容或心得寫出來,然後發表文章賺取稿費。隻要對技術足夠精通,這類人是很受雜志歡迎的。在北美還有一種自由職業者叫做合同工,就是不定期的承接項目,在項目開始前簽訂協定,項目完成後結束合作。雖然這種職業目前在中國還不太多,但是其自由性對于很多程式員來講,也非常有吸引力。

上文提及的若幹條路,程式員可以根據自己的興趣進行選擇,但是一般來說,無論走哪條路,都有一個前提條件:從初級程式員進階為進階程式員。因為在這之前,你甚至沒有選擇的機會。從初級進階到進階,通常需要2~5年的時間,因個人素質而異。大家都說,程式員要耐得住寂寞和枯燥,年輕的程式員更要克服浮躁的心态。在職業生涯的起步階段,很多人總會摸不着頭腦,這時一定要靜下心來,多向資深程式員求教,慢慢熟悉技術、熟悉開發流程和行業。有時你會感覺掉進了一個知識海洋,身邊全是陌生的事物,很難抓住。是以就更要四處探路,逐漸尋找到方向,在尋找中進步。

成功進階為進階程式員,也并不意味着前途一片光明。如果說從初級到進階需要的是學習,那麼從進階到專家,需要的是不斷地嘗試和堅持。比起前一個階段,這個過程更為漫長,通常需要5~8年。在這期間,因為有了之前的積累,并且已經取得一定的成就,人會更加自信,同時也會更加彷徨,有一個問題會時常盤旋在腦中:将來的路到底要怎麼走?這時就可以利用自己所積累的資源,多做一些嘗試,嘗試不同角色、不同的項目,與不同的客戶打交道,時間長了,自然會找到最适合自己的發展方向。

總結起來,初級程式員和進階程式員時期,都屬于職業生涯發展的第一階段,我們可以稱之為黃金時期。這階段程式員的年齡在20~35歲之間,因為年輕,是以更善于學習,而且體力充沛,很多走過這個階段的程式員有過通宵工作的經曆。在這個時期,你有大把的時間學習提高,為将來的事業打下堅實的基礎。而一旦超過了30歲,無論從體力還是精神上,都會有所改變,從30~40歲是轉型時期。這時的程式員(很多人已經不再程式設計)已經明确了自己的發展方向,并且向着目标努力,讓自己有所建樹。40~60歲是專家時期,至此,一名優秀的程式員會徹底實作“破繭成蝶”的願望,成長為專家。

程式員的職業很精彩,同時也很艱苦。享受高工資,掌握最新的技術,有可能成為創業成功的富豪,甚至有機會改變人類的生活方式(例如網際網路浏覽器的開發、電子商務的應用、手機短信等)這就是别人眼中程式員的生活,也許正是以,每年都會有很多新人加入這個龐大的隊伍,體驗向往已久的精彩生活。但是大多數人卻忽略了光鮮背後的艱辛,高工資的代價是工作強度高,學習新技術的代價是工作壓力大,成為富豪的代價是心力交瘁,而若想改變人類的生活方式,那就要耐得住日複一日的枯燥和寂寞。酸甜苦辣都要自己品嘗,程式員的發展道路有很多條,就看你怎麼選。

原文釋出時間為:2018-10-7

本文作者: 寇衛東

本文來自雲栖社群合作夥伴“

網際網路架構師

”,了解相關資訊可以關注“

”。

繼續閱讀