文章來源:網(wǎng)絡
各位,今天看了一篇文章寫的是編程能力的4種境界,感覺還可以,就拿出來與大家分享一下,希望對大家有所啟發(fā)和幫助。
人類心理學研究中的一個基礎支撐科目就是分析人的潛意識和意識?,F(xiàn)代心理學上一直試圖通過觀察一個人能夠在這個冰山上打多深的孔來分析一個人能夠什么程度的掌握一種技能。
我們可以把我們自己描述成一個冰山。 冰山的尖端,唯一能從水面看到的一部分,可以當作是我們的的意識。 它是有邏輯、有組織的,我們可以控制它,但這部分很小。 這龐大的水下的部分是我們的意識不到的。 它們是無組織、無邏輯、無關聯(lián)的,但它們卻能決定我們的行為特征。
人們把一個人能夠到達的能力描述成四個階段。 這篇文章里,我將試圖把這種分類應用的我們每天都會應用的技能上,它就是編程。
▍階段一:無意識,無能力
約翰是一個年輕的網(wǎng)站開發(fā)者。他以前是一個法律科的學生,但是他認為他的前途不在這方面,所以他眼睛一轉,做了轉行的決定。 他曾經(jīng)幫他的朋友修過計算機,而且很成功,所以他認為這方面應該都很容易。 他很快找的了一些能夠讓他學習這些工作的地方(當然,都是靠近他家的地方)。 六個月后,他開始聲稱自己是個網(wǎng)站專家了,他的簡歷上已經(jīng)列舉了不少編程語言、應用程序,以及開發(fā)平臺。
約翰,實際上,是一個冷酷的“拷貝/粘貼”者。他以為能夠成功的顯示一個windows提示框,就表示對Javascript已經(jīng)掌握了。PHP? 簡單:他成功的安裝了Wordpress。Linux? 他從LiveCD上啟動了Ubuntu系統(tǒng),他能夠搭建一個Apache負載均衡集群服務器。他的意識告訴他,他已經(jīng)無所不知了。
問題就在于,約翰沒有意識到他可以學到更多的東西,所以他就簡單的停止學習了。他一直處在一個氣泡中,他經(jīng)常訪問的在線論壇和郵件列表里有很多人都非常客氣的告訴他,他的問題在于他膚淺的知識,但沒有人能捅破他的氣泡。而且更悲哀的是,他在論壇里的能力值比你我加起來都高。
▍階段二:有意識的無能力
馬克是個數(shù)學老師。他在一個小鎮(zhèn)的大學里工作,他希望他的大學里能夠擁有至少是五倍于現(xiàn)有數(shù)量的資料庫。他知道在科技領域方面他的大學對于其他研究機構落后很多,所以他決定自己動手去做這個工作。他想建立一個在線平臺,能在社團里共享他們的課程。
馬克是天生的邏輯型的思維。他知道為了實現(xiàn)這個東西,他需要去做研究,搜集信息。他的搜索從維基百科開始,但最終在大量的瀏覽閱讀后他明白其實世界上已經(jīng)有不少團隊對他的這種問題提供了開源方案。
他從那些工程中選擇了一個最能滿足他的需求的一個。他開始著手閱讀網(wǎng)站上找到的文檔和手冊,最后他把源程序下載下來。他的興奮狀態(tài)逐步退去,因為他看到了’數(shù)據(jù)庫連接錯誤’。他試了又試,不止三次的檢查他的每一步驟,還是不成功。馬克并不惱怒,因為他知道自己在這個領域并不是專家。
他開始轉向它郵件列表平臺,在里面,他用他所知道的(其實很少)最精確的語言描述了他的問題。他提醒每個人,他并不清楚他所做的這個東西,所以,他希望能得到更多的文檔去閱讀,或人們給他提供這方面的提示。他不需要等待很久就能得到解決方案,因為他采取了正確的方法。
▍階段三:有意識的有能力
自從阿德拿起他的第一本HTML書至今已經(jīng)有兩年了。很顯然這是一條不歸路,對于阿德來說,每天思考的問題都是如何去提高自己喜愛的這個專業(yè)。在他拿起第一本書幾個月后他得到了他第一個作為自由工作者的身份開發(fā)一個網(wǎng)站的工作,他投入了極大的熱情,不管這個工作的薪酬有多低,這個工作有多基礎 (甚至是對于他的水平)。
他深信一點:最好的學習的方式就是堅持不懈,屢戰(zhàn)屢敗,屢敗屢戰(zhàn)。他經(jīng)常去研究如何以最好的方式執(zhí)行一個功能,因為他知道最好的代碼不是第一次就能獲得的。他必須去優(yōu)化代碼,他一遍又一遍的審查。他一次又一次的修正。
之后,他又給他自己寫了一個大概有30到40行的程序。幾天之后,他忍不住感到失望,因為他在上網(wǎng)時發(fā)現(xiàn)了一段更省事的、而且更簡潔的程序,代碼行數(shù)只有他的一半。他渴望知道何時他才能輕松的寫出如此高質量的代碼。然而,經(jīng)過一段思考之后,他開始分析他自己的代碼。他知道必須去重寫這些代碼,否則睡覺都不會安穩(wěn)。他不愿意去拷貝粘貼它們。
阿德正走在成為一個優(yōu)秀的專家的路上,但他不會給自己加上這個稱號,他愿意去等。
▍階段四:無意識的有能力
這是編程水平的終極階段。它不僅僅是知識積累的結果,更是一系列的邏輯規(guī)則在數(shù)年里慢慢的刻印到一個人的腦海里的結果。
我們面對這樣的一個人時不得不由衷的佩服他對如此復雜的問題能更如此輕松的應對。這種編程者看起來就像是能夠嗅出問題的解決方案,而不是思考出的。
優(yōu)化的編寫,可維護的、安全性的程序,應用各種設計模式,使用正確的開發(fā)工具組合,這些會自動的在他的工作中體現(xiàn)出來。這種人能夠輕松的使用多種語言在多種操作系統(tǒng)平臺上工作。
▍結束語
經(jīng)過閱讀上面的例子,我希望你能夠跟我一樣信服:心理學的這種分類模式用在我們這個特定的專業(yè)領域是有效的。
值得一提的是,一些作者提出第五種階段:成熟的有能力,定義為有能力去教育和傳承他所學的、甚至是還未意識到的知識。我們可以從一些才智超凡的人那里看到這些特征,他們可以教學和講解(甚至在大庭廣眾),這些很顯然是后天培養(yǎng)的技能。
你是哪種境界了?有什么感悟就在留言區(qū)分享一下吧。
-END-
免責聲明:整理文章為傳播相關技術,版權歸原作者所有,如有侵權,請聯(lián)系刪除
免責聲明:本文內(nèi)容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!