程序員能力的四個境界
37 2017-04-14
南寧達內:程序員能力的四個境界
1無意識無能力(不知道自己不知道)
這個時候是剛開始接觸編程到編程有差不多一年左右的時間,大多數(shù)這個時候在大學生涯,年少輕狂,激情四射,學習起來超級有干勁,尤其當自己知道一個個編程法則,寫出很自己認為很牛逼的程序,研究過高深的算法,做過幾個項目,覺得編程很簡單。我當初就是這樣的,在大學的時候會用spring,hibernate,tapestry(貌似這個不是很流行),struts做過兩個中型項目,學習過設計模式,部署過ejb,看過soa相關的皮毛知識,覺得自己無敵了,都不知道學習什么了,覺得所有框架都會用了,好牛逼啊,不知道自己學習啥子了。
2有意識無能力(知道自己不知道)
這個階段應該是編碼超過一年,接觸過比較大型的項目,在工作中遇到一些自己無法獨立解決的問題。會經(jīng)常請教一些前輩們。對于編程,知其然,不知其所以然。這個時候大概應該參加工作了,因為工作過程中會遇到很多在校園里面無法遇到的技術問題,比如性能,可用性等等。這個時候沒有當初的那種輕狂,開始虛心學習,研究事物的本質。我在剛工作3個月時候,才發(fā)現(xiàn)自己水平很菜。雖然會用spring,但是無法領會其精髓。以前做的項目都是自己搭建工程的,而公司有一套標準化的開發(fā),測試,打包,構建工具。開始接觸越來越多的技術,遇到很多無法獨立解決的問題。這個時候感覺自己的成長很快,慢慢開始走上職業(yè)程序員之路。
3有意識有能力(知道自己知道)
經(jīng)過有意識無能力的階段,這個時候,由于自己接觸的東西已經(jīng)非常多,職業(yè)水平已經(jīng)達到一個臺階。經(jīng)歷過幾千小時的編碼生涯,解決過各種棘手的技術問題,對于遇到的大多數(shù)問題都知道其發(fā)生的原因以及解決方案。在這個階段里面,已經(jīng)是一個很有水平的程序員,能夠獨立解決自己遇到過的所有問題。我在公司的前幾年,正好遇到公司的快速發(fā)展,公司的技術架構經(jīng)歷了巨大的變化,從單系統(tǒng)架構到分布式架構,從單系統(tǒng)發(fā)展到上百系統(tǒng),日獨立PV從幾十W發(fā)展到接上億,每天上億的交易數(shù)據(jù)。這個階段自己在編碼技巧,設計模式,消息中間件,分布式系統(tǒng)設計,領域驅動設計,集群,數(shù)據(jù)庫拆分,架構設計都有很大提升?;旧夏軌蚪鉀Q遇到所有的問題。
4無意識有能力(不知道自己知道)
這個階段就是融會貫通的時候。如果說第三個階段是能夠解決自己遇到的所有問題,這個階段就是能夠解決他人遇到的但是自己還沒有碰到的問題。這個階段就是抽象思維能力不斷提高能夠達到的境界。如果說第三個階段能夠解決某一個問題。這個階段能夠解決某一類問題。能夠把自己在第三階段遇到的問題抽象化一類問題,例如如何解決一個系統(tǒng)的性能問題。我最近在做ios相關的開發(fā),自己之前從未學習過objectivec,但是因為對java底層實現(xiàn)以及設計模式和mvc設計了解,對cocoa中UIKit設計圖看一下就知道大概是如何實現(xiàn)的了。還有就是目前比較火爆的函數(shù)式編程的高階函數(shù)和java中的模板模式與回調機制有點類似。這就是融匯貫通的結果。目前覺得個人能力已經(jīng)基本在這個階段。
掃一掃
獲取更多福利
獵學網(wǎng)企業(yè)微信
獵學網(wǎng)訂閱號
獵學網(wǎng)服務號