無意中看到程序員雜志中 關于編程的四個境界,覺得非常有意思,也比較有道理,想想自己也是這么過來的
1 無意識無能力(不知道自己不知道
這個時候是剛開始接觸編程到編程有差不多一年左右的時間,大多數這個時候在大學生涯,年少輕狂,激情四射,學習起來超級有干勁,尤其當自己知道一個個編程法則,寫出很自己認為很牛逼的程序,研究過高深的算法,做過幾個項目,覺得編程很簡單。我當初就是這樣的,在大學的時候會用 spring,hibernate,tapestry(貌似這個不是很流行),struts做過兩個中型項目,學習過設計模式,部署過ejb,看過soa相關的皮毛知識,覺得自己無敵了,都不知道學習什么了,覺得所有框架都會用了,好牛逼啊,不知道自己學習啥子了。
2 有意識無能力(知道自己不知道)
這個階段應該是編碼超過一年,接觸過比較大型的項目,在工作中遇到一些自己無法獨立解決的問題。會經常請教一些前輩們。對于編程,知其然,不知其所以然。這個時候大概應該參加工作了,因為工作過程中會遇到很多在校園里面無法遇到的技術問題,比如性能,可用性等等。這個時候沒有當初的那種輕狂,開始虛心學習,研究事物的本質。我在剛工作3個月時候,才發現自己水平很菜。雖然會用spring,但是無法領會其精髓。以前做的項目都是自己搭建工程的,而公司有一套標準化的開發,測試,打包,構建工具。開始接觸越來越多的技術,遇到很多無法獨立解決的問題。這個時候感覺自己的成長很快,慢慢開始走上職業程序員之路。
3 有意識有能力(知道自己知道)
經過有意識無能力的階段,這個時候,由于自己接觸的東西已經非常多,職業水平已經達到一個臺階。經歷過幾千小時的編碼生涯,解決過各種棘手的技術問題,對于遇到的大多數問題都知道其發生的原因以及解決方案。在這個階段里面,已經是一個很有水平的程序員,能夠獨立解決自己遇到過的所有問題。我在公司的前幾年,正好遇到公司的快速發展,公司的技術架構經歷了巨大的變化,從單系統架構到分布式架構,從單系統發展到上百系統,日獨立PV從幾十W發展到接上億,每天上億的交易數據。這個階段自己在 編碼技巧,設計模式,消息中間件,分布式系統設計,領域驅動設計,集群,數據庫拆分,架構設計 都有很大提升?;旧夏軌蚪鉀Q遇到所有的問題。
4 無意識有能力(不知道自己知道)
這個階段就是融會貫通的時候。如果說第三個階段是能夠解決自己遇到的所有問題,這個階段就是能夠解決他人遇到的但是自己還沒有碰到的問題。這個階段就是抽象思維能力不斷提高能夠達到的境界。如果說第三個階段能夠解決某一個問題。這個階段能夠解決某一類問題。能夠把自己在第三階段遇到的問題抽象化一類問題,例如如何解決一個系統的性能問題。我最近在做ios相關的開發,自己之前從未學習過objective c,但是因為對java底層實現以及設計模式和mvc設計了解,對cocoa 中UIKit設計圖看一下就知道大概是如何實現的了。還有就是目前比較火爆的 函數式編程的高階函數 和 java中的模板模式與 回調機制有點類似。這就是融匯貫通的結果。目前覺得個人能力已經基本在這個階段。
ps:看到很多吐槽,其實真的木有必要,你在哪個階段,是現在的你對于自己的認知情況。隨著自己的越來越了解,可能階段也會發生變化。這個階段本來就比較主觀的。其實程序員最關鍵的是需要思考,就好比,如果你覺得你真的達到第四個階段,那你后續還需要提升的是什么?程序員限定的范圍是什么?程序員的職責是什么,程序員未來的發展是什么?只有不斷的思考,才會脫離這個階段之爭。有一些程序員是可以成為項目經理,有一些程序員可以架構師,有一些程序員可以成為科學家,但是他們不一定真的是編碼高手,所以不能狹隘的認為程序員就是coder!
-
程序員
+關注
關注
4文章
952瀏覽量
29799
發布評論請先 登錄
相關推薦
評論