很多人非常關心普通的程序員和大神級的程序員,兩者之間的區別究竟有多大。
我覺得可以從工程師的等級、思維方式以及知識體系三個方面闡述這個問題。
首先,客觀的工程師等級分類。
我引用吳軍博士關于工程師五個等級的分類。
第五級:能獨立解決問題,完成工程工作。
第四級:能指導和帶領其他人一同完成更有影響力的工作。
第三級:能獨立設計和實現產品,并且在市場上獲得成功。
第二級:能設計和實現別人不能做出的產品,也就是說他的作用很難取代。
第一級:開創一個產業。
可以看出,隨著等級的不斷提升,從獨立解決問題,到開創一個產業,從本質上來說,區別在于是否有足夠的影響力影響到更多的人,以及承擔更多的職責。
真正的大師不是自己個人是大師,而是讓更多的普通人成為大師。
第二,思維方式的不同。
普通的程序員可以看到工程項目的當前一隅,大神級程序員不僅能夠搞定當前的技術難題,提出更多的可復制的改進方法,更能夠應對未來更多的難題,不斷總結經驗教訓,將視野投注到宏觀上。
如果說普通程序員活在過去,或者是活在當下,那么大神級別的程序員則是活在未來,不斷思考未來的技術難題。
我們一直在問自己一個問題,五年之后技術會發展到何種地步,如何運用五年之后的整體技術架構去更好地服務于客戶。這些思考看上去有點虛無縹緲,不切實際,但是在當前這個未來以來是社會和世界,多思考一步,多行動與實踐一步,也就有機會多成長一步。
第三,知識體系不同。
總是談代碼如何寫的程序員,可能是一個好的程序員,但往往無法成為頂尖的程序員。
在代碼之外,還有許多信息工程、軟件工程需要掌握的知識。
編程其實是一件比較復雜的事情,因為你以為自己編寫的代碼運行正常,其實機器的邏輯不是你簡單想得那樣。即使是馬丁福勒這樣的大神,也沒有把握保證編寫的代碼能夠沒有八阿哥。
所以,要有足夠的耐心進行調試,不斷的吸取新的技術知識,并且運用數學思維、物理、邏輯、生物學等跨學科思維去幫助自己更好的解決技術上的難題。
大神級別的程序員,往往有著普通程序員所沒有的知識維度、對技術的理解力與深度。
總結一下。
我分別從工程師的等級、思維方式以及知識體系三個方面闡述我所理解的普通程序員與大神級程序員的不同,希望對你有所幫助。
最后,對于技術,沒有快速精通,只有快速入門。
無它,唯手熟爾。