一個工做三年左右的Java程序員和你們談談從業心得

轉發連接地址:https://mp.weixin.qq.com/s/SSh9HcA5PgMHv7xiolQkigjava

貌似這一點適應的行業最廣,可是我能夠很確定的說:當你從事web開發一年後,從新找工做時,纔會真實的感覺到這句話。linux

 

工做第一年,每每是什麼都充滿新鮮感,什麼都學習,衝勁十足的一年;WEB行業知識更新特別快,今天一個框架的新版本,明天又是另外一個新框架,有時每每根據項目的須要來不斷學習新東西;全部,不少時候感受,本身用過的東西真多呀!可是真正深刻研究的東西卻很少。程序員

 

面試,是跳槽後第一個須要面對的問題;並且不一樣公司面試的着重點不一樣;可是卻有一個共同點:Java基礎是必考的。web

 

工做第一年,可能問你String對象建立的理解,經常使用的框架是什麼等等;面試

 

工做第二年,就問你Java內存分配機制是什麼,類是如何加載的等等;數據庫

 

第三年,就問你經常使用的設計模式是什麼,你在工做中充當什麼角色,怎麼獨立完成一個模塊等等;編程

 

能夠看出——這是一個典型的程序員的成長過程:windows

 

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

 

所以,必須學習:架構

 

Java基礎的深刻理解; 

很少做解釋,推薦書目《Java編程思想》,《Java線程》,《Java NIO》,《深刻java虛擬機》 

 

數據庫 

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

 

UML 

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

 

設計模式 

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

 

 

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基礎紮實);這樣若是你在一家公司呆久了,極可能就模式化,若是一旦離開這家公司,找工做有時候很容易碰壁;多經歷兩家公司,對程序員頗有益!並且我本身也有感受,每次找工做都在強制本身學東西。 

相關文章
相關標籤/搜索