我把學(xué)習(xí)歸類為三個(gè)步驟:What、How、Why。經(jīng)過(guò)我對(duì)周圍同事和朋友的觀察,大部分感覺(jué)自己技術(shù)沒(méi)有提高的人,都僅僅停留在What階段。下面我把這三個(gè)步驟解釋一下。
★第一步:WHAT
所謂的“WHAT”也就是“What is it?”——這是最簡(jiǎn)單的層次。在這個(gè)層次,你要搞清楚某個(gè)東東是【什么】樣子的?有【什么】用處?有【什么】特性?有【什么】語(yǔ)法?……
舉例如下:
對(duì)于學(xué)習(xí)語(yǔ)言(比如 C++、Java、Python),大部分人都能夠掌握基本的語(yǔ)法和標(biāo)準(zhǔn)庫(kù),然后用它寫(xiě)一些小程序(諸如二分查找、冒泡排序、簡(jiǎn)單文件操作等)。
對(duì)于學(xué)習(xí)類庫(kù)(比如 JDBC 類庫(kù)),大部分 Java 程序員都能明白 JDBC 主要包含哪些類,也能夠用 JDBC 進(jìn)行簡(jiǎn)單的數(shù)據(jù)庫(kù)查詢和增刪改操作。
由于這個(gè)步驟是最基本的,假如你連這都做不到(可能你的理解力不夠好),也別在IT界混了。
但是光會(huì) What 是不夠的。僅僅停留在這個(gè)步驟,導(dǎo)致了很多程序員【只知其然,不知其所以然】。這就是目前大部分開(kāi)發(fā)人員的現(xiàn)狀。
★第二步:HOW
所謂的“HOW”就是“How to do?”。在這個(gè)層次,你要搞清楚某個(gè)東西,其內(nèi)部是【如何】運(yùn)作的?【如何】實(shí)現(xiàn)的?……
舉例如下:
假如你在學(xué)習(xí) C++ 語(yǔ)言,你是否搞明白函數(shù)傳參數(shù)的實(shí)現(xiàn)機(jī)制?虛函數(shù)是如何實(shí)現(xiàn)?拋出異常時(shí)的?;赝耸窃趺椿厥拢俊?br> 假如你在學(xué)習(xí) Java 語(yǔ)言,你是否搞清楚 GC 如何實(shí)現(xiàn)?反射是如何實(shí)現(xiàn)?……
假如你在學(xué)習(xí) JDBC 庫(kù),你是否清楚 JDBC Driver 的4種類型?不同游標(biāo)類型的實(shí)現(xiàn)機(jī)制?事務(wù)的機(jī)制?……
在這個(gè)階段,你必須多想想類似這些問(wèn)題。然后通過(guò)各種途徑(參見(jiàn)“關(guān)于自學(xué)能力”的幾個(gè)方法),把問(wèn)題徹底搞清楚。自然而然,你的提高就會(huì)比較明顯。而且如果碰到一些深層次的問(wèn)題(比如性能優(yōu)化),也就知道該如何去解決。
完成這個(gè)階段之后,你基本上就屬于該技術(shù)領(lǐng)域最優(yōu)秀的20%的人(根據(jù)二八原理,80%的人不會(huì)去思考 HOW 的問(wèn)題)。
★第三步:WHY
一般來(lái)說(shuō),只有想清楚 HOW 之后,才能繼續(xù)去考慮 WHY。
所謂的“WHY”,就是搞清楚某個(gè)東西【為什么】設(shè)計(jì)成這樣?【為什么】不是另外的樣子?這樣的設(shè)計(jì)有什么講究?……
說(shuō)實(shí)在的,善于問(wèn)“為什么”有一定的天賦成分?好像某個(gè)科學(xué)大牛曾經(jīng)說(shuō)過(guò)“提出問(wèn)題有時(shí)候比解決問(wèn)題更難”。一般來(lái)說(shuō),只有當(dāng)你【深刻理解】了某個(gè)東西,才能夠針對(duì)這個(gè)東東的【設(shè)計(jì)】問(wèn)出一些問(wèn)題。所以,我前面強(qiáng)調(diào)過(guò),要先把 HOW 的問(wèn)題搞清楚,再來(lái)考慮 WHY 的問(wèn)題。
舉例如下:
對(duì)于C++語(yǔ)言:為什么 C++ 沒(méi)有類似 Java 的 finally 關(guān)鍵字?為什么當(dāng)初發(fā)明 C++ 的時(shí)候沒(méi)有考慮 GC?……
對(duì)于Java語(yǔ)言:為什么 Java 沒(méi)有類似 C++ 的類析構(gòu)函數(shù)?為什么 Java 要同時(shí)提供 String 和 StringBuffer 兩個(gè)似乎冗余的類?……
對(duì)于Python語(yǔ)言:為什么 Python 不提供類似 C++/Java 的訪問(wèn)控制機(jī)制?……
如果你能夠【自己】問(wèn)出諸如上述的“為什么”問(wèn)題,并且能夠通過(guò)各種途徑找到解答,那你基本上已經(jīng)吃透這個(gè)技術(shù)了,并且你已經(jīng)【有可能】自己去【設(shè)計(jì)】一個(gè)類似的玩意兒了。到這時(shí),你已經(jīng)踏上了通向技術(shù)高手的康莊大道。
由于本博客偏重 IT 方面,所以今天舉的這些例子多半都是 IT 相關(guān)的,但是這個(gè)三部曲在 IT 之外的行業(yè)和領(lǐng)域,其實(shí)也能適用。如何舉一反三,就看各位的悟性了。
來(lái)源:https://sci10.com/
如有侵權(quán)請(qǐng)聯(lián)系我刪除,謝謝理解!