算法:相信大家對算法肯定不陌生(但其實絕大多數開發人員對這個非常陌生且抗拒),因為從學校沒畢業開始就已經被算法折磨了,哈哈
設計模式:愛學習的開發人員對這個也不會陌生,是些到了一定工作階段必須學的思想以及解決問題的通用方法
企業應用架構模式:Martin Fowler所著,其實從難度上講,比不上設計模式,只是內容較多,更加實際且更加符合人類的理解
架構模式:最著名的資料是POSA那幾本書,講的是雲里霧里,看這本書時,設計模式那點難度根本就不叫難度,哈哈,看起來極其痛苦,但是又非常快樂(哈哈,這就要看看書的人了)
在這些概念當中,個人認為架構模式以及算法是比較難的,如果只能選擇一個,我就選算法為最難,所以攜程才招了一幫博士搞算法,因為其他的都能慢慢搞懂,唯獨算法是需要真正長久專研下去的,能夠達到非常深奧。
題外話:像這些概念其實都80、90年代就已經出現了,可惜,我們卻剛開始研究人家的東西,悲哀啊。
很多人認為
- 算法用不到,所以不用學
- 架構模式不就分層嘛,地球人都會
其實不然,memcache是怎么發明的?操作系統的調度算法怎么實現的?為啥這么實現而不是那樣實現?有和依據?為什么加了數據庫的索引后搜索能飛快?為什么加了這個索引卻沒有用?為什么大規模文本搜索時要用Lucene來搜索,而不是sql server或者oracle?
這些為什么后面大部分是由算法和架構決定的,絕不是簡單的分層架構。
希望廣大的開發人員能關注這些,中國的研發需要中國程序員。