作為一個過來人,給你一些編程學(xué)習(xí)和工作上的經(jīng)驗(yàn)吧,希望對后來的同學(xué)有幫助,這幾大能力是一個程序員最核心的競爭力:
1、極強(qiáng)裸編程能力
對于程序員而言,編程能力就是安身立命的最基礎(chǔ)的技能!編程本質(zhì)上是做翻譯,將業(yè)務(wù)需求翻譯成機(jī)器能懂的語言。多看書、多編碼,精通面向?qū)ο蠛驮O(shè)計模式是高效編程的基礎(chǔ)。
初級工程師應(yīng)該多寫代碼、多看代碼。
找高手做Code Review,也是提升編程水平的捷徑。
2、有【造輪子的能力】和【不造輪子的覺悟】。
面對功能需求,怎么才能最快的實(shí)現(xiàn)?
普通程序員:立馬開始構(gòu)思自己如何實(shí)現(xiàn)腦海里出來一個方案。
頂尖程序員:發(fā)現(xiàn)功能點(diǎn)很普通github上面早已經(jīng)有非常多的解決方案,著手根據(jù)業(yè)務(wù)選擇一個最適合最優(yōu)的方案。
強(qiáng)悍的數(shù)據(jù)結(jié)構(gòu)+算法能力。
數(shù)據(jù)結(jié)構(gòu)與算法,一定是程序員最核心的競爭力,在這里也送大家一本幫助我拿到BAT 等一線大廠 offer 的算法筆記,是一位阿里大神寫的,對于算法薄弱或者需要提高的同學(xué)都十分受用,算法一定是計算機(jī)學(xué)習(xí)的重中之重。
3、文檔能力
“文檔是第一生產(chǎn)力”,這一點(diǎn)在程序員的世界是毫無異議的。看看Spring,hibernate,Struts等最流行的開源軟件的文檔就知道,他們tutorial,他們的getstarted,他們的reference文檔寫的多么的易懂。
搞技術(shù)的容易忽視文檔的力量,也因?yàn)閷懳臋n十分困難,更多程序員選擇舒適區(qū),習(xí)慣寫下代碼,但正因?yàn)槿绱耍恋K了不少程序員的進(jìn)階。
4、解決BUG的效率差別
一般程序員利用搜索引擎(百度)尋找答案,經(jīng)常找不到解決方案,然后更換技術(shù)方案!
頂級程序員也利用搜索引擎(google)、StackOverflow等尋找答案,一般bug都順利解決(其實(shí)跟前期框架選擇等關(guān)系非常大)。
5、持續(xù)學(xué)習(xí)、興趣是最好的老師!
這不是一句空話,一個不真正喜歡編程,業(yè)余時間從來不編碼的人不太可能成為真正的大佬,頂多是一項(xiàng)謀生的技能。
6、強(qiáng)大系統(tǒng)的CS基礎(chǔ)知識
頂尖的程序員,在內(nèi)存、OS、網(wǎng)絡(luò)、linux等方面都是十分系統(tǒng)的,這樣在遇到Bug的時候,才能進(jìn)行全鏈路的分析!
7、膠水能力
"膠水"能力其實(shí)就是一個人編程素養(yǎng)的綜合體現(xiàn)。一個合格的工程師應(yīng)該是用最低的資源實(shí)現(xiàn)最大的效益,而不是拿到需求就想從頭造輪子。
8、調(diào)試Debug能力
程序員都自嘲,寫代碼是寫B(tài)ug,調(diào)試能力也是工程師編程能力提升的關(guān)鍵手段。很早之前有個傳說:“調(diào)試能力有多強(qiáng),編程能力就有多強(qiáng)。”不過現(xiàn)在很多編輯器的功能很強(qiáng)大,調(diào)試能力的門檻已經(jīng)大大降低。
調(diào)試能力是項(xiàng)目能否按時、高質(zhì)量提交的關(guān)鍵。即使一個稍具復(fù)雜度的項(xiàng)目,大部分工程師也無法一次性準(zhǔn)確無誤的完成。大項(xiàng)目都是通過不斷地調(diào)試進(jìn)行優(yōu)化和糾錯的。所以調(diào)試能力是不可或缺的能力。
多寫程序,解決Bug,多請教高手是提升調(diào)試能力的重要手段。
10、單元測試的能力
Unit Testing won’t help you write good code
其實(shí),Unit Test 的主要目的是,為了防止你不會因?yàn)橐粋€改動而引入 Bug。
11、面向搜索引擎編程的能力
這不是說要讓大家寫代碼都去網(wǎng)上copy,而是遇到一個不會的知識點(diǎn)的時候,如何快速搜索獲取到有用信息,并拿出適合項(xiàng)目的解決方案。
12、項(xiàng)目管理能力
以終為始、確定里程碑。為了達(dá)成目標(biāo),所有的計劃必須以終為始來制定。將大項(xiàng)目分解成幾個小階段,控制每個階段的里程碑可以大大降低項(xiàng)目失敗的風(fēng)險。
13、表達(dá)與溝通能力
程序員大多喜歡和機(jī)器打交道,相對來說表達(dá)能力弱一些,但是頂尖程序員的表達(dá)能力一定是很強(qiáng)的,需要良好的溝通才能和產(chǎn)品、其它程序員快速對齊方案。
覺得有用滴話,請點(diǎn)個贊喲,筆芯~