中國有很多人都認(rèn)為IT行為是吃青春飯的,如果過了30歲就很難有機(jī)會再發(fā)展下去惕虑!其實現(xiàn)實并不是這樣子的,今天藍(lán)鷗上海前端培訓(xùn)機(jī)構(gòu)為大家分享一位程序員的職業(yè)生涯,他擁有8年.NET及JAVA方面開發(fā)工作經(jīng)驗构蹬,憑借前輩的親身經(jīng)歷,與大家一起探討一下榨乎。
明確入行的目的
很多人干IT這一行都沖著“收入高”這一點的怎燥,因為只要學(xué)會一點HTML、DIV+CSS蜜暑,要做一個頁面開發(fā)人員并不是一件難事铐姚,而且做一個頁面開發(fā)人員更容易找到工作,收入比普通的工作還要高一些肛捍,所以成為了很多高校畢業(yè)生的選擇隐绵。如果您只是抱著這樣一個心態(tài)來入行的話,那閣下可真的要小心拙毫。因為干IT這一行競爭本來就比較激烈依许,特別是頁面設(shè)計這方面,能夠開發(fā)的人很多缀蹄,所以為了節(jié)省成本在大部分公司都會在需要的時候才招聘這類人員峭跳,在沒有訂單的時候一些小公司還可能找各類的借口或者以降薪的手段去開除這類員工。而在招聘信息上常常會看到“招聘頁面設(shè)計師缺前,條件:30歲以下……歡迎應(yīng)界畢業(yè)生前來應(yīng)聘”這樣一條蛀醉,因為這一類工員對技術(shù)上的要求并不高,找應(yīng)界生可以節(jié)約成本衅码。所以在下覺得“IT行業(yè)是吃青春飯的”這句話只是對著以上這類人所說的拯刁,如果閣下缺乏“進(jìn)取之心”,而只抱著“收入高逝段,容易找工作”這樣的態(tài)度而入行垛玻,那“IT行業(yè)是吃青春飯”將會應(yīng)驗了割捅。
選擇合適的工具
JAVA、C#帚桩、PHP亿驾、C++、VB……10多種熱門的開發(fā)語言账嚎,哪一種最有發(fā)展?jié)摿δ丶粘耍科鋵嶉_發(fā)語言只不過是一個工具,“與其分散進(jìn)攻醉锄,不如全力一擊”乏悄,無論是哪一種開發(fā)語言,只要您全力地去學(xué)習(xí)恳不,到有了一定的熟悉程度的時候檩小,要學(xué)習(xí)另一種的語言也是輕而易舉的事情。開發(fā)語言主要分為三大類:
1. 網(wǎng)絡(luò)開發(fā)
現(xiàn)在網(wǎng)絡(luò)已經(jīng)成為世界通訊的一座橋梁烟勋,好像Javascript规求、PHP、Ruby這幾類開發(fā)語言大部分是用作網(wǎng)絡(luò)開發(fā)方面卵惦。
2. 企業(yè)軟件開發(fā)
JAVA阻肿、C#、VB這幾類開發(fā)語言都實現(xiàn)了面向?qū)ο箝_發(fā)的目標(biāo)沮尿,更多時候用于企業(yè)系統(tǒng)的開發(fā)丛塌。
3. 系統(tǒng)軟件
C語言、C++畜疾、Object-C赴邻、匯編語言這些軟件更多是用在系統(tǒng)軟件開發(fā),嵌入式開發(fā)的方面啡捶。
當(dāng)然姥敛,這分類不是絕對,像JAVA瞎暑、C#彤敛、VB很多時候也用于動態(tài)網(wǎng)站的開發(fā)。在開發(fā)項目都會使用集成開發(fā)的方式了赌,同一個項目里面使用多種開發(fā)語言墨榄,各展所長,同步開發(fā)揍拆。所以在剛?cè)腴T的時候渠概,建議您先為自己選擇一種合適的開發(fā)工具茶凳,“專注地投入學(xué)習(xí)嫂拴,全力一擊”播揪。
明確發(fā)展方向
當(dāng)您對某種開發(fā)語言已經(jīng)有了一定的了解,開始覺得自己如同“行尸走肉”筒狠,成為一個開發(fā)工具的時候猪狈,那您就應(yīng)該要明確一下自己的發(fā)展方向了。
平常在公司辩恼,您可以看到做UI層的開發(fā)人員大多數(shù)都有20多歲雇庙,他們充滿干勁,而且沒有家庭負(fù)擔(dān)灶伊,在兩年前ASP.NET MVC 疆前、Silverlight等剛出現(xiàn)的時候,他們可以在晚上回家的時候買幾本書或者直接上網(wǎng)看看聘萨,研究三五個星期以后竹椒,對需要用到技術(shù)就已經(jīng)有一定的了解了。而年過30的人多數(shù)是已經(jīng)成了家米辐,他們每天9:00點上班唯一的希望就是快些到6點胸完,能回家吃飯。吃完飯只想陪孩子玩一下翘贮,看看孩子的功課赊窥,對新增的技術(shù)缺乏了學(xué)習(xí)的欲望。所以很多接近30歲的程序員都有著一種逼迫感(包括30歲時候的我自己)狸页,再過幾年應(yīng)該怎么辦锨能?這時候,您就更應(yīng)該明確一下目標(biāo)芍耘,努力向自己的發(fā)展方向前進(jìn)了腹侣。歸納一下,可從下面幾項里選擇適合自己的一條道路:
1. 從技術(shù)向業(yè)務(wù)過渡
在國外齿穗,很多發(fā)達(dá)國家都很重視人才傲隶,一個高級的程序員與一個Project Manager收入相差一般不超過15%。但中國是世界上人口最多的國家窃页,國內(nèi)人才眾多跺株,所以人才濫用的情況經(jīng)常可以看到脖卖。一個小公司的開發(fā)部里面經(jīng)常會見到新面孔乒省,但PM卻不會常換。因為做老板的對技術(shù)是一竅不通畦木,依他們看來只到拉住PM的心袖扛,那在技術(shù)方面就能搞得定,至于技術(shù)部要換人,他們根本不需要費(fèi)力氣去管蛆封。所以從一個技術(shù)員過渡到一個PM是向前發(fā)展的一個選擇唇礁,但開發(fā)人員也需要知道,要成為一個PM不單單是使用技術(shù)惨篱,而更重要的是對管理方面認(rèn)識盏筐。一個PM主要的工作是組織團(tuán)隊,控制成本砸讳,管理業(yè)務(wù)琢融,控制項目進(jìn)度,與客戶進(jìn)行溝通簿寂,協(xié)調(diào)工作漾抬,定期進(jìn)行工作報告等。所以要成為一個成功的PM更要重視組織能力常遂,PM必須能提高團(tuán)隊的積極性奋蔚,發(fā)揮團(tuán)隊所長,在有限的開發(fā)資源前提下為公司得到最大程度上的利潤烈钞。成為一個PM后泊碑,通常不需要直接接觸技術(shù)開發(fā),而著重管理的是業(yè)務(wù)發(fā)展毯欣,但PM對技術(shù)也需要有一定的了解(在下曾經(jīng)為PM對技術(shù)了解的必要性寫過一篇文章馒过,得到很多支持但也惹來不少的爭議)。在這里我還是要強(qiáng)調(diào)自己的觀點:要成為一個成功PM最重視的是管理能力酗钞,但對技術(shù)也應(yīng)該有足夠的了解腹忽,因為這是與團(tuán)隊成員溝通的橋梁,只有這樣才能與整個團(tuán)隊的成員有著緊密的結(jié)合砚作,讓團(tuán)隊成員感覺到他們自己存在的意義窘奏,從而調(diào)動團(tuán)隊的積極性,而不是漠視技術(shù)人員的存在葫录。技術(shù)并非成為一個成功PM的充分條件但卻是必要條件着裹!
2. 從程序員向技術(shù)管理發(fā)展
其實一個Team Leader的職責(zé)與Project Manager相像,但Team Leader更著重于技術(shù)開發(fā)方面米同,通常一個大型項目都會有一兩個開發(fā)團(tuán)隊由Team Leader帶領(lǐng)骇扇,負(fù)責(zé)開發(fā)核心部分,而其它部分分派給不同開發(fā)小組或者分派給外包公司面粮。在網(wǎng)上成傩ⅲ看到幾句話,貼切地形容了PM與TL的區(qū)別:“技術(shù)人員樂于被領(lǐng)導(dǎo)熬苍;但他們不喜歡被管理稍走,不喜歡像牛一樣被驅(qū)趕或指揮。管理者強(qiáng)迫人們服從他們的命令,而領(lǐng)導(dǎo)者則會帶領(lǐng)他們一起工作婿脸。管理是客觀的粱胜,沒有個人感情因素,它假定被管理者沒有思想和感受盖淡,被告知要做什么和該如何做。領(lǐng)導(dǎo)是引領(lǐng)凿歼、引導(dǎo)褪迟,它激勵人們達(dá)成目標(biāo)。領(lǐng)導(dǎo)力是帶有強(qiáng)烈個人感情色彩的答憔,它不是你能命令的味赃,也不是你能測量評估和測試的∨巴兀”
無論是PM與TL心俗,對業(yè)務(wù)與技術(shù)都要有深入的了解,只是PM更側(cè)重于業(yè)務(wù)的管理蓉驹,盈利的多少城榛,風(fēng)險的大小等等,而TL則側(cè)重于項目的成本态兴,開發(fā)的難度狠持,軟件的架構(gòu)等技術(shù)方面的問題。在某些人眼中瞻润,技術(shù)與管理就像魚與熊掌喘垂,不可兼得,但依在下看來绍撞,兩者卻是秤不離砣正勒,密不可分。只要及時提升自己對技術(shù)與管理的認(rèn)識傻铣,不斷地向深一層發(fā)展章贞,要從程序員提升到技術(shù)管理人員只是時間的問題。打個比方非洲,一個普通的.NET程序員阱驾,開始可能限制于ASP.NET的頁面開發(fā),但一旦他有了發(fā)展之心怪蔑,他自然會對ASP.NET MVC里覆、Silverlight、WinForm缆瓣、WPF這些UI的開發(fā)手法感到興趣喧枷,學(xué)習(xí)不需要多少時間,他可能就會認(rèn)識這些UI開發(fā)只不過是一些工具,其實在開發(fā)原理上沒什么區(qū)別隧甚。接著他就會向深一層的通訊模式進(jìn)行了解车荔,認(rèn)識TCP/IP、Web Service戚扳、WCF忧便、Remoting這些常用到的通訊方式,這時候他可能已經(jīng)感覺到自己對開發(fā)技術(shù)有了進(jìn)一步的了解帽借。進(jìn)而向工作流珠增、設(shè)計模式、面向?qū)ο笤O(shè)計砍艾、領(lǐng)域驅(qū)動設(shè)計蒂教、面向服務(wù)開發(fā)等高層次進(jìn)發(fā),最后成為技術(shù)的領(lǐng)導(dǎo)者脆荷。上面只是一個比喻凝垛,但要注意的是,在學(xué)習(xí)的時期必須注意的是與同事之間溝通蜓谋,很多的開發(fā)人員喜歡獨來獨往梦皮,開發(fā)的項目總想一個人搞定,不受外界的干擾桃焕。但要明白届氢,就算你有天大的本事,一項大型的項目也不可能由你一個人全扛著覆旭。所以團(tuán)隊的合作性與同事間的溝通是必要的退子,這也是成功一個TL的必要條件。
3. 單方面向技術(shù)發(fā)展
能成功技術(shù)開發(fā)的尖端人才型将,這是在下最向往的工作寂祥,卻也沒本事登上這個位置。很多從事開發(fā)的人都會認(rèn)為七兜,業(yè)務(wù)總會帶著“金錢的味道”丸凭,老板從來不管開發(fā)是否合符開發(fā)原則,有否經(jīng)過必要測試腕铸,他們只會在客戶面前無盡地吹噓惜犀,項目到期能成功交貨,只要不出什么大問題那這個項目就算成功了狠裹。其實我們也要明白:開發(fā)項目最終目標(biāo)是為了賺錢虽界,在開發(fā)過程中對項目成本的限制和效率的控制這也是必須,所以這才需要管理人員對項目進(jìn)行管理涛菠。但開發(fā)人員也很想避開這“金錢的塵囂”莉御,全情投入到技術(shù)的世界的當(dāng)中撇吞。所以對技術(shù)有著濃厚興趣的人,往往會深入地研究某一項技術(shù)礁叔,成為技術(shù)上的精英牍颈。但在這里說一句令人心淡的話:中國已經(jīng)屬于是世界上第二大經(jīng)濟(jì)體同盟國,但國民生產(chǎn)總值主要來源于第三方加工產(chǎn)業(yè)方面琅关。中國可以說是人才濟(jì)濟(jì)煮岁,但卻在高新產(chǎn)業(yè)上卻比發(fā)達(dá)國家落后。這幾年的確看到我們國家在高新科技上有著質(zhì)的飛躍涣易,但跟歐美發(fā)達(dá)國家還有著一段距離画机。所以想在中國成為尖端技術(shù)的人才,無可否定比在國外要難都毒。依在下看來色罚,要想成為尖端的開發(fā)者碰缔,必須對C账劲、C++、匯編語言金抡、嵌入式開發(fā)瀑焦、Windows API、Linux API這些底層技術(shù)有著深入的了解梗肝。要知道解JAVA榛瓮、.NET……等這些之所以稱為高級開發(fā)語言,并不是指它們比C巫击、C++禀晓、匯編語言更高級,而是指它們封裝了C坝锰、C++等等的功能粹懒,更適合用于企業(yè)軟件的開發(fā),使開發(fā)變得簡單顷级。但如果要開發(fā)一些底層的軟件凫乖,大型的系統(tǒng)的時候,就必須用到C弓颈、C++帽芽、匯編等開發(fā)語言,這是成功尖端人才的一個條件翔冀。
確定未來的目標(biāo)
人是從歷練中成長的导街,古人云:三十而立,形容的不是一個人的社會地位纤子,經(jīng)濟(jì)來源菊匿,而是形容一個人對未來的目標(biāo)付呕,對人生的意向。要成為一個成功人跌捆,就應(yīng)該早日為自己定下長期的發(fā)展目標(biāo)徽职,作為一個開發(fā)者也當(dāng)如此。隨著人的性格佩厚,取向各有不同姆钉,大家為自己所選擇的路也有不同:
1.自立門戶,勇敢創(chuàng)業(yè)
快30歲了抄瓦,很多人會認(rèn)為要想真正賺得了錢潮瓶,就應(yīng)該自立門戶,為自己創(chuàng)業(yè)建立一個基礎(chǔ)钙姊。像北京毯辅、上海、廣州這些一級城市煞额,要買房子思恐,一手樓基本要在2萬~4萬元/平方米左右,而在一家普通的IT公司當(dāng)上一個項目經(jīng)理膊毁,基本收入一般都在1.5萬~3萬之間(除非在大型的跨國企業(yè)內(nèi)工作胀莹,那另當(dāng)別論),要買一間100平方米左右的房子婚温,就算不吃不喝也幾乎要10年的年薪描焰,所以選擇自主創(chuàng)業(yè),是很多IT開發(fā)人員的一個未來目標(biāo)栅螟,想要達(dá)到這個目標(biāo)荆秦,就應(yīng)該更多地把業(yè)務(wù)作為重點。不可否認(rèn)的一件事力图,在中國社會里很多時候講的是“關(guān)系”步绸,即使這30年的改革開放使中國的經(jīng)濟(jì)蓬勃地發(fā)展起來,但幾千年來留下的歪風(fēng)還是不能完全的磨滅搪哪。所以想要創(chuàng)業(yè)的人事建議你要多跟客戶打好關(guān)系靡努,與合作伙伴保持互利互動的模式,這將有利于日后事業(yè)的發(fā)展晓折。
2. 急流勇退惑朦,退居二線
這也是不少人的選擇。很多人在有了家庭以后漓概,感覺到壓力太大漾月,人的一生并非只有事業(yè),他們想把更多時間用于對親人的照顧胃珍,對孩子的關(guān)心上梁肿。所以很多人會選擇一份像系統(tǒng)分析蜓陌、系統(tǒng)維護(hù)、高校教師吩蔑、專業(yè)學(xué)院講師這一類的工作钮热。收入穩(wěn)定,而且往往沒有一線開發(fā)人員那么大的壓力烛芬。
3. 不懈努力隧期,更進(jìn)一步
無論你是一個Project Manager或者是Team Leader,如果你想繼續(xù)晉升一級赘娄,那還是會兩極分化的仆潮。從一個PM到一間公司的管理層,那所面對的事件會有很多變化遣臼。一個公司的總經(jīng)理性置,要管理的不再是一到兩個項目的成本,而是整個部門的運(yùn)作揍堰,整間公司的業(yè)務(wù)流程鹏浅,所以要肩負(fù)的任務(wù)的會更重。在下曾經(jīng)有一位上司彭博士个榕,他是企業(yè)的最高領(lǐng)導(dǎo)人篡石,年薪超過三百萬芥喇,而且在報紙雜志上也曾經(jīng)亮過相西采。平常只會在某些會議上輕輕地亮下相,說兩句講詞继控,平常的公司運(yùn)作與業(yè)務(wù)管理都不需要他直接執(zhí)行械馆。這并不是說一個作為管理層很清閑,因為他們要面對的是更多的社會關(guān)系武通,與公司合作企業(yè)的聯(lián)系上霹崎。這跟一個PM的工作的很大的區(qū)別,所以要從一個PM晉升到管理層冶忱,那可是要負(fù)出更多的努力與汗水尾菇。
如果要從Team Leader上升為一個技術(shù)總監(jiān),那工作的方向也有所改變囚枪。像之前所說:一個TL可能更重視的是技術(shù)層面派诬,講求與團(tuán)隊之間的互動合作性,更注重的是開發(fā)的完善链沼。而一個技術(shù)總監(jiān)就無需要直接參加某個項目的開發(fā)默赂,而注意的是開發(fā)的效率與成果,如何合理使用有限的開發(fā)資源括勺,控制開發(fā)的風(fēng)險和可能帶來的效果缆八。
發(fā)展感受
經(jīng)歷了8年多時間曲掰,在下從一個程序員到一個項目經(jīng)理,之間經(jīng)過很多的曲折奈辰,但因為每一個人的際遇都有所不同栏妖,所走的路也有不同,正所謂條條大路通羅馬奖恰,成功的路不止一條底哥,在下也不想令各位誤解,而只想為大家說一下我的發(fā)展方向房官。如果您是一位開發(fā)人員程序員->架構(gòu)師->Team Leader(Project Manager)->技術(shù)總監(jiān)是一條不錯路趾徽,這也是在下選擇的路。在我國翰守,想要進(jìn)一步提升自己孵奶,無論你想是以技術(shù)為重點還是以業(yè)務(wù)為重點,都離不開管理二字蜡峰。在一些大型的企業(yè)了袁,一個團(tuán)隊往往會配備一個PM與一個架構(gòu)師,盡管兩個人負(fù)責(zé)的任務(wù)各有不同湿颅,但你會看到一個架構(gòu)師的收入往往不如一個PM载绿,PM往往是這個團(tuán)隊的核心領(lǐng)導(dǎo)者,是關(guān)鍵人物油航。因為公司能否賺錢崭庸,PM有著重要的作用。PM與TL并沒有絕對的區(qū)別谊囚,而且在一些中小型企業(yè)怕享,一個開發(fā)團(tuán)隊只有3~5人,一個TL往往會兼?zhèn)錁I(yè)務(wù)處理镰踏、成本控件函筋、架構(gòu)設(shè)計、開發(fā)管理等多項任務(wù)奠伪。所以在下會把Team Leader與Project Manager定于同一層次跌帐,一個公司的老板往往不會知道團(tuán)隊的架構(gòu)師、程序員是何人绊率,而只會向PM詢問項目的進(jìn)度谨敛,所以只有晉升到這個層次,才有機(jī)會進(jìn)一步提升管理能力即舌,讓自己有上升的空間佣盒。置于要成為一個技術(shù)總監(jiān),那要求就不再單單是對單個項目的管理顽聂,而應(yīng)該更則重于新興技術(shù)的引用肥惭,開發(fā)資源的合理利用盯仪,對開發(fā)項目敏捷性的處理等等,對此在下也在試探當(dāng)中蜜葱,未敢多言全景。