程序員怎麽選擇發展方向 (轉載)
(2010-08-19 00:06:13)
下一個
程序工作二三年後,基本上都會考慮自己以後怎麽發展。發展的路徑不外乎程序員-係統分析員-架構師-技術經理-CTO,程序員-項目組長-項目經理-項目總監-CTO,程序員-產品設計師-產品經理-CTO.哪一條發展的路線更加適合你?
程序員職業生涯發展到一定程度都會麵臨一個選擇,是走業務+技術方向,還是選擇純鑽研技術。程序員職業生涯 發展的問題,這是所有程序員都在關心的問題,未來究竟要怎麽走,30歲之後還能不能再做程序員。
絕大多數程序員最終的職業目標可能都是CTO,做到CEO的人估計會比較少,也有一少部分人自己去創業創業去當老板,也有部分人說我轉行去做業務 了,對於當老板的人畢竟是少數,對於轉行的人來說,都不在這行做了,自然沒什麽好說的了。一般來說,程序員的發展基本上都會經曆這麽幾條路徑。程序員-係 統分析員-架構師-技術經理-CTO,程序員-項目組長-項目經理-項目總監-CTO,程序員-產品設計師-產品經理-CTO.
當然這隻是一個大致的路徑,不是所有程序員都必需要這麽經曆的,有些人可能跳過其中的一些步驟,也可能有些人會把中間的很多職位都做了。而最終做到 CTO的程序員,也是非常少的一部分,原因很簡單,這個世界上不許要那麽多的CTO和CXO.
也就是說,許多的程序員最終可能是做技術經理、項目經理或者項目總監之類的,那麽到底我們職業生涯要選擇哪一種呢?我覺得這個問題沒有一個統一的答 案,因為每個人的性格不一樣,際遇也不一樣,就像你從小希望當貪.官,可是命運卻偏偏讓你做了一個程序員。所以應該根據你的興趣、性格與際遇選擇一條道路, 比如說你正好有機會帶一個項目,而你又不是很討厭項目經理這個位置,那麽你就可以選擇向項目經理方向發展。
實際上很多時候,國內並沒有明確的技術經理、項目經理、產品經理之分,在許多的公司裏,他們經常是由一個人承擔。在外包公司裏,通常會有項目經理和 係統分析員(也可能是技術經理)。在一些非IT公司裏,可能會有部門經理,而做自己產品的公司可能會分得比較詳細一些。我大致說一下這三個職位的區別,讓 正在徘徊的程序員有一個大致的了解。
項目經理是項目的直接負責人,這個角色相當於一個中間接口,不管是團隊成員還是需求方(客戶),或者是上級領導,有事都直接找他,所以這個職位著重 於管理與溝通。一般來說,項目經理的工作重點在同客戶溝通需求、項目進度的把控、團隊的溝通方麵,有些公司也會需要項目經理承擔團隊建設的工作,不過貌似 很多國內公司都忽略了團隊建設這個工作了。對於項目經理來說,重點會要求溝通能力、協調能力、危機把控能力、執行力、團隊管理能力,著重於溝通、管理與計 劃。當然也有些公司還要求項目經曆要參與招標談判,這就要求項目經理有一定的商務談判能力。
技術經理有時候也可能叫係統分析員,一些小公司可能會整個公司或者部門有一個技術經理。技術經理承擔的角色主要是係統分析、架構搭建、係統構建、代 碼走查等工作,如果說項目經理是總統,那麽技術經理就是總理。當然不是所有公司都是這樣的,有些公司項目經理是不管技術團隊的,隻做需求、進度和同客戶溝 通,那麽這個時候的項目經理就好像工廠裏的跟單人員了,這種情況在外包公司比較多。對於技術經理來說,著重於技術方麵,你需要知道某種功能用哪些技術合 適,需要知道某項功能需要多長的開發時間等。同時,技術經理也應該承擔提高團隊整體技術水平的工作。
產品經理這個職位一般在有自己產品(不管是軟件還是網站產品)的公司比較常見,產品經理主要會負責產品的設計、產品的改良等工作。需要注意的是,產 品設計與設計師是兩個不一樣的工作,產品設計主要會從用戶體驗、業務需要等層麵去設計產品,而設計師更多是從用戶的視覺上去做。產品經理應該是最懂業務的 人,比如說你在設計一個微博的產品,就要求你對微博這個東西非常熟悉,從用戶習慣、用戶體驗、公司的發展戰略上去設計這個產品,還要對比同類產品會有什麽 優勢等等。
不管是項目經理還是技術經理與產品經理,都要求要熟悉業務,業務是需求的來源,沒有不談業務的技術,所以不管你從哪個方向發展,都要求對業務熟悉。 產品經理要求對業務最熟悉,項目經理次之,技術經理排最後。對於程序員來說,剛開始工作的前幾年可以埋頭紮到技術裏麵,一般這個時間在2-3年的時間,然 後就應該多關注業務了。這個業務不一定是指某個具體的業務,因為具體的業務的範圍太少,而且也需要機遇。
我見過許多的程序員,他們是做Web開發的,但對互聯網很不熟悉,對於互聯網流行的趨勢基本上不聞不問。不知道現在大家都在使用微博,也不知道SNS,也 可能從不使用網銀。我覺得這樣很不好,程序員應該多多去關注互聯網的發展,多多去玩一些新的網站。