程序員需要不斷的學(xué)習(xí)
不僅僅是學(xué)習(xí)新技術(shù),還包括應(yīng)用的問題域,用戶的奇思妙想,同事的古怪習(xí)慣,行業(yè)的八卦新聞和項目演進(jìn)的重要特征
我們必須學(xué)習(xí)學(xué)習(xí)再學(xué)習(xí),持續(xù)不斷的學(xué)習(xí),然后把學(xué)習(xí)成果應(yīng)用到解決日常遇到的一切新舊問題上
階段一:新手
新手在該技能領(lǐng)域經(jīng)驗很少或者根本沒有經(jīng)驗,這里提到的經(jīng)驗,指的是通過實施這項技術(shù)促進(jìn)了思維的改變
舉個反例:
可能一個開發(fā)人員聲稱擁有十年經(jīng)驗,但實際上只是一年的經(jīng)驗重復(fù)了九次,那么這不算是經(jīng)驗
引申問題:
一年有365天,你是過了365天!還是只過了一天,重復(fù)了365遍?
1.新手非常在乎他們能否成功,沒有太多經(jīng)驗指導(dǎo)他們,他們不知道自己的行為是對是錯
2.新手不是特別的想要學(xué)習(xí),他們只是想實現(xiàn)一個立桿見影的目標(biāo)
3.他們不知道如何應(yīng)對錯誤,所以出錯的時候,他們非常容易慌亂
以上是新手的明顯特征,所以跨越新手有以下幾個步驟
1.渴望成功,但是不要太過于執(zhí)著,急功近利往往是失敗的前兆,不急不躁的心態(tài)最好
2.沒有經(jīng)驗就去尋找經(jīng)驗,一個好的老師和一些優(yōu)質(zhì)的資源能夠迅速把有用的經(jīng)驗傳遞給你
在親身累計經(jīng)驗之前,逆向思考,尋找經(jīng)驗才是核心和緊急目標(biāo)
3.進(jìn)行能力測試,可以利用第三方的題庫和測試流程,標(biāo)準(zhǔn)而大眾化的測試,同時也需要自我測評,比如完成一個項目,自己統(tǒng)計整體時間,自己撰寫時間軸日志,自己判斷自己的詞匯量和熟練度等
自我測評是第三方無法完成的,這點尤其重要,簡單來說,也可以稱為自我認(rèn)知,并且把數(shù)據(jù)可視化
4.興趣是最好的老師,沒有興趣也是可以培養(yǎng)的
想要一個立竿見影的目標(biāo)其實并沒有錯,新手恰恰需要酷炫有趣有用的目標(biāo)才培養(yǎng)自己的興趣,一個完整的小案例能夠把所學(xué)的知識點融會貫通
新手要做的,是一邊需要沉下心來學(xué)習(xí)零碎的知識點,一邊整合知識點做出一個完整的效果案例,兩相結(jié)合才能迅速進(jìn)步
反之,一味的學(xué)習(xí)零散的知識點不去做案例,學(xué)的太多也只是空背概念而已,一味的追求項目效果而不去深入內(nèi)容,那么永遠(yuǎn)不會進(jìn)步,碰到一點改動就毫無辦法了
5.不知道如何應(yīng)對錯誤沒關(guān)系,心態(tài)要冷靜,并且及時的把錯誤整理下來,學(xué)會處理錯誤的方法尤為重要,比如如何正確提問,比如高效引擎檢索,比如官方幫助手冊等,遇到錯誤并不可怕,可怕的是找到解決錯誤的辦法
階段二:高級新手
高級新手能夠多多少少擺脫固定的規(guī)則
1.他們可以獨自嘗試任務(wù),但仍難以解決問題
2.他們想要快速的獲取信息例如,當(dāng)學(xué)習(xí)一門新語言或者API時,你可能會感覺到這點,你發(fā)現(xiàn)自己會快速瀏覽文檔以尋找一個方法或參數(shù)列表,你不想在此尋根究底,或者重溫一遍基礎(chǔ)知識
3.高級新手能夠根據(jù)過往的經(jīng)驗,逐步在正確的情境中采納建議,但比較吃力,同時,他們能夠形成一些總體原則,但不是全貌,他們沒有全面的理解,而且的確不想有
以上是高級新手的明顯特征,所以跨越高級新手有以下幾個步驟
1.思考難以解決問題的原因所在,是哪個地方限制了你解決問題的能力?
這一點與你個人的現(xiàn)狀有關(guān),你正在學(xué)習(xí)的技術(shù)棧,你所做的項目,你的綜合能力和資源
簡單的說具體問題具體討論,你必須對問題有深刻的認(rèn)知并且對自己有足夠的了解
2.在這個追求效率的時代,要去思考和學(xué)習(xí)底層原理,是一件很難的事情,因為時間不允許
事實上絕大多數(shù)事物的不成功,就是沒有足夠的時間
在時間的維度上,再無知的新手也有一個寬泛的坐標(biāo),那就是尋找一個參數(shù)方法的時間和解析一個參數(shù)方式的時間都大致明確的
比如找到并使用某個參數(shù)方法大概需要2分鐘-10分鐘,正常情況是5分鐘,而解析一個方法原理,需要的時間是不確定的,確定的是大于等于10分鐘,可能是30分鐘,也可能是幾個小時,這與效率不符,從利益上看也不劃算
尋根究底是需要的,但它的重要等級排列在熟練了解全局內(nèi)容之后
重溫知識點也是如此
3.高級新手在一個熟練的框架里有所經(jīng)驗,有所作為,但是換了一個框架,復(fù)用原來的知識,就顯得生澀了
在學(xué)習(xí)的過程中,要不斷的舉一反三,一個例子刻意練習(xí)三遍以上,一個例子做出不同的三種效果,一個例子應(yīng)用在三種不同的情境等等等,學(xué)會觸類旁通
階段三:勝任者
在第三階段,從業(yè)者現(xiàn)在能夠建立問題的概念模型,并有效的使用它們
他們可以獨立的解決自己遇到的問題,并開始考慮如何解決新的問題——那些他們之前沒有遇到的問題
你可能會看到,處在這一水平的人通常被認(rèn)為有主動性和足智多謀
他們往往在團(tuán)隊中發(fā)揮領(lǐng)導(dǎo)作用(無論是否有正式的頭銜),他們是團(tuán)隊里的好人,既可以指導(dǎo)新手,也不會經(jīng)常騷擾專家
以上是勝任者的明顯特征,所以跨越勝任者有以下幾個步驟
1.教是最好的學(xué),當(dāng)你可以勝任工作,可以獨自解決大部分問題,已經(jīng)比較完善了
這個時候要追求知識的深度,想要進(jìn)一步提升,就需要整合以前所有學(xué)習(xí)的內(nèi)容,資源以及學(xué)習(xí)方法,在底層原理上,還有很多需要融匯貫通的地方,通過教授新人和他人,能夠完善自己的知識體系,找到自己的薄弱點,以另一個層面的角度來重新調(diào)整視野
2.學(xué)習(xí)與之相關(guān)的領(lǐng)域,這些內(nèi)容你不一定會用到,或者不是在你的職責(zé)范圍之內(nèi),但是學(xué)習(xí)之后會讓你的本職做的更好,讓你的知識更加全面
前端勝任之后,可以適當(dāng)學(xué)習(xí)后端,也可以適當(dāng)學(xué)習(xí)UI,往全棧的方向,學(xué)了python之后,也可以學(xué)學(xué)java,了解不同語言之間的優(yōu)點和缺點,運用不同的內(nèi)容適當(dāng)?shù)慕鉀Q問題
對比思維,左右辯證,看似把時間花費在精通之外,實際上效果一樣會反饋到核心事物上
廣度和深度是一個選擇題,在時間上,只能二選一,適度就行
階段四:精通者
精通者有足夠的經(jīng)驗,他們知道下一步會發(fā)生什么,如果沒有發(fā)生又需要什么
他們非常明確哪些計劃需要取消,而應(yīng)該采取什么行動
處于精通者的人更像是初級專家,而不是高級勝任者
1.精通者一定是身經(jīng)百戰(zhàn),給一個項目,他能在一開始就判斷出這個項目需要多長時間,分為那幾個步驟,需要什么人員
從一開始就是了然于胸,排除可能出現(xiàn)的錯誤,剩下的只是按部就班的走正確的流程就好,達(dá)到高效,高質(zhì)量,少錯誤的效果
這個階段的人,已然有了質(zhì)的變化,想要如何往上躍遷,還需要另外的質(zhì)的改變
階段五:專家
終于我們來到第5個也是最后一個階段:專家
專家是各個領(lǐng)域知識和信息的主要來源
他們總是不斷的尋找更好的方法和方式去做事
他們有豐富的經(jīng)驗,可以在恰當(dāng)?shù)那榫持羞x取和應(yīng)用這些經(jīng)驗
他們著書,寫文章,做巡回演講,他們是當(dāng)代的巫師
思考:
1.自我測評,你處在哪一個階段?
2.如何做才能提升到下一個階段?
3.針對你的行業(yè),細(xì)分階級,比如十個階級?哪十個階級?