程序員:新手到專家的5個階段

程序員 Java 文章 科技 淺吟輕唱丫 2017-03-31

程序員需要不斷的學習

不僅僅是學習新技術,還包括應用的問題域,用戶的奇思妙想,同事的古怪習慣,行業的八卦新聞和項目演進的重要特徵

我們必須學習學習再學習,持續不斷的學習,然後把學習成果應用到解決日常遇到的一切新舊問題上


階段一:新手

新手在該技能領域經驗很少或者根本沒有經驗,這裡提到的經驗,指的是通過實施這項技術促進了思維的改變

舉個反例:

可能一個開發人員聲稱擁有十年經驗,但實際上只是一年的經驗重複了九次,那麼這不算是經驗

引申問題:

一年有365天,你是過了365天!還是隻過了一天,重複了365遍?

程序員:新手到專家的5個階段

新手

1.新手非常在乎他們能否成功,沒有太多經驗指導他們,他們不知道自己的行為是對是錯

2.新手不是特別的想要學習,他們只是想實現一個立杆見影的目標

3.他們不知道如何應對錯誤,所以出錯的時候,他們非常容易慌亂

以上是新手的明顯特徵,所以跨越新手有以下幾個步驟

程序員:新手到專家的5個階段

進階

1.渴望成功,但是不要太過於執著,急功近利往往是失敗的前兆,不急不躁的心態最好

2.沒有經驗就去尋找經驗,一個好的老師和一些優質的資源能夠迅速把有用的經驗傳遞給你

在親身累計經驗之前,逆向思考,尋找經驗才是核心和緊急目標

3.進行能力測試,可以利用第三方的題庫和測試流程,標準而大眾化的測試,同時也需要自我測評,比如完成一個項目,自己統計整體時間,自己撰寫時間軸日誌,自己判斷自己的詞彙量熟練度

自我測評是第三方無法完成的,這點尤其重要,簡單來說,也可以稱為自我認知,並且把數據可視化

4.興趣是最好的老師,沒有興趣也是可以培養的

想要一個立竿見影的目標其實並沒有錯,新手恰恰需要酷炫有趣有用的目標才培養自己的興趣,一個完整的小案例能夠把所學的知識點融會貫通

新手要做的,是一邊需要沉下心來學習零碎的知識點,一邊整合知識點做出一個完整的效果案例,兩相結合才能迅速進步

反之,一味的學習零散的知識點不去做案例,學的太多也只是空背概念而已,一味的追求項目效果而不去深入內容,那麼永遠不會進步,碰到一點改動就毫無辦法了

5.不知道如何應對錯誤沒關係,心態要冷靜,並且及時的把錯誤整理下來,學會處理錯誤的方法尤為重要,比如如何正確提問,比如高效引擎檢索,比如官方幫助手冊等,遇到錯誤並不可怕,可怕的是找到解決錯誤的辦法

階段二:高級新手

高級新手能夠多多少少擺脫固定的規則

程序員:新手到專家的5個階段

高階新手

1.他們可以獨自嘗試任務,但仍難以解決問題

2.他們想要快速的獲取信息例如,當學習一門新語言或者API時,你可能會感覺到這點,你發現自己會快速瀏覽文檔以尋找一個方法或參數列表,你不想在此尋根究底,或者重溫一遍基礎知識

3.高級新手能夠根據過往的經驗,逐步在正確的情境中採納建議,但比較吃力,同時,他們能夠形成一些總體原則,但不是全貌,他們沒有全面的理解,而且的確不想有

以上是高級新手的明顯特徵,所以跨越高級新手有以下幾個步驟

程序員:新手到專家的5個階段

效率

1.思考難以解決問題的原因所在,是哪個地方限制了你解決問題的能力?

這一點與你個人的現狀有關,你正在學習的技術棧,你所做的項目,你的綜合能力和資源

簡單的說具體問題具體討論,你必須對問題有深刻的認知並且對自己有足夠的瞭解

2.在這個追求效率的時代,要去思考和學習底層原理,是一件很難的事情,因為時間不允許

事實上絕大多數事物的不成功,就是沒有足夠的時間

在時間的維度上,再無知的新手也有一個寬泛的座標,那就是尋找一個參數方法的時間和解析一個參數方式的時間都大致明確的

比如找到並使用某個參數方法大概需要2分鐘-10分鐘,正常情況是5分鐘,而解析一個方法原理,需要的時間是不確定的,確定的是大於等於10分鐘,可能是30分鐘,也可能是幾個小時,這與效率不符,從利益上看也不划算

尋根究底是需要的,但它的重要等級排列在熟練了解全局內容之後

重溫知識點也是如此

3.高級新手在一個熟練的框架裡有所經驗,有所作為,但是換了一個框架,複用原來的知識,就顯得生澀了

在學習的過程中,要不斷的舉一反三,一個例子刻意練習三遍以上,一個例子做出不同的三種效果,一個例子應用在三種不同的情境等等等,學會觸類旁通

階段三:勝任者

程序員:新手到專家的5個階段

領導者

在第三階段,從業者現在能夠建立問題的概念模型,並有效的使用它們

他們可以獨立的解決自己遇到的問題,並開始考慮如何解決新的問題——那些他們之前沒有遇到的問題

你可能會看到,處在這一水平的人通常被認為有主動性和足智多謀

他們往往在團隊中發揮領導作用(無論是否有正式的頭銜),他們是團隊裡的好人,既可以指導新手,也不會經常騷擾專家

以上是勝任者的明顯特徵,所以跨越勝任者有以下幾個步驟

程序員:新手到專家的5個階段

教學

1.教是最好的學,當你可以勝任工作,可以獨自解決大部分問題,已經比較完善

這個時候要追求知識的深度,想要進一步提升,就需要整合以前所有學習的內容,資源以及學習方法,在底層原理上,還有很多需要融匯貫通的地方,通過教授新人和他人,能夠完善自己的知識體系,找到自己的薄弱點,以另一個層面的角度來重新調整視野

2.學習與之相關的領域,這些內容你不一定會用到,或者不是在你的職責範圍之內,但是學習之後會讓你的本職做的更好,讓你的知識更加全面

前端勝任之後,可以適當學習後端,也可以適當學習UI,往全棧的方向,學了python之後,也可以學學java,瞭解不同語言之間的優點和缺點,運用不同的內容適當的解決問題

對比思維,左右辯證,看似把時間花費在精通之外,實際上效果一樣會反饋到核心事物上

廣度和深度是一個選擇題,在時間上,只能二選一,適度就行

階段四:精通者

程序員:新手到專家的5個階段

精通

精通者有足夠的經驗,他們知道下一步會發生什麼,如果沒有發生又需要什麼

他們非常明確哪些計劃需要取消,而應該採取什麼行動

處於精通者的人更像是初級專家,而不是高級勝任者

1.精通者一定是身經百戰,給一個項目,他能在一開始就判斷出這個項目需要多長時間,分為那幾個步驟,需要什麼人員

從一開始就是瞭然於胸,排除可能出現的錯誤,剩下的只是按部就班的走正確的流程就好,達到高效,高質量,少錯誤的效果

這個階段的人,已然有了質的變化,想要如何往上躍遷,還需要另外的質的改變

階段五:專家

程序員:新手到專家的5個階段

專家

終於我們來到第5個也是最後一個階段:專家

專家是各個領域知識和信息的主要來源

他們總是不斷的尋找更好的方法和方式去做事

他們有豐富的經驗,可以在恰當的情境中選取和應用這些經驗

他們著書,寫文章,做巡迴演講,他們是當代的巫師

思考:

1.自我測評,你處在哪一個階段?

2.如何做才能提升到下一個階段?

3.針對你的行業,細分階級,比如十個階級?哪十個階級?

相關推薦

推薦中...