一些人認為,掌握一門計算機語言,會編寫幾行代碼並且能都讓這些代碼在計算機上運行起來的人,就可以稱之為程序員,事實上,軟件行業裡,要成為真正意義上的程序員,對得起programer 這個稱號,還是要花費一番功夫的。
在成為程序員的路上,要經歷四個坎坷,我們可以用四個境界來標明他們。
方法/步驟
第一境界,就是掌握一門或者幾門編程語言,會模仿例子來實現程序代碼,並且讓代碼在計算機系統中成功運行起來。達到這個境界的人還不能算是真正意義上的程序員,而僅僅是掌握了一種或者幾種工具的工匠,他們中熟練者能夠快速現成的例子,以實現自己或者用戶需要的軟件模塊。
第一境界的特質是對語言工具的掌握,在這個境界的高手,會強調自己對語言如何熟練,因此這個境界可以稱之為“知器”。
第二境界,在這個境界裡,我們要學的是分解問題和推理的技巧,學會用邏輯的語言來精確的表達一個命題。此時,軟件工作著掌握的是一種分析具體事物的方法,他們不再一味的模仿,而是開始對一個有一個具體問題進行思考並稱是用自己的方法來更好的解決。
在這個層次裡的“程序員”開始關注解決問題的思路,並關注分析和推理的數學技巧,他們中的優秀者熟知各種算法善用各種各樣的命題推理來 分析並解決問題。他們同樣善於借鑑前人的例子,但是在這個層次裡的人,對語言工具的認識比第一境界更加深刻,他們是真正知道如何利用手中語言工具的特點更 好的解決問題的人。但是他們並不會強調自己對於語言如何熟悉,也不熱衷於宣揚掌握如何如何多的語言,在他們眼裡,語言僅僅是一種工具而已,真正重要的是分 析問題的方法。
第二境界的特質是對具體問題的分析,在這個境界的高手,往往善於從具體問題中分析出合理有效的解決方法。因此這個境界可以稱之為“格物”。
第三境界,在這個境界中,我們要學習的是抽象思維和找出事物表象後面的規律。此時,軟件工作者不在對一件一件具體的事物來分析,而是嘗試理解事物表象下的本質,在這個層次裡的人,開始關注植物的共性,並且逐漸掌握歸納和總結的方法。“模式”開始出現在他們的頭腦裡。
第三境界的特質是對事物本質規律的認識,在這個境界的高手,往往能夠快速的抽象出問題的本質,從而用最適合的方法來解決問題。這個境界,我們稱之為“明理。
達到第三境界的人是天生的設計師,他們對問題本質的領悟能力幫助他們用又沒簡介的代碼來解決問題,他們的代碼中充滿設計思想。他們是真正能夠享受到程序設計藝術魅力並且充滿成就感的一群人。
第四境界,第三境界中的極優秀者,他們並不滿足於專家的地位和高薪,他們開始向第四境界艱難的前進。第四境界是程序設計領域的最高境界,要達到這個境界,只需要掌握一樣東西,然而這個東西並不是尋常之物,而是許多人窮盡一生也無法得到的,這個世界最為深邃的祕密。
這種東西,叫做“道”!
靜寂虛無中有奧祕,不靜不動,乃程序之源,無以明之,故曰:程序設計之道。若道至大,則操作系統至大;若操作系統至大,編譯程序亦然;若編譯程序至大,應用程序亦復如是。是以用著大悅,世之和諧存焉。 ——傑弗瑞.詹姆士
對第四境界的程序員來書,“思想”已經不再是很重要的東西,因為他們對程序本質的理解已經超越的問題的本身,在他們的代碼裡,有的只是 自然,現實和虛幻的邊界已經模糊,一個完美自治的系統在剎那間誕生,卻彷彿從亙古時刻起便存在著、運動著,從簡單而質樸的顧慮中涵蓋著世間萬物的本質。因 此,這個境界,我稱之為“成道”!