程序員的發展方向

師範數學畢業轉行做軟件開發已兩年,從事.net,做過一些電子商務網站和軟件,自已是個女生,2010年24歲,是該考慮下自已的發展方向了。

下面一些程序員發展方向的相關文章給自已也給同樣迷茫的戰友們,希望能給你一些幫助:

程序員有哪些發展方向

提示:本文適合有2年及以上工作經驗的程序員,對於剛入職或者即將職的程序

程序員職業生涯發展到一定程度都會面臨一個選擇,是走業務+技術方向,還是選擇純鑽研技術。程序員職業生涯發展的問題,這是所有程序員都在關心的問題,未來究竟要怎麼走,30歲之後還能不能再做程序員。

絕大多數程序員最終的職業目標可能都是CTO,做到CEO的人估計會比較少,也有一少部分人自己去創業去當老闆,也有部分人轉行了,當老闆的人畢竟是少數,轉行的人都不在這行做了,自然沒什麼好說的了。一般來說,程序員的發展基本上都會經歷這麼幾條路徑。程序員-系統分析員-架構師-技術經理-CTO程序員-項目組長-項目經理-項目總監-CTO程序員-產品設計師-產品經理-CTO

當然這只是一個大致的路徑,不是所有程序員都必需要這麼經歷的,有些人可能跳過其中的一些步驟,也可能有些人會把中間的很多職位都做了。而最終做到CTO的程序員,也是非常少的一部分,原因很簡單,這個世界上不許要那麼多的CTO和CXO。

也就是說,許多的程序員最終可能是做技術經理、項目經理或者項目總監之類的,那麼到底我們職業生涯要選擇哪一種呢?我覺得這個問題沒有一個統一的答案,因爲每個人的性格不一樣,際遇也不一樣,就像你從小希望當貪官,可是命運卻偏偏讓你做了一個程序員。所以應該根據你的興趣、性格與際遇選擇一條道路,比如說你正好有機會帶一個項目,而你又不是很討厭項目經理這個位置,那麼你就可以選擇向項目經理方向發展。

實際上很多時候,有些公司並沒有明確的技術經理、項目經理、產品經理之分,在許多的公司裏,他們經常是由一個人承擔。在外包公司裏,通常會有項目經理和系統分析員(也可能是技術經理)。在一些非IT公司裏,可能會是部門經理,而做自己產品的公司可能會分得比較詳細一些。我大致說一下這三個職位的區別,讓正在徘徊的程序員有一個大致的瞭解。

項目經理是項目的直接負責人,這個角色相當於一箇中間接口,不管是團隊成員還是需求方(客戶),或者是上級領導,有事都直接找他,所以這個職位着重於管理與溝通。一般來說,項目經理的工作重點在同客戶溝通需求、項目進度的把控、團隊的溝通方面,有些公司也會需要項目經理承擔團隊建設的工作,不過貌似很多國內公司都忽略了團隊建設這個工作了。對於項目經理來說,重點會要求溝通能力、協調能力、危機把控能力、執行力、團隊管理能力,着重於溝通、管理與計劃。當然也有些公司還要求項目經歷要參與招標談判,這就要求項目經理有一定的商務談判能力。

技術經理有時候也可能叫系統分析員,一些小公司可能會整個部門有一個技術經理。技術經理承擔的角色主要是系統分析、架構搭建、系統構建、代碼走查等工作,如果說項目經理是總統,那麼技術經理就是總理。當然不是所有公司都是這樣的,有些公司項目經理是不管技術團隊的,只做需求、進度和同客戶溝通,那麼這個時候的項目經理就好像工廠裏的跟單人員了,這種情況在外包公司比較多。對於技術經理來說,着重於技術方面,你需要知道某種功能用哪些技術合適,需要知道某項功能需要多長的開發時間等。同時,技術經理也應該承擔提高團隊整體技術水平的工作。

產品經理這個職位一般在有自己產品(不管是軟件還是網站產品)的公司比較常見,產品經理主要會負責產品的設計、產品的改良等工作。需要注意的是,產品設計與設計師是兩個不一樣的工作,產品設計主要會從用戶體驗、業務需要等層面去設計產品,而設計師更多是從用戶的視覺上去做。產品經理應該是最懂業務的人,比如說你在設計一個微博的產品,就要求你對微博這個東西非常熟悉,從用戶習慣、用戶體驗、公司的發展戰略上去設計這個產品,還要對比同類產品會有什麼優勢等等。

不管是項目經理還是技術經理與產品經理,都要求要熟悉業務,業務是需求的來源,沒有不談業務的技術,所以不管你從哪個方向發展,都要求對業務熟悉。產品經理要求對業務最熟悉,項目經理次之,技術經理排最後。對於程序員來說,剛開始工作的前幾年可以埋頭扎到技術裏面,一般這個時間在2-3年的時間,然後就應該多關注業務了。這個業務不一定是指某個具體的業務,因爲具體的業務的範圍太少,而且也需要機遇。

我見過許多的程序員,他們是做Web開發的,但對互聯網很不熟悉,對於互聯網流行的趨勢基本上不聞不問。不知道現在大家都在使用微博,也不知道SNS,也可能從不使用網銀。我覺得這樣很不好,程序員應該多多去關注互聯網的發展,多多去玩一些新的網站。

 

 

 

程序員的未來在何處

程序員未來只有兩條出路,這是中華軟協大陸合作委員會副主委,中華軟協共享平臺協會會長,臺灣訊光科技董事長,微軟.NET開發平臺專家與特約講師,從事軟件工程技術研究達20年之久的高志明的觀點,有那兩條呢?

 

簡述如下: 
“程序員轉型的兩個路線:朝向研發和知識專業化。” 

高先生說:“朝向研發,可以做控件,架構師設計控件,程序員來進行實現。大家的目的要想把編程的代碼減少,就要進行控件化。控件化的概念就是品質和生產力,一開始都是最差的,當你提升起來的時候,他將超過那些從第一行寫到最後一行的“編程王子”。在經過一些項目之後,這個品質是純代碼所無法比擬的。” 
高先生說:“程序員如果始終只知道編程,而不去深入理解客戶的需求,那結果做出來的東西永遠不能符合用戶的要求。程序員應該多去了解產業知識,這樣才能變得更有價值,形成第二專業知識加編程的能力結構。” 
高先生說:“程序員在一定程度上也會被取代。今天的程序員是存在的,但是他們絕對不是用來寫application的,未來將會由架構師來產生 Application。應用80/20法則,未來80%的工作將會由架構師來設計完成,程序員來完成剩下的20%工作。具體做什麼呢?程序員主要來完成客戶的一些個性化定製,比如軟件外觀顏色的選擇,一些特殊的屬性等等。所以程序員還是有存在的價值,但他的工作是比較簡單的。” 


    看到以上的說法感覺心頭披上一層陰影,不過整體來說軟件行業的前途還大好的。那就是看自己如何規劃和去拼搏了。

程序員的未來在何處遠不是一個人說了就算的。 
下面也是收集的一些說法: 
出路一:向IT培訓師轉型 

分析:IT企業在招聘新人後,一般都須經過培訓才能上崗,這個培訓有時是在崗位上進行的,由富有實踐經驗的“老人”負責。年輕人想要進入IT行業,必須接受這樣的專業培訓。如今IT培訓市場蛋糕相當大,利潤空間可觀,行業發展前景看好。根據國際數據公司(IDC)統計數據顯示,2004年中國IT培訓市場共實現銷售額24.4億元,相比2003年增長了22.1%,2005年市場前景發展更爲可觀。Smith無論是在IT公司內部轉型擔任培訓工作,還是到 IT培訓機構擔任教師,都應該有發展空間。這樣的工作不會有太大壓力,且比較穩定,對年齡也沒什麼要求。更何況,這還沒有脫離Smith所喜歡的IT行業。


優勢:在這個行業工作了8年,擁有豐富編程、項目經驗,曾參與過許多成功案例,這都是Smith的優勢。而8年積攢的行業人脈關係,還可以幫助他發展企業客戶,順便擔任市場拓展工作。 


挑戰:Smith在過去8年中一直埋頭苦幹,只是在公司培訓新人時擔任過培訓工作,缺少培訓工作經驗。如果要向培訓師轉型,Smith需要接受一些專業訓練,提高擔任培訓師的能力。

 

出路二:向IT營銷轉型 


分析:IT與其它行業不同,由於技術性較強,營銷人員一般也須有較強的技術背景,且最好有着豐富經驗。互聯網公司、 


電子商務公司、軟件公司目前都需要有技術背景的營銷人員;另外,電子商務的再度火爆,使得傳統企業開始重視電子商務營銷,也需要有技術背景的營銷人員。這類工作薪水不低,加上提成應該可以拿到高於程序員的薪水,同時也比較穩定。 


優勢:深厚的技術背景仍然是Smith的核心競爭力,在8年的從業經歷中,Smith廣泛涉獵了各種編程軟件和工具,對IT行業也有相對深入的瞭解,這些都爲他轉向營銷提供了平臺。 


挑戰:Smith過去的工作主要是跟機器打交道,而營銷工作恰恰需要跟人打交道,這對Smith來說是最大的挑戰,要求他徹底改變工作方式,加強溝通能力與人際交往能力;此外,營銷工作會面臨銷售指標的壓力,這些問題都是Smith轉型前必須深入考慮的。

 

 

出路三:向項目管理努力 


分析:如果說前面兩條出路轉型的成分多,那麼項目管理可以說是Smith更爲便捷的發展之路。目前,軟件項目經理是人才市場上炙手可熱的人才,有豐富經驗、外語好的軟件項目經理是搶手的香餑餑,供不應求,薪水自然也是水漲船高。在上海市勞動部門新發布的2005年軟件行業薪資調查中,項目主管的薪水是同層次主管中最高的,年薪高位數達到211011元,平均年薪達109414元。最重要的是,一個優秀的項目經理可以在這個崗位上長久工作下去,並且有向高層進一步提升的可能。 


。。。。。。。。。。。。 
從職位來看也不過下面一些了,不知道能算的上是出路麼 
初級程序員。當你做完一個項目的時候,你會了解這個項目的整個流程,此時可以在簡歷中填寫中級程序員的角色,把很多中級程序員做的事情寫到你的履歷裏(前提是你要了解這些),跳槽的時候,你的目標自然就是中級程序員,而招聘公司看到你的情況也會覺得合適。 

中級程序員。你需要在項目中瞭解高級程序員的工作範圍,並不要求你全部掌握,但需要你能表達出來,這個很重要。比如後臺的設計模式、軟件架構、接口設計等,把這些寫到你的履歷中,給自己定位成高級程序員,自然的,高級程序員的職位會找到你。 

高級程序員。你所需要了解的就不僅僅是程序設計,而是整個項目的運作和管理流程。包括項目管理、系統架構(軟硬件)、系統集成等,整個環節不一定都要會,但需要知道是什麼,比如,什麼是交換機,什麼是硬件負載均衡設備,什麼是反向代理,什麼是緩存服務器,什麼是WEB服務器,什麼是集羣、負載均衡、分佈式、數據庫優化、大數據存儲、高併發訪問等等,都是你需要了解的,面試的時候能表達出來,那麼你就成功了。同樣的把這些寫到你的履歷中,給自己定位架構師或項目經理,更新簡歷後,獵頭會來找你。 

系統架構師。既然選擇了架構師的角色,那麼肯定是向技術方向發展了。技術總監、研發總監甚至CTO就是你的目標。想知道技術總監、CTO都在做什麼嗎,看看丁磊在做什麼,你就要去模仿去做。想成爲一個角色人物,首先要從身體力行上模仿的像這個角色,時間長了那麼你就是這樣的人。技術總監需要負責整個公司的技術部運作,包括對人員的管理、績效考覈、各語言組之間的協調、各項目間的協調,各部門間的協調,除此之外,你還需要考慮所運營的項目如何發展的更好,網站如何才能更加優化,產品如何能更上一個層次,公司的技術發展如何規劃,各種方案如何快速的編寫和實施,如何與老闆打交道等,都是你需要掌握的。 

項目經理。在中國,項目經理分兩種, 
一種是TEAM LEADER的角色,需要很強的技術; 
一種是負責招標、流程控制的偏商務角色,要懂技術。 
發展到這個層次的,我想應該不用我來告訴他們出路在哪裏了,這樣的人一般都有自己的規劃,但凡事都有例外,如果沒有規劃或發展迷茫的,TEAM LEADER角色可以重點把項目管理、人力資源、系統架構等環節再強化一下,緊跟當前發展形勢學習新知識;偏商務角色的,可以考慮往總經理、CIO、 CEO等方向努力,到這個層次的,需要的不僅僅是知識,更多的是一種理念和個人魅力。 

 

程序員的出路,其實並不難尋找,低中高各等級且聽我來分析


從我做小程序員開始,就從未間斷的在論壇看到有人在問程序員的出路在哪裏,其實我很能理解這些人的想法,在行業做了幾年,有些感想跟大家隨便聊聊。 

俗話說,365行,行行出狀元,此話也適用於IT行業,尤其是程序員。 

當你迷茫找不到出路,又想快速成長和提高的時候,有兩種方案可以供你參考: 
1、努力成爲你工作環境中最優秀的人(技術最好的人); 
2、跳槽,去另外一家公司做比你能力要高的工作。 

針對工作環境的不同,分爲大環境和小環境(人多和人少): 
1、小環境,尋找技術最好的人,努力不斷向他接近,當你通過努力覺得超過他的時候,我相信你就不會再來問“出路在哪裏”的問題了。 
2、大環境,人多優秀的人也多,想短時間超越所有人是有相當難度的,能與每個優秀人都交流的概率低,所以你可以選擇跳槽。 

跳槽,在我看來是程序員成功的必經之路。跳槽是有技巧的,同時也需要一定的運氣,如果想跳槽就要果斷。當你覺得不如意時,當你覺得沒有出路時,當你覺得待遇不滿意時,當你覺得成長不夠快時。。。都可以考慮跳槽。 

跳槽有利有弊,對企業來說,跳槽是不好的;對於打工者來說,跳槽是很完美的。企業培養一個程序員不容易,辛苦的帶起來一個人,熟悉了業務,掌握了技術,這時候走人,損失最大的當然是企業,花時間培養人和熟悉業務也是需要成本的。對程序員來說,跳槽幾乎是利大於弊,首先待遇上肯定立竿見影的體現,如果沒體現出來那就是跳的失敗,除非有其他想法和目標。 

不要誤會我的意圖,跳槽對於技術人員來說並不是壞事: 
1、一般的IT公司都有自己的常用的模式,該模式經過一個項目之後,就可以基本掌握,相關覆蓋的知識、架構等大概也可以瞭解,此時可以換個環境尋找更高的發展; 
2、跳槽相當於變向的升職,這個可以從你的簡歷中體現出來。 

假如你是一個初級程序員。當你做完一個項目的時候,你會了解這個項目的整個流程,此時可以在簡歷中填寫中級程序員的角色,把很多中級程序員做的事情寫到你的履歷裏(前提是你要了解這些),跳槽的時候,你的目標自然就是中級程序員,而招聘公司看到你的情況也會覺得合適。 

假如你是一箇中級程序員。你需要在項目中瞭解高級程序員的工作範圍,並不要求你全部掌握,但需要你能表達出來,這個很重要。比如後臺的設計模式、軟件架構、接口設計等,把這些寫到你的履歷中,給自己定位成高級程序員,自然的,高級程序員的職位會找到你。 

假如你是一個高級程序員。你所需要了解的就不僅僅是程序設計,而是整個項目的運作和管理流程。包括項目管理、系統架構(軟硬件)、系統集成等,整個環節不一定都要會,但需要知道是什麼,比如,什麼是交換機,什麼是硬件負載均衡設備,什麼是反向代理,什麼是緩存服務器,什麼是WEB服務器,什麼是集羣、負載均衡、分佈式、數據庫優化、大數據存儲、高併發訪問等等,都是你需要了解的,面試的時候能表達出來,那麼你就成功了。同樣的把這些寫到你的履歷中,給自己定位架構師或項目經理,更新簡歷後,獵頭會來找你。 

假如你是系統架構師。既然選擇了架構師的角色,那麼肯定是向技術方向發展了。技術總監、研發總監甚至CTO就是你的目標。想知道技術總監、CTO都在做什麼嗎,看看丁磊在做什麼,你就要去模仿去做。想成爲一個角色人物,首先要從身體力行上模仿的像這個角色,時間長了那麼你就是這樣的人。技術總監需要負責整個公司的技術部運作,包括對人員的管理、績效考覈、各語言組之間的協調、各項目間的協調,各部門間的協調,除此之外,你還需要考慮所運營的項目如何發展的更好,網站如何才能更加優化,產品如何能更上一個層次,公司的技術發展如何規劃,各種方案如何快速的編寫和實施,如何與老闆打交道等,都是你需要掌握的。 

假如你是項目經理。在中國,項目經理分兩種,一種是TEAM LEADER的角色,需要很強的技術;一種是負責招標、流程控制的偏商務角色,要懂技術。發展到這個層次的,我想應該不用我來告訴他們出路在哪裏了,這樣的人一般都有自己的規劃,但凡事都有例外,如果沒有規劃或發展迷茫的,TEAM LEADER角色可以重點把項目管理、人力資源、系統架構等環節再強化一下,緊跟當前發展形勢學習新知識;偏商務角色的,可以考慮往總經理、CIO、CEO等方向努力,到這個層次的,需要的不僅僅是知識,更多的是一種理念和個人魅力。 

大概聊了聊上述這些,我想每個層次的人可以大概瞭解自己該做什麼了。一定要有計劃、有目標高效的做事情,有效的管理分配好自己的時間,只有這樣你纔可以成爲一個優秀的人才。不要總讓別人告訴你該做什麼,而是自己不斷推動手裏的任務去更好的完成,處處體現出“我做的東西就比別人做的好”的信念,那我想,成功離你就不遠了。

 

 

最近看了很多關於《程序員職業規劃》,《再談國內程序員做不到三十五歲!》之類的文章,發現還是有很多人對於“程序員發展方向”感到迷茫。

據我目前瞭解的情況來看,大致可以分爲四類:

1.技術+技術(深入階段)

 這算是一條純技術路線,具體又可以分3個方向:

 技術(2年以上編程經驗)+技術(軟件測試,或系統分析師,或系統架構師)

 有軟件開發的工作經驗,再加軟件測試,比剛開始就進入軟件測試行業的人要更具競爭優勢。軟件測試工作經驗越多越好,可以幹到退休,不用擔心年齡問題

如果選擇“系統分析師,系統架構師”,則首先要打好紮實的“理論基礎”(可以通過考證書,比如參加軟考),以保證自己“後勁力十足”,這樣等有了4,5年的工作經驗後,纔有可能能衝上這個高端領域。平時工作中要不斷的鍛鍊自己的“發散思維”,培養善於發現業務需求的“眼光”。

2.技術+管理 :比如 項目經理。

 像雷軍說的那樣:“程序員象木工一樣,熟能生巧。程序員必須寫足夠代碼量(8萬行以上)的程序,纔會有感覺,這是一個苦力活,沒有任何捷徑可走。”項目經理大多是從“優秀”的程序員裏挑選出來,想走這條路,平時就要瘋狂的編碼,迅速累積豐富的編程經驗,然後再補充一些管理方面的知識。(本人打算走這條路,呵呵)

3.技術+銷售:比如 技術銷售工程師,技術支持工程師。

這類工作要有一定的技術背景(入門級也可以),具備較好的語言表達,溝通能力。工作比較輕鬆,月薪待遇主要看個人銷售業績等,個人收入差別可能比較大。

4.當培訓老師

如果你“樂於分享”工作經驗,傳授知識,或者覺得自己年齡比較大,精力不夠充沛,且往上升又比較困難的話,可以選擇去培訓機構當老師,就目前而言,當老師工作輕鬆,待遇也不錯。

5.創業

程序員創業除了需要有商業頭腦外,更需要具有較高的“膽商”(人有5商,包括智商情商),即有沒有膽量去做別人不敢做的事情(抓住商機)。

 

 

 

 


一位軟件工程師的7年總結:藉此導航自己人生

 

 


分享

第一條經驗:“學歷代表過去、能力代表現在、學習力代表未來。”


其實這是一個來自國外教育領域的一個研究結果。相信工作過幾年、十幾年的朋友對這個道理有些體會吧。但我相信這一點也很重要:“重要的道理明白太晚將抱憾終生!”所以放在每一條,讓剛剛畢業的朋友們早點看到哈!


2、一定要確定自己的發展方向,併爲此目的制定可行的計劃。


不要說什麼,“我剛畢業,還不知道將來可能做什麼?”,“跟着感覺走,先做做看”。因爲,這樣的觀點會通過 你的潛意識去暗示你的行爲無所事事、碌碌無爲。一直做技術,將來成爲專家級人物?向管理方向走,成爲職業經理人?先熟悉行業和領域,將來自立門戶?還是先 在行業裏面混混,過幾年轉行做點別的?這很重要,它將決定你近幾年、十年內“做什麼事情纔是在做正確的事情!”。


3、軟件開發團隊中,技術不是萬能的,但沒有技術是萬萬不能的!


在技術型團隊中,技術與人品同等重要,當然長相也比較重要哈,尤其在MM比較多的團隊中。在軟件項目團隊 中,技術水平是受人重視和尊重的重要砝碼。無論你是做管理、系統分析、設計、編碼,還是產品管理、測試、文檔、實施、維護,多少你都要有技術基礎。算我孤 陋寡聞,我還真沒有親眼看到過一個外行帶領一個軟件開發團隊成功地完成過軟件開發項目,哪怕就一個,也沒有看到。倒是曾經看到過一個“高學歷的牛人”(非 技術型)帶一堆人做完過一個項目,項目交付的第二天,項目組成員扔下一句“再也受不了啦!”四分五裂、各奔東西。那個項目的“成功度”大家可想而知了。


4、詳細制定自己軟件開發專業知識學習計劃,並注意及時修正和調整(軟件開發技術變化實在太快)。


請牢記:“如果一個軟件開發人員在1、2年內都沒有更新過自己的知識,那麼,其實他已經不再屬於這個行業了。”不要告訴自己沒有時間。來自時間管理領域的著名的“三八原則”告誡我們:另外的那8小時如何使用 將決定你的人生成敗!本人自畢業以來,平均每天實際學習時間超過2小時。


5、書籍是人類進步的階梯,對軟件開發人員尤其如此。


書籍是學習知識的最有效途徑,不要過多地指望在工作中能遇到“世外高人”,並不厭其煩地教你。對於花錢買書,我個人經驗是:千萬別買國內那幫人出的書!我買的那些 傢伙出的書,100%全部後悔了,無一本例外。更氣憤的是,這些書在二手市場的地攤上都很難賣掉。“擁有書籍並不表示擁有知識;擁有知識並不表示擁有技 能;擁有技能並不表示擁有文化;擁有文化並不表示擁有智慧。”只有將書本變成的自己智慧,纔算是真正擁有了它。


6、不要僅侷限於對某項 技術的表面使用上,哪怕你只是偶爾用一、二次。


“對任何事物不究就裏”是任何行業的工程師所不應該具備的素質。開發Windows應用程序,看看 Windows程序的設計、加載、執行原理,分析一下PE文件格式,試試用SDK開發從頭開發一個Windows應用程序;用VC++、


Delphi、Java、.Net開發應用程序,花時間去研究一下MFC、VCL、J2EE、.Net它們框架設計或者源碼;除了會用J2EE、 JBoss、Spring、Hibernate等等優秀的開源產品或者框架,抽空看看大師們是如何抽象、分析、設計和實現那些類似問題的通用解決方案的。 試着這樣做做,你以後的工作將會少遇到一些讓你不明就裏、一頭霧水的問題,因爲,很多東西你“知其然且知其所以然”!


7、在一種語言上編程,但別爲其束縛了思想。


“代碼大全”中說:“深入一門語言編程,不要浮於表面”。深入一門語言開發還遠遠不足,任何編程語言的存在都有其自身的理由, 所以也沒有哪門語言是“包治百病”的“靈丹妙藥”。編程語言對開發人員解決具體問題的思路和方式的影響與束縛的例子俯拾皆是。


我的經驗是:用面對對象工具開發某些關鍵模塊時,爲什麼不可以借鑑C、C51、彙編的模塊化封裝方式?用傳統的桌面開發工具(目前主要有VC++、Delphi) 進行系統體統結構設計時,爲什麼不可以參考來自Java社區的IoC、AOP設計思想,甚至借鑑像Spring、Hibernate、JBoss等等優秀 的開源框架?在進行類似於實時通信、數據採集等功能的設計、實現時,爲什麼不可以引用來自實時系統、嵌入式系統的優秀的體系框架與模式?爲什麼一切都必須 以個人、團隊在當然開發語言上的傳統或者經驗來解決問題???“他山之石、可以攻玉”。


8、養成總結與反思的習慣,並有意識地提煉日常工作成果,形成自己的個人源碼庫、解決某類問題的通用系統體系結構、甚至進化爲框架。


衆所周知,對軟件開發人員而言,有、無經驗的一個顯著區別是:無經驗 者完成任何任務時都從頭開始,而有經驗者往往通過重組自己的可複用模塊、類庫來解決問題(其實這個結論不應該被侷限在軟件開發領域、可以延伸到很多方 面)。這並不是說,所有可複用的東西都必須自己實現,別人成熟的通過測試的成果也可以收集、整理、集成到自己的知識庫中。但是,最好還是自己實現,這樣沒 有知識產權、版權等問題,關鍵是自己實現後能真正掌握這個知識點,擁有這個技能。


9、理論與實踐並重,內外雙修。


工程師的內涵是:以工 程師的眼光觀察、分析事物和世界。一個合格的軟件工程師,是真正理解了軟件產品的本質及軟件產品研發的思想精髓的人(個人觀點、歡迎探討)。掌握軟件開發 語言、應用語言工具解決工作中的具體問題、完成目標任務是軟件工程師的主要工作,但從軟件工程師這個角度來看,這只是外在的東西,並非重要的、本質的工 作。學習、掌握軟件產品開發理論知識、軟件開發方法論,並在實踐中理解、應用軟件產品的分析、設計、實現思想來解決具體的軟件產品研發問題,纔是真正的軟 件工程師的工作。站在成熟理論與可靠方法論的高度思考、分析、解決問題,並在具體實踐中驗證和修正這些思想與方式,最終形成自己的理論體系和實用方法論。


10、心態有多開放,視野就有多開闊。


不要抱着自己的技術和成果,等到它們都已經過時變成垃圾了,纔拿出來丟人現眼。請及時發佈自己的研究成果:開發的 產品、有創意的設計或代碼,公佈出來讓大家交流或者使用,你的成果纔有進化和昇華的機會。想想自己2000年間開發的那些Windows系統工具,5、6 年之後的今天,還是那個樣子,今天流行的好多Windows系統工具都比自己的晚,但進化得很好,且有那麼多用戶在使用。並且,不要保守自己的技術和思 想,儘可能地與人交流與分享,或者傳授給開發團隊的成員。“與人交換蘋果之後,每個人還是隻有一個蘋果;但交換思想之後,每個人都擁有兩種思想”,道理大 家都懂,但有多少人真正能做到呢?


11、儘量參加開源項目的開發、或者與朋友共同研製一些自己的產品,千萬不要因爲沒有錢賺而不做。


網絡早已不再只是“虛擬世界”,網上有很多的開源項目、合作開發項目、外包項目,這都是涉獵工作以外的知識的絕好機會,並且能夠結識更廣的人緣。不要因爲工 作是做ERP,就不去學習和了解嵌入式、實時、通信、網絡等方面的技術,反過來也是一樣。如果當別人拿着合同找你合作,你卻這也不會,那也不熟時,你將後 悔莫及。


12、書到用時方恨少,不要將自己的知識面僅僅侷限於技術方面。


諾貝爾經濟學獎得主西蒙教授的研究結果表明:“對於一個有一定基礎的人來說,他只要真正肯下功夫,在6個月內就可以掌握任何一門學問。”教育心理學界爲感謝西蒙教授的研究成果,故命名爲西蒙學習法。


可見,掌握一門陌生的學問遠遠沒有想象的那麼高難、深奧。多方吸取、廣泛涉獵。極力夯實自己的影響圈、儘量擴大自己的關注圈。財務、經濟、稅務、管理等等知識,有空花時間看看,韜光養晦、未雨綢繆。


13、本文的總結與反思:


A:不要去做技術上的高手,除非你的目標如此。雖然本文是關於提高軟件開發知識的建議,做技術的高手是我一向都不贊同的。你可以提高自己的專業知識,但能勝任工作即止。


B:提高軟件知識和技術只是問題的表面,本質是要提高自己認識問題、分析問題、解決問題的思想高度。軟件專業知識的很多方法和原理,可以很容易地延伸、應用到生活的其它方面。


C:在能勝任工作的基礎上,立即去涉獵其它領域的專業知識,豐富自己的知識體系、提高自己的綜合素質,尤其是那些目標不在技術方面的朋友。

來源:草根網(www.20ju.com) - 互聯網界的讀者文摘

 

 


一個老程序員的感悟:做技術二十多年,突然明白的道理


技術已經有二十多年,每天忙忙碌碌,開始還對自己的職業生涯有些思考,時間一長,習慣了,再也沒想過。前幾天在辦公樓上認識了一個朋友,他在某知名IT招聘網站做專業職業顧問,聊天的時候,他告訴我的這些話,讓我頓時清醒了許多,現在我決定給自己這麼多年的工作方式和思維模式做個改變,應該還不算晚。

不管你是學習技術爲了找工作還是創業,你都要對技術本身有個清醒的認識,在中國還僅僅的停留在把軟件技術人才當作人才機器來用的尷尬境地。

  一。不要以爲技術可以換來穩定的生活和高的薪水待遇,更不要認爲那些從事市場開發,跑腿的人沒有前途。

  中國有相當大的一部分軟件公司,他們的軟件開發團隊都小的可憐,甚至只有1-3個人,連一個項目小組都算不上,而這樣的團隊卻要承擔一個軟件公司所有的軟件開發任務,更可怕的是,會讓你接觸的人際關係非常單一,除了有限的技術人員之外你幾乎見不到做其他行業工作和職位的人,你的朋友圈子小且單一. 
   
  比之於我們,那些從事售前和市場開發的朋友,卻有比我們多的多的工作之外的時間,甚至他們的工作有時候是可以兼顧生活的,坦率的說更有發財和發展的機會,只要他們跟我們一樣勤奮。

  二。不要認爲如果做到技術最強,就可以成爲100%受尊重的人。

  如果你幸運的能夠聽到市場人員的談話,或是領導們的談話,你會隱約覺得他們都在把技術人員當作編碼的機器來看,你的價值並沒有你想象的那麼重要。而在你所在的團隊內部,你可能正在爲一個技術問題的討論再跟同事搞內耗,因爲他不服你,你也不服他,你們都認爲自己的對,其實你們兩個都對,而爭論的目的就是爲了在關鍵場合證明一下自己比對方技術好,比對方強。(在一個項目開發中,沒有人願意長期聽別人的,總想換個位置領導別人。)

  三。更不要認爲,如果我技術夠好,我就自己創業,自己有創業的資本,因爲自己是搞技術的。

  如果你那樣認爲,真的是大錯特錯了,你可以做個調查在非技術人羣中,沒有幾個人知道C#與JAVA的,更談不上來欣賞你的技術是好還是不好。一句話,技術僅僅是一個工具,善於運用這個工具爲別人幹活的人,卻往往不太擅長用這個工具來爲自己創業,因爲這是兩個概念,訓練的技能也是完全不同的。

  創業的時候,你的人際關係,你處理人際關係的能力,你對社會潛規則的認識,還有你明白不明白別人的心,你會不會說讓人喜歡的話,還有你對自己所提供的服務的策劃和推銷等等,這麼多的問題都是客觀存在着的。

  [總之] 
  技術僅僅是一個工具,是你在人生一個階段生存的工具,你可以一輩子喜歡它,但最好不要一輩子靠它生存。

 原文轉自:http://blog.csdn.net/jiangmeiling9921/article/details/5917025

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章