幾招讓菜鳥程序員變高手

程序員分好多種,頂端的好比阿里騰訊頭條的大拿、算法博士、資深架構師等(這裏筆者只討論純粹技術開發,管理崗不在討論範圍以內);中端的每每是有幾年開發經驗的工程師,老實說在筆者看來這個階段的程序員絕大部分都搞不清楚怎麼寫出優雅的代碼;最低端的固然是剛出校門的小白了,沒有什麼實戰經驗,在學校裏學的又是老掉牙的技術,出了校門基本能夠說是兩眼一抹黑吧。java

筆者這裏並無鄙視任何人的想法,畢竟軟件是一門實踐性很強的技術,同時根據筆者多年的工做體會,中國的程序員廣泛缺少兩個東西:一個是軟件的設計方法學;另外一個是編程技術的學習方法論。程序員

在展開論述如何成爲高手以前,先統一幾個認識。算法

首先,什麼纔是編程高手?是否是懂java優化、懂sql優化、會用kafka、會用hbase、寫過一堆亂七八糟的軟件就是高手了?sql

高手的代碼必定是簡潔的,別人都能看得懂的。你們承不認可這一點?若是代碼寫的很晦澀,別人都看不懂,那能成爲高手嗎?會幾十種拳法就是高手嗎?把一套太祖長拳打的天下無敵纔是最高的高手,古人說大道至簡必定是正確的。編程

怎麼學習呢?是否是把每種大數據技術都學一遍?學的過來嗎,誰有那麼多時間和精力。筆者的見解,學編程和打仗是一個道理,必定要集中優點兵力打一個地方,大數據技術說白了核心是分佈式技術,分佈式技術又分分佈式存儲和分佈式計算兩種。無論你產品怎麼變,技術怎麼更新,內在原理是變不了的。就拿筆者來講,學習大數據也才2年的時間,但筆者把Zookeeper和Spark的源碼啃了個遍,所以學其餘技術就特別容易,我想高手都是這樣,必定是抓住了本質。設計模式

設計模式是必定要熟悉的,而且要有意識的用,單例模式、命令模式、代理模式、橋接模式等等,只有掌握了設計模式,你的代碼纔是給人看的,別人才能看得懂,才具備可維護性。不懂設計模式,代碼最後必定是越寫越亂,沒人看的懂。筆者職業生涯就幹了好幾回代碼重構的活,真的是苦不堪言。架構

最後還想說一句,無論你是從事哪一個領域的開發,必定要專,把本身的領域吃透。最忌諱一山望着一山高,什麼都學什麼都不精,白白浪費本身的寶貴時間。分佈式

相關文章
相關標籤/搜索