
參加全棧營已有一個(gè)多月,過年在家的兩個(gè)星期里,狀態(tài)有所松懈,又開始要掉隊(duì)了。
在過去的一個(gè)月學(xué)習(xí)過程中,按照Xdite老師的指導(dǎo),跟著教程反復(fù)練習(xí),再加上Job-Listing的魔改嘗試,居然做出了個(gè)有點(diǎn)模樣的網(wǎng)站,以此慢慢克服了對(duì)代碼的恐懼,甚至開始熱愛上了編程這樣的一件事情。
2017年2月6號(hào)的課上,Xdite 又給我們打了一針雞血。
學(xué)習(xí)編程,從入門到精通究竟需要多久?
作家格拉德威爾在《異類》一書中指出:人們眼中的天才之所以卓越非凡,并非天資超人一等,而是付出了持續(xù)不斷的努力。1萬小時(shí)的錘煉是任何人從平凡變成超凡的必要條件。
我們都聽說過這個(gè)一萬小時(shí)定律, 要成為某個(gè)領(lǐng)域的專家,需要10000小時(shí),按比例計(jì)算就是:如果每天工作八個(gè)小時(shí),一周工作五天,那么成為一個(gè)領(lǐng)域的專家至少需要五年。
要這么久,五年太長,一萬小時(shí)是針對(duì)專家的標(biāo)準(zhǔn),那如果我不想成為專家,只想成為一名合格的普通程序猿,能大致實(shí)現(xiàn)我想做的網(wǎng)站項(xiàng)目,或者說能達(dá)到足夠應(yīng)付編程崗位的工作,那需要多長的時(shí)間呢?
這里不得不再提“德雷斯模型”。
“德雷福斯模型”分為五個(gè)成長階段:

新手(Novice)
- 經(jīng)驗(yàn)很少,或只是沒有經(jīng)驗(yàn)。
- 打算找到一本絕世秘籍,覺得看完就能成為高手。
- 事實(shí)上他們也只能靠SOP。
- 輸入 X => 得到 Y。
SOP即標(biāo)準(zhǔn)作業(yè)程序(Standard Operating Procedures),即通過別人寫好的標(biāo)準(zhǔn)教程來實(shí)現(xiàn):輸入X 達(dá)到輸出Y 的效果。新手就是這樣通過實(shí)踐別人的教程來達(dá)到目的,但缺乏經(jīng)驗(yàn)與思考,積累不夠。
高級(jí)新手(Advanced Beginner )
- 了解基本規(guī)則
- 會(huì)闡釋用現(xiàn)有規(guī)則去解決問題
- 變成想快速找到能夠解決問題的答案
- 對(duì)宇宙觀(原理)不感興趣
- 教他們基礎(chǔ),還是會(huì)被忽略掉
- 至少能夠獨(dú)立解決許多基本問題
高級(jí)新手盡管忽略了很多背后基礎(chǔ)的原理,但這個(gè)層次已經(jīng)具有了一定的經(jīng)驗(yàn),解決問題的能力大幅提升,高級(jí)新手這樣的程度也可以獨(dú)立地debug一些小問題。
勝任者(Competent)
- 經(jīng)驗(yàn)夠多到可以把規(guī)則融合起來變成模型
- 可以獨(dú)立解決自己遇到的問題
- 或者是之前沒遇到的問題
- 去找答案
- 去找專家
勝任者可以總結(jié)出自己經(jīng)驗(yàn)、方法,以獨(dú)立解決沒遇到過的問題。勝任者不僅能解決問題,還能發(fā)現(xiàn)新的問題,他們遇到問題的時(shí)候能夠?qū)栴}層層肢解,并相應(yīng)解決。
精通者(Proficient)
- 可以自己提煉出一般的指導(dǎo)架構(gòu)與方法
- 可以判斷大部分情況的可能性
- 并且針對(duì)各種可能性設(shè)計(jì)解法
- 整體視角思考
- 熟練運(yùn)用pattern
精通者可以自己總結(jié)套路,熟練運(yùn)用套路。精通者對(duì)自己所處的技術(shù)領(lǐng)域具有全局思維,能夠充分理解情景,把握情景的細(xì)節(jié),自如地運(yùn)用所掌握的技能,能夠通過有效的反饋與思考調(diào)整自己并不斷進(jìn)步。
專家(Expert)
- 可以用直覺去面對(duì)未知問題
- 推進(jìn)該學(xué)科前沿
- 跨領(lǐng)域融合創(chuàng)造新的火花
專家有時(shí)候可以用直覺揣測你的疑問,知你所想,你連問題都問不清楚的時(shí)候,專家就可以“你是不是想問....”, 如此幫你提問幫你解答。
專家將所有的情境和方法都內(nèi)化,融匯貫通,專家解決問題更多是根據(jù)他們的直覺。
專家可以多維度跨界整合創(chuàng)新,比如既會(huì)編程,又會(huì)項(xiàng)目管理,那就機(jī)會(huì)成為很厲害的項(xiàng)目經(jīng)理。
很令人意外的是,幾乎在各領(lǐng)域,這五種類型的人中,最多的不是新手,不是勝任者,而是高級(jí)新手。
- 超過50%的人只有高級(jí)新手水平
- 幾乎絕大多數(shù)工作,不會(huì)超過勝任者階段
- 精通者的比例大概是該領(lǐng)域的10%
- 專家人數(shù)大概是該領(lǐng)域的1%以下
如果是需要學(xué)到求職的程度,那需要達(dá)到什么水平呢,事實(shí)上,絕大多數(shù)工作只需要高級(jí)新手的水平。在各大互聯(lián)網(wǎng)公司,BAT可能是需要很多的精通者和專家,但是絕大多數(shù)普通的互聯(lián)網(wǎng)公司只需要?jiǎng)偃握咭韵碌某绦騿T。
通常一個(gè)程序員:
- 第一年新手(初級(jí)工程師)
- 第2-3年 高級(jí)新手(工程師)
- 第3-5年 勝任者、精通者(資深工程師、架構(gòu)師)
- 專家
一個(gè)領(lǐng)域內(nèi),絕大多數(shù)的從業(yè)者都只有高級(jí)新手的水平。在編程領(lǐng)域里,從入門到精通需要多久我們不知道,但如果只是想快速成為高級(jí)新手,通過練習(xí)專家設(shè)計(jì)的高頻小套路,你不需要4000小時(shí),或許只需要400小時(shí)以下。
學(xué)習(xí)Ruby on Rails 剛?cè)腴T一個(gè)月,我尚且還在新手的階段,但也看到了成為高級(jí)新手的希望,現(xiàn)在還是老老實(shí)實(shí)積累實(shí)踐,總結(jié)經(jīng)驗(yàn),反復(fù)練習(xí)高手所教授的套路吧。
學(xué)習(xí)編程是一樣非常耗費(fèi)時(shí)間精力的事情,但同時(shí)也十分有趣,開始了就停不下來,雖然前期的積累很緩慢,但我也認(rèn)同它跟英語、寫作一樣,是一件值得長期學(xué)習(xí)的事情,是一件未來價(jià)值很大的事情,是一件能夠產(chǎn)生復(fù)利效應(yīng)的事情,是一件很容易跨界多維度打造競爭力的事情。
保持學(xué)習(xí)的熱情不容易,在這個(gè)階段同時(shí)分心學(xué)太多其他的課程可能精力不夠,此時(shí)要保持絕對(duì)的專注放棄一些別的同時(shí)兼顧的事情,不然再次入坑,再次由入門到放棄。
打得好一針雞血!
共勉!