近年來隨着互聯網行業的快速發展,程序員人數也在逐年遞增,然而很多人關注的卻是程序員的薪資,而非職業本身。

一批批程序員進入工作崗位,但是很多人並沒有對自己的職業生涯有清醒的認識和系統的規劃,在職業發展過程中遇到了很多問題。

在此我整理出自己對程序員的職業規劃的一些見解,希望能幫助到他人,也是自己對職業生涯規劃思考的一次總結。

1

明確入行的目的

選擇IT做程序員會是一個好的職業嗎?雖然很多程序員總是調侃自己,但是這個問題,我想對於大多數程序員都是肯定的,包括我自己。

不說什麼改變世界的豪言壯語,單單就程序員本身的工作性質而言也是有無限魅力的:不用把太多的精力放在處理上下級、同事間的關係上,通過自己的敲敲打打做出產品,本身就是一件很有成就的事。

當然,還有老生常談的程序員的薪資,程序員確實是一個薪資相對豐厚的行業,特別對於剛走向社會的人來說,那些說不看薪資選職業的一般不是騙子就是富二代……

近幾年程序員這一行業的薪資基本沒出過年度薪資排行榜前五名,這就足以說明問題。既然程序員是個好的職業,那麼,如何才能讓自己的職業生涯健康的發展?

首先明確入行的目的,很多人幹IT這一行都衝着“收入高”這一點來的,因爲只要學會一點HTML、DIV+CSS,要做一個頁面開發人員並不是一件難事,而且做一個頁面開發人員更容易找到工作,收入比普通的工作還要高一些,所以成爲了很多高校畢業生的選擇。

如果您只是抱着這樣一個心態來入行的話,那閣下可真的要小心了。因爲幹IT這一行還是存在競爭的,特別是抱着混的心態且能力一般的人,能夠開發的人很多,所以爲了節省成本在大部分公司會在急需的時候纔會偶然的招聘這類人員,在沒有訂單的時候一些小公司還可能找各類的藉口或者以降薪的手段去開除這類員工。

所以在下覺得如果閣下缺乏“進取之心”,而只抱着“收入高,容易找工作”這樣的態度而入行,那“IT行業是喫青春飯”將會在你的身上應驗了。

2

選擇合適的工具

Java、Python、PHP……10多種熱門的開發語言,哪一種最有發展潛力呢?其實開發語言只不過是一個工具,“與其分散進攻,不如全力一擊”,無論是哪一種開發語言,只要您全力的去學習,到有了一定的熟悉程度時,要學習另一種語言也是輕而易舉的事情。開發語言主要分爲三大類:

1、網絡開發

現在網絡已經成爲世界通訊的一座橋樑,好像Javascript、PHP、HTML5這幾類開發語言,大部分是用作網絡開發方面。

2、企業軟件開發

Java、Python、大數據這幾類開發語言都實現了面向對象開發的目標,更多時候用於企業系統的開發。

3、系統軟件

JavaEE、C這些語言更多是用在系統軟件開發,嵌入式開發的方面。

當然,這分類不是絕對的,像Java、C#很多時候也用於動態網站的開發,在很多開發項目中都會使用集成開發的方式,同一個項目裏面使用多種開發語言,各展所長,同步開發。在剛入門的時候,建議您先爲自己選擇一種合適的開發工具,“專注地投入學習,全力一擊”。

3

明確發展方向

當您對某種開發語言已經有了一定的瞭解,開始覺得自己如同“行屍走肉”,成爲一個開發工具的時候,那您就應該要明確一下自己的發展方向了。

平常在公司,您可以看到做UI的開發人員大多數都是20多歲,他們充滿幹勁,而且沒有家庭負擔,在兩年前ASP.NET MVC 、Silverlight等剛出現的時候,他們可以在晚上回家的時候買幾本書或者直接上網看看,研究三五個星期以後,對需要用到的技術就已經有一定的瞭解了。

而年過30的人多數是已經成了家的,他們每天9:00點上班唯一的希望就是快些到6:00點,能回家喫飯。喫完飯只想陪孩子玩一下,看看孩子的功課,對新增的技術缺乏了學習的慾望。所以很多接近30歲的程序員都有着一種逼迫感,再過幾年應該怎麼辦?

這時候,您就更應該明確一下目標,努力向自己的發展方向前進了。歸納一下,可從下面幾項裏選擇適合自己的一條道路:

1、從技術向業務過渡

在國外,很多發達國家都很重視人才,一個高級的程序員與一個Project Manager收入相差一般不超過15%。但中國是世界上人口最多的國家,國內人才衆多,所以人才濫用的情況經常可以看到。

一個小公司的開發部裏面經常會見到新面孔,但PM卻不會常換。因爲做老闆的對技術是一竅不通,依他們看來只要拉住PM的心,那技術方面就能搞定,至於技術部要換人,他們根本不需要費力氣去管。所以從一個技術員過渡到一個PM是向前發展的一個選擇,但開發人員也需要知道,要成爲一個PM不單單是使用技術,更重要的是對管理方面的認識。

一個PM主要的工作是組織團隊、控制成本、管理業務、控制項目進度、與客戶進行溝通、協調工作、定期進行工作報告等。所以要成爲一個成功的PM更要重視組織能力,PM必須能提高團隊的積極性,發揮團隊所長,在有限的開發資源前提下爲公司得到最大程度上的利潤。

成爲一個PM後,通常不需要直接接觸技術開發,而着重管理業務發展,但PM對技術也需要有一定的瞭解。在這裏我還是要強調自己的觀點:要成爲一個成功的PM最重視的是管理能力,但對技術也應該有足夠的瞭解。

因爲這是與團隊成員溝通的橋樑,只有這樣才能與整個團隊的成員有着緊密的結合,讓團隊成員感覺到他們自己存在的意義,從而調動團隊的積極性,而不是漠視技術人員的存在。技術並非是成爲一個成功PM的充分條件但卻是必要條件!

2、從程序員向技術管理發展

其實一個Team Leader的職責與Project Manager相像,但Team Leader更着重於技術開發方面,通常一個大型項目都會有一兩個開發團隊由Team Leader帶領,負責開發核心部分,而其它部分分派給不同開發小組或者分派給外包公司。

在網上常看到幾句話,貼切地形容了PM與TL的區別:“技術人員樂於被領導,但他們不喜歡被管理,不喜歡像牛一樣被驅趕或指揮。”管理者強迫人們服從他們的命令,而領導者則會帶領他們一起工作。管理是客觀的,沒有個人感情因素,它假定被管理者沒有思想和感受,被告知要做什麼和該如何做。

領導是引領、引導,它激勵人們達成目標。領導力是帶有強烈個人感情色彩的,它不是你能命令的,也不是你能測量評估和測試的。

無論是PM還是TL,對業務與技術都要有深入的瞭解,只是PM更側重於業務的管理、盈利的多少、風險的大小等等,而TL則側重於項目的成本、開發的難度、軟件的架構等技術方面的問題。但依在下看來,兩者卻是秤不離砣,密不可分。

要重要的是,在學習時期必須注意的是與同事之間的溝通,很多開發人員喜歡獨來獨往,開發的項目總想一個人搞定,不受外界的干擾。但要明白,就算你有天大的本事,一項大型的項目也不可能由你一個人全扛着。所以團隊的合作性與同事間的溝通是必要的,這也是成爲一個TL的必要條件。

3、單方面向技術發展

能成爲技術開發的尖端人才,這是在下最嚮往的工作,卻也沒本事登上這個位置。很多從事開發的人都會認爲,業務總會帶着“金錢的味道”,老闆從來不管開發是否符合開發原則,有否經過必要的測試,他們只會在客戶面前無盡地吹噓,項目到期能成功交貨,只要不出什麼大問題那這個項目就算成功了。

其實我們也要明白:開發項目最終目標是爲了賺錢,在開發過程中對項目成本的限制和效率的控制這也是必須的,所以這才需要管理人員對項目進行管理。但開發人員也很想避開這 “金錢的塵囂”,全情投入到技術的世界當中。所以對技術有着濃厚興趣的人,往往會深入的研究某一項技術,成爲技術上的精英。

中國已是世界第二大經濟體同盟國,但國民生產總值主要來源於第三方加工產業方面。中國可以說是人才濟濟,但卻在高新產業上卻比發達國家落後。這幾年的確看到我們國家在高新科技上有着質的飛躍,但跟歐美髮達國家還有着一段距離。

所以想在中國成爲尖端技術的人才,有很大的市場潛力。

4

確定未來的目標

人是從歷練中成長的,古人云:三十而立,形容的不是一個人的社會地位、經濟來源,而是形容一個人對未來的目標、對人生的意向。要成爲一個成功人,就應該早日爲自己定下長期的發展目標,作爲一個開發者也當如此。因爲人的性格、趣向不同,大家爲自己所選擇的路也有不同:

1、自立門戶,勇敢創業

快30歲了,很多人認爲要想真正的去賺錢,就應該自立門戶,爲自己創業建立一個基礎。

所以選擇自主創業,是很多IT開發人員的一個未來目標,想要達到這個目標,就應該更多的把業務作爲重點。想要創業的人建議你要多跟客戶打好關係,與合作伙伴保持互利互動的模式,這將有利於日後事業的發展。

2、急流勇退,退居二線

這也是不少人的選擇。很多人在有了家庭以後,感覺到壓力太大,人的一生並非只有事業,他們想把更多時間用於對親人的照顧,對孩子的關心上。所以很多人會選擇一份像系統分析、系統維護、高校教師、專業學院講師這一類的工作。收入穩定,而且往往沒有一線開發人員那麼大的壓力。

3、不懈努力,更進一步

無論你是一個Project Manager或者是Team Leader,如果你想繼續晉升一級,那還是會兩極分化的。從一個PM到一間公司的管理層,那所面對的事件會有很多變化。

一個公司的總經理,要管理的不再是一到兩個項目的成本,而是整個部門的運作,整間公司的業務流程,所以要肩負的任務會更重。

如果要從Team Leader上升爲一個技術總監,那工作的方向也有所改變。像之前所說:一個TL可能更重視的是技術層面,講求與團隊之間的互動合作性,更注重的是開發的完善。

而一個技術總監就無需直接參加某個項目的開發,而注重的是如何合理使用有限的開發資源,控制開發的風險和可能帶來的效果。

5

發展感受

經歷了8年多時間,在下從一個程序員到一個項目經理,之間經過很多的曲折,但因爲每一個人的際遇有所不同,所走的路也有不同,正所謂條條大路通羅馬,成功的路不止一條,在下也不想令各位誤解,而只想爲大家說一下我的發展方向。如果您是一位開發人員,程序員->架構師->Team Leader(Project Manager)->技術總監是一條不錯的路,這也是在下選擇的路。

在我國,想要進一步提升自己,無論你想是以技術爲重點還是以業務爲重點,都離不開管理二字。在一些大型的企業,一個團隊往往會配備一個PM與一個架構師,儘管兩個人負責的任務各有不同,但PM往往是這個團隊的核心領導者,是關鍵人物。因爲公司能否賺錢,PM有着重要的作用。

PM與TL並沒有絕對的區別,而且在一些中小型企業,一個開發團隊只有3~5人,一個TL往往會兼備業務處理、成本控件、架構設計、開發管理等多項任務。所以在下會把Team Leader與Project Manager定於同一層次,一個公司的老闆往往不會知道團隊的架構師、程序員是何人,而只會向PM詢問項目的進度,所以只有晉升到這個層次,纔有機會進一步提升管理能力,讓自己有上升的空間。

至於要成爲一個技術總監,那要求就不再單單是對單個項目的管理,而應該更則重於新興技術的引用,開發資源的合理利用,對開發項目敏捷性的處理等等,對此在下也在試探當中,與大家共勉。

查看原文 >>
相關文章