天天看點

一個四年java程式員的年終總結

從畢業到現在已經快4年啦,一直在Java的WEB開發行業混迹。我不是牛人,但是自我感覺還算是個合格的程式員,有必要寫下自己将近4年來的經曆,給自我以提示,給剛入行的朋友提供點參考。

第一. Java程式員需要不斷的學習;

貌似這一點适應的行業最廣,但是我可以很肯定的說:當你從事web開發一年後,重新找工作時,才會真實的感受到這句話。

工作第一年,往往是什麼都充滿新鮮感,什麼都學習,沖勁十足的一年;WEB行業知識更新特别快,今天一個架構的新版本,明天又是另一個新架構,有時往往根據項目的需要來不斷學習新東西;所有,很多時候感覺,自己用過的東西真多呀!但是真正深入研究的東西卻不多。

面試,是跳槽後第一個需要面對的問題;而且不同公司面試的着重點不同;但是卻有一個共同點:Java基礎是必考的。工作第一年,可能問你String對象建立的了解,常用的架構是什麼等等;工作第二年,就問你Java記憶體配置設定機制是什麼,類是如何加載的等等;第三年,就問你常用的設計模式是什麼,你在工作中充當什麼角色,怎麼獨立完成一個子產品等等;

可以看出——這是一個典型的程式員的成長過程:

使用Java—->深入了解Java積累經驗——>獨立設計分析能力——>獨當一面的多面手!

是以,必須學習:

1. Java基礎的深入了解;

不多作解釋,推薦書目《Java程式設計思想》,《Java線程》,《Java NIO》,《深入java虛拟機》

2. 資料庫

最常用的是Oracle了(當然銀行項目等需要DB2等),熟練掌握使用存儲過程,觸發器等;

3. UML

項目中經常要寫文檔,項目經理的基本功,程式員走向設計的基本功;

4. 設計模式

這個建議多看吧,在閱讀源碼中體會;

5. linux系統

需要掌握常用的linux指令——部署在windows作業系統上的項目很少吧。

其他就不多說了,大家可以補充。

學習上,興趣是最大的老師;項目驅動也是不錯的選擇,總之,不學習不行。

第二. 積累行業背景;

行業背景非常重要;工作3年後必須确定自己的行業背景,比如一直從事電信行業,一直從事銀行項目,一直從事ERP行業等等。

一個程式員不可能是一直寫代碼的,就是寫代碼也要知道業務邏輯,滿足什麼需求;俗話說隔行如隔山,每個行業的業務都不一樣,甚至差别很大,比如你一直從事流媒體的研究,讓你跳槽到一家銀行項目,完了,一切從頭學吧,以前的行業經驗都用不上了;而且,一個公司公司招人,就是希望找到那些很容易上手,不需要教育訓練業務很久的程式員;頻繁跳槽的朋友,一定要注意這點;

一直在一個行業呆久了,就可以成為這個行業的專家;我們可以經常看到,一個項目組的某個leader,代碼寫的一般,但是卻可以跟客戶流暢的溝通,控制着新需求的提出,bug的修正等等;而客戶也很願意跟他打交道,因為那些老的項目隻有他能維護,他甚至熟悉系統的每一張表結構——-可想在這個行業呆的時間有多久啦。

第三. 合理的職業規劃

什麼是職業規劃—-就是你短期或者長期的一個職業計劃!大道理不講,咱簡單點。先問你幾個問題:

a.你工作幾年了,你願意一直和新入行的新手一樣就是個簡單的程式員嗎?

b. 你願意一直寫代碼,而不關心其他嗎?

c. 一個項目的前期需求,設計,後期部署維護,上司找到你,你說咱搞不定,行嗎?

程式員不是敲代碼的機器。第一年太多東西不懂,你可以一切聽從老大的安排,敲敲代碼,看看資料庫,測試自己和别人的代碼;但是第二年,你還是這樣嗎?不可能的,一年的經驗你完全可以入行了,是時候該學習怎麼進行需求分析,怎麼設計資料庫,怎麼寫各類文檔,怎麼寫更好的代碼?這是進階程式員的要求!

什麼是進階程式員?具有分析設計能力,能進行技術攻關,而且具有某行業深厚背景的程式員!

所有,一個項目立項後,你要積極的參與到前期設計中,跟老同志們一道思考分析問題,學習經驗!OK,你這就成長啦!

千萬不要認為程式員就是寫代碼的哦!!!

而且,通過一個項目的開發,你要能粗略的統計出一個功能的開發時間;比如一個子產品有20個小功能點,你開發了80個小時,每個小功能點平均2小時——這時在前期就能評估工作量啦。當然每個人的效率和工作品質是不同的,因人而異,但是大概的工作量應該是可以統計出來的,用于統計一個項目的工作周期;

具備上面的能力,你起碼已經是一個項目組的骨幹啦!此時,就可以帶領小弟做開發而不是平凡的一個被帶領者啦。

很多公司的項目骨幹和項目經理都不是通過招聘的來的,都是培養出來的——-工作2年,思考能力不錯,善于動手,很上道!OK,此時項目經理和公司中層可能就注意到你了,就會給你多配置設定任務慢慢的鍛煉你,這時候千萬不要鬧别扭哦(曾遇上這樣一個同僚,技術很好,人也不錯,上司突然給他配置設定很多任務,他開始是默默承受,後來鬧意見啦!上司找他談話後,他算明白啦!頂過一段時間就基本适應,可以快速的做完;後來他成了我們那批人中新的項目leader啦),跟帶你的人好好學習,多勞動,很快就出頭啦!

如果你工作了多年,屬于老鳥了,也要善于帶人,能提攜小弟!因為隻有小弟成長了,你身上的擔子才會輕,項目才會順暢的進行!

而且進階程式員(大學為例)工作四年左右工資就達到一個瓶頸了(一線城市是9K—1.2W),這時候必須“轉型”—–進階程式員隻是你能力的一部分,系統分析師,架構師,技術主管才是你應該告訴别人的職務,薪資才能再次提升。

第四. 良好的心态和體态

程式員必須有責任心!這點非常重要。遇上問題,不能随便的踢皮球,很認真的和别人溝通,提出自己的見解,和客戶聯系,才能把問題解決。技術上的問題不是問題,總可以解決,但是需求上的問題,必須搞清楚!一旦需求出錯,一個項目就可能延期或者失敗。程式員的責任心決定了他的成長,一個有責任心的人才可能成為骨幹,讓上司信任!

其次就是能頂住壓力,大家都知道程式員要加班,壓力大,所有遇到問題必須不輕易放棄,合理的根據能力去處理!

身體是革命的本錢,程式員尤其重要,天天坐在電腦前,很容易發胖,變成鴨梨身材,所有多鍛煉呀!

到某些程度就不要跳槽了,在一家有發展前景或者工作開心的工作長久呆下去吧,不能跟年輕人比熱情了,這時候要的是穩重,在公司充當的是一個資深的IT從業者,幫人優化程式,分析需求,為項目出謀劃策解決疑難等。

第五. 多寫技術文檔

多寫技術文檔是好事哦—–其實它是對你工作經驗的總結和提高!一個願意和别人分享知識的人,才能在不斷的思考中提高!而且,寫文檔很鍛煉人滴!

是以建議木有部落格或者經常看别人文檔自己卻不寫的同行,趕快開博吧,其樂無窮呀!

(技術文檔注重簡潔精練,提供源碼;總結性文檔注重親身體會!)

第六. 關于跳槽

跳槽,對IT人來說絕對不是個陌生的詞彙,幾乎所有人都身體力行過。首先我要強調一點,跳槽并沒有壞處,但是頻繁的跳槽就不好了。在工作的前4年,必須跳槽,而且鼓勵跳槽(建議經曆2—3家公司);每個公司對技術的側重點都不同,對開發流程控制都不一樣,所需要的技術性人才自然不一樣;比如外包公司,要的是一個代碼狂人(我很喜歡招做過外包的人,感覺很多在外包公司待過的人做事的效率很高);小事業的公司,要的是一個全能型的程式員(能設計分析,能寫代碼,能部署);大的公司,要的是一個技術紮實,有潛力的人(英語好,了解能力好,Java基礎紮實);這樣如果你在一家公司呆久了,很可能就模式化,如果一旦離開這家公司,找工作有時候很容易碰壁;多經曆兩家公司,對程式員很有益!而且我自己也有感覺,每次找工作都在強制自己學東西。

而且關鍵是,一次跳槽,薪資就更高了 —– 很多人跳槽都是對目前薪資不滿呀。

但是,一旦工作5年後,建議不要在跳了,更多是規劃自己的職業生涯,程式員畢竟有“青春飯”的嫌疑,我們不能跟年輕人比呀。這時候如果想一直做技術,建議在一家好的公司長久呆下去,技術+業務,足夠你混的了;如果想做管理層,這時候也基本是時候了;想自己開公司,就要付出更多,對營運有深入了解,并側重銷售和客戶的關系啦。     原文位址: http://junier.iteye.com/blog/1779755