第1階段:機會
你很開心,你一直想學這個新的內容,比如說某編程語言,無論是規(guī)劃還是環(huán)境所迫,總之你終于有這個機會學習了。
第2階段:沒有根據(jù)地樂觀
谷歌搜索——挑選一兩個自己感興趣的教程,買資料和書,然后開始MOOC(大規(guī)模在線開放教程)。教程很有趣,甚至還有在線REPL,可以讓你玩耍,你覺得你正在進步中。當然也有煩惱——手指還不熟練,但你堅持,不肯放棄,并準備向你的第一個項目進軍。
第3階段:絕望的深坑
你開始從“Hello, World”延伸開去,例如,先是將內容更改為“Hola,Mundo”這樣小心翼翼的嘗試,然后膽子稍微肥了點,開始肆無忌憚了——于是乎,錯誤信息,堆棧跟蹤,隨機行為紛至沓來。即使不管所有的錯誤信息,那些能在教程中正常工作的代碼,也許你親自操刀的結果卻是一片空白。你恍然發(fā)現(xiàn),哪怕是一些看上去愚蠢但良性的細微差別,也會造成狂風暴雨,讓你陰溝里翻船,陷入絕望的深坑。即使是簡單的任務都讓你痛苦不已,你開始懷疑自己,懷疑自己其實壓根就沒有編程的天分。
第4階段:放低身段
慢慢地,通過試驗和錯誤的洗禮,通過向同事、StackOverflow、博客尋求幫助,你開始一點一滴地積累知識。你開始懂得如何顯示數(shù)據(jù),如何與數(shù)據(jù)庫進行交流,如何創(chuàng)建接口,如何覆蓋方法。雖然你還并不能真正理解上述任何一個的工作原理,但是在不斷掌握這些神奇的咒語,擴充知識領域的同時,完成一些特定的、必要的任務漸漸變得不在話下。對于有的咒語,你可能會用得非常順手,甚至在一些有問題的情況下也生搬硬套,覺得只要完成就好,哪怕內心明白自己這樣做并不對。調試是一種挫折鍛煉。無論是因為自我覺得目標已經實現(xiàn),計劃將時間放到其他地方,還是因為太難因此望而怯步,亦或是自詡已經掌握了專業(yè)知識從而做出了自認為理智的選擇,總而言之很多人止步于這一階段。
第5階段:黎明的到來
到了這一階段,由于你已經積蓄了足夠多的信息片段,于是開始能夠找到它們之間的連接。你開始能夠靈活應用知識,而不是像之前那樣生搬硬套。你對一些基本規(guī)則開始有所謂的直覺,開始從死板地遵守向接收知識轉變。這也是一個不均衡的過程——對這方面心意相通的同時可能仍然困惑于另一方面——但是你有信心一步一步地拿下,你開始享受這個過程。
第6階段:專業(yè)
一段時間以后,你完全掌握了基本模式,開始覺得編程就像吃飯那樣輕松自然。你已經可以直觀地了解事物的工作原理,并且在架構、編碼和調試之間輕松斡旋。一般說來你已經不必刻意地去思考問題,就像你從家里到商店去買東西——你知道怎么走,如果有一些新造的道路,你也能瞬間權衡不同的選項,并選出一條佳的路線。此時,碰到問題難的應該是問題本身,而不是操作系統(tǒng)來支持你想要它做什么事情。
第7階段:成就
你現(xiàn)在已經是一個有著多年經驗的專家了。你投入的時間和精力通通有了回報。你寫博客文章,助力開源項目,成為了同行中公認的專家。這儼然成為你的身份和榮譽,也成為了你的枷鎖,你的所作所為需要匹配專家這個名頭。突然有一天,新生事物出現(xiàn)了。你內心也明白,這個新事物很好,將會很有用,能幫助輕松解決現(xiàn)有工具不足以解決的問題,將會是未來的潮流。但與此同時,你清楚地知道成為專家所需要付出的努力和時間,需要再次感受不足和挫折,需要去向他人求助等等,你不愿意了,你退縮了。你寧愿閉上眼睛,墨守陳規(guī),將自己蜷縮成一團,就好像枯萎的枝干慢慢死去。