首先你要明確入行的目的,你是深深的熱愛著編程還是只是因為程序員是個高薪的職業(yè)呢?如果是后者,那么不好意思,你需要慎重的選擇。
在中國,程序員并不是一個很好地稱呼。程序員似乎象征著邋遢,宅,甚至是IT民工。記得有一期非誠勿擾上面,上去一個男嘉賓,開場說他是搞JAVA的,臺上女嘉賓的燈全滅了。是不是很可笑,很可悲?而且只有你真正的進入這個行業(yè)你才清楚,這個看上去還不錯的薪水,你卻付出了超過薪水價值的代價。創(chuàng)業(yè)型與游戲型公司里面的項目小組一般是5~10個人,因為他們需要快速的開發(fā)以應(yīng)對多變的市場波動,所以程序猿的每天工作時長都在12小時以上,身體和精神收到摧殘不說。作為程序猿的你很少有時間去陪陪自己的家人、自己的女友。
如果作為前者,你是因為深深的熱愛著編程,那么恭喜你,你有著一顆hacker的心,屬于那些愿意做一些有挑戰(zhàn)性的事情的人。就如WhyTheLuckyStiff所說:“當你不創(chuàng)造東西時,你只會根據(jù)自己的感覺而不是能力去看待問題。”
當你開始編程,開始創(chuàng)造的時候,開始享受的時候,一切外界的評論,都擋不住你對技術(shù)對創(chuàng)造的熱愛。但是,我不得已要潑你一盆冷水,來提醒你一下。你是否準備好了忍受寂寞,也許你面對的是十年寒窗無人問,若你沒有熬住,也許就等不到一朝成名天下知的時刻。技術(shù)是永無止境的,好的程序員必須保持對于新的技術(shù)敏感度,保持學習的熱情。Stay hungry ,Stay Foolish。
明確了目的,那么你應(yīng)該規(guī)劃下自己的職業(yè)生涯。
宏觀的講,個人認為我們需要經(jīng)歷三個階段:深度、廣度、高度。
高度:這個層面往往體現(xiàn)在規(guī)劃能力,能夠看到未來業(yè)務(wù)的發(fā)展,設(shè)計出相對合理的架構(gòu)滿足未來業(yè)務(wù)的快速擴展。這個階段應(yīng)該是少參與到具體的編碼中去,應(yīng)該是一個公司的CTO或者首席架構(gòu)師角色。這個方面的能力比較虛,相對來說也是最難煉成的。
廣度:就是知識領(lǐng)域的廣度。反映在IT技能上,就是所掌握的領(lǐng)域,比如.net,java,數(shù)據(jù)庫,web,前端等等。不一定每個領(lǐng)域都能夠精通,但是至少都能了解,能夠在面對問題的時候能夠拿出一個切實可行的解決方案。對于跨領(lǐng)域方面,可能是你的溝通能力,管理能力等。
深度:在某一領(lǐng)域有很深入的了解,旺旺是一門具體的技術(shù)。比如js代碼寫的很精通,數(shù)據(jù)庫知識非常豐富,精通linux操作系統(tǒng)底層。
深度->廣度->高度,越往上,要求的抽象能力越高,越往下,要求細節(jié)知識越具體。一個人往往具備了以上三樣,就是一個成功的大牛。
微觀的講,.已經(jīng)工作兩年以上的程序員可以有幾種基本的職業(yè)規(guī)劃:技術(shù)專家、軟件架構(gòu)師、實施顧問或銷售。對大多數(shù)人來說,首先是要專,在技術(shù)上做的比較深入,然后進行工作調(diào)整,把自己轉(zhuǎn)變?yōu)槟硞領(lǐng)域的專家,第三步,根據(jù)自己的情況,來選擇技術(shù)還是管理。
有了自己的規(guī)劃,最重要的是執(zhí)行。我認為很多漂亮的計劃都會因為執(zhí)行力不夠而夭折。一個一流的計劃經(jīng)過二流的執(zhí)行,甚至不如三流。而一個三流的計劃,經(jīng)過一流的執(zhí)行,也許就能達到二流。所以從計劃本身來說,執(zhí)行往往更重要些。
如果你要走技術(shù)路線,那么就深入某一領(lǐng)域,培養(yǎng)程序員以下幾個基本素質(zhì)。
1.團隊精神和協(xié)作能力;
2.良好的文檔習慣;
3.規(guī)范化、標準化的代碼編寫習慣;
4.需求理解能力;
5.復(fù)用性、模塊化的思維能力;
6.測試習慣;
7.學習和總結(jié)能力。
如果你要走管理路線,那么你首先需要向一個PM的目標前進,然后成為總監(jiān)乃至CTO。我這里講講要成為一個PM需要哪些能力。
先看看下面的招聘啟事吧,這只不過是一家?guī)资斯镜囊粋招聘廣告:
招聘職位1:軟件項目經(jīng)理
職位描述:
1、帶領(lǐng)實施團隊完成某軟件項目;
2、制定項目計劃和實施部署;項目進度、質(zhì)量及范圍管理與控制。
3、負責軟件實施過程中與各方的溝通、關(guān)系協(xié)調(diào)與維護;以及實施人員的安排與管理
4、負責了解客戶對軟件的業(yè)務(wù)需求及意見,及時反饋、跟蹤開發(fā)人員解決問題。
5、及時、有效協(xié)調(diào)資料解決項目實施過程中出現(xiàn)的疑難問題;
職位要求:
1、具備優(yōu)秀的團隊協(xié)作精神,良好的溝通能力,有較強的口頭/書面表達能力;
2、熟悉企業(yè)信息化業(yè)務(wù),百萬企業(yè)信息化項目經(jīng)驗;
3、精通數(shù)據(jù)庫系統(tǒng)和項目管理工具;
4、熟悉XYZ行業(yè)相關(guān)業(yè)務(wù)知識;有財務(wù)背景知識,快速理解和學習能力;
5、良好的客戶服務(wù)意識,負責、敬業(yè)、細心。
6、有軟件大項目管理經(jīng)驗或N年以上項目管理經(jīng)歷優(yōu)先;
那么,讓我們看一下這個招聘啟事對軟件項目經(jīng)理能力的描述吧:
團隊協(xié)作精神 ——高
溝通能力 ——高
口頭表達能力 ——高
書面表達能力 ——高
IT技術(shù) ——高
XYZ行業(yè)知識 ——高
理解和學習能力 ——高
服務(wù)意識 ——高
項目經(jīng)驗 ——高
我們概括一下,是不是差不多就5類:溝通(口頭表達能力,書面表達能力,溝通能力,服務(wù)意識)、管理(團隊協(xié)作精神)、技術(shù)(IT技術(shù))、成本控制、行業(yè)(XYZ行業(yè)知識)。理解和學習能力是很綜合的,無論是在學習過程還是生活中都能體現(xiàn)。最后一點,項目經(jīng)驗,這東西是學不來的,只有踏踏實實跟著團隊做幾個項目才能積累起來的。
如果你想成為一個項目經(jīng)理,那么首先就要把自己定位成一個項目經(jīng)理,拿項目經(jīng)理的水準來嚴格要求自己。比如溝通,平時應(yīng)該多鍛煉和他的的溝通能力,不一定非要在項目中和客戶溝通。還有如果沒有技術(shù),那么誰都不會信服你的。
從技術(shù)和非技術(shù)的角度來向項目經(jīng)理看齊。
技術(shù)
1.有著一定的技術(shù)廣度。首先你需要對現(xiàn)在有的技術(shù)有一定的了解。我認為,好的PM不一定是團隊中技術(shù)最強的,但是一定能知道這些技術(shù)能拿來干什么。如果你不懂JAVA,你一定不知道你手下有沒有偷懶,明明一個禮拜就可以完成的事情,他兩個禮拜都沒有搞定,導(dǎo)致你的計劃全亂掉了。
其次你需要對新興的技術(shù)有所了解 。IT行業(yè)每時每刻都會涌現(xiàn)出很多新興的技術(shù),誰也不知道某一項技術(shù)的出現(xiàn)會不會能改變IT發(fā)展的趨勢。就如java語言剛出現(xiàn)的時候,誰也不會知道它會那么流行。
2.有著一定的技術(shù)深度。深入了解一門技術(shù)。這門技術(shù)是你的敲門磚,是你打開PM大門必須的鑰匙。在網(wǎng)上那些當上項目經(jīng)理,在IT行業(yè)走的很遠的人都會對我們說,作為一個PM,技術(shù)不是最重要的,重要的是那些非技術(shù)的東西。可作為一個科班出生的程序員,我真的無法透過那層霧來看他們描述的PM的世界。直到后來,我和一個當過項目經(jīng)理的老師談話才明白。技術(shù),其實是個敲門磚,當敲開這扇們之前,他還是挺重要的?墒钱斍瞄_后,那些非技術(shù)的東西才是PM的精髓。
3.了解技術(shù)發(fā)展的歷史。個人認為技術(shù)發(fā)展有一種趨勢,當我們能通過過去和現(xiàn)在之間的聯(lián)系,推算未來技術(shù)發(fā)展的潮流。
非技術(shù)
作為一個PM,你的最終目的是:替老板賺錢。別說我庸俗,也許以后你成為首席技術(shù)總監(jiān)以后你有資格談技術(shù)本身,不然老板是你的衣食父母,你必須替他想。圍繞著這個目的我們通過技術(shù)知道,達到技術(shù)設(shè)計最優(yōu)化;通過管理團隊,達到團隊產(chǎn)出最大化;通過成本控制,達到經(jīng)濟效益最大化;通過和用戶溝通交流,達到用戶滿意最大化。這一切一切概括的說就是你領(lǐng)導(dǎo)一個團隊,使用一些掌握的技術(shù),作出一個項目,使得客戶滿意,然后老板開心。老板一開心,也許你就升職加薪,那么你就開心了。
所以,PM要學習的非技術(shù)的東西很多,大致分為以下幾個方面:
1.產(chǎn)品市場
2.產(chǎn)品設(shè)計
3.團隊管理
其中里面又有很多相關(guān)的內(nèi)容,比如擁有好的人脈也是很重要的。比如學習如何培養(yǎng)自己的創(chuàng)新思維等等。你需要學習營銷和推廣,需要了解消費心理學、行為心理學等等。
我無法告訴你具體該怎么學習,因為我自己也沒有達到那個高度。以上這些內(nèi)容也是借鑒一些行業(yè)的前輩的指導(dǎo),以及自己的一些獨特體會,所以難免見解有些狹隘。但是如果文中的某一點能給你一些啟發(fā),那么也不枉我寫了那么多了。