學(xué)習(xí)技術(shù)的三部曲:WHAT、HOW、WHY
最近幾天有些網(wǎng)友在郵件里面問我關(guān)于學(xué)習(xí)的問題,
學(xué)習(xí)技術(shù)的三部曲:WHAT、HOW、WHY
。有很多人覺得工作了幾年,也學(xué)會(huì)了不少的類庫、框架、甚至語言,但是感覺自己的能力沒有太大的提高。因此今天來?說一下我個(gè)人對(duì)這方面的體會(huì)。我把學(xué)習(xí)歸類為三個(gè)步驟:What、How、Why.經(jīng)過我對(duì)周圍同事和朋友的觀察,大部分感覺自己技術(shù)沒有提高的人,都僅僅停留在What階段。下面我把這三?個(gè)步驟解釋一下。
*第一步:*WHAT*
所謂的"*WHAT*",就是搞清楚某個(gè)東東是什么?有什么用?有什么語法?有什么功能特性?……
對(duì)于學(xué)習(xí)語言(比如C++、Java),大部分人都能夠掌握基本的語法和標(biāo)準(zhǔn)庫,然后用它寫一些小程序(諸如二分查找、冒泡排序、簡單文件操作等),對(duì)于學(xué)習(xí)類庫(比如JDBC類庫),大部分Java程序員都能明白JDBC主要包含哪些類,也能夠用JDBC進(jìn)行簡單的數(shù)據(jù)庫查詢和增刪改操作。
由于這個(gè)步驟是最基本的,假如你連這都做不到(可能你的理解力不夠好),也別在IT界混了。但是光會(huì)What是不夠的。僅僅停留在這個(gè)步驟,導(dǎo)致了很多程序員*只知其然,不知其所以然*.這就是目前大部分開發(fā)人員的現(xiàn)狀。
*第二步:*HOW*
所謂的"*HOW*",就是搞清楚某個(gè)東西是如何運(yùn)作的?實(shí)現(xiàn)機(jī)制如何?等一系列相關(guān)問題。
舉例如下:
假如你在學(xué)習(xí)C++語言,你是否搞明白函數(shù)傳參數(shù)的實(shí)現(xiàn)機(jī)制?虛函數(shù)是如何實(shí)現(xiàn)?拋出異常時(shí)的;赝耸窃趺椿厥?……
假如你在學(xué)習(xí)Java語言,你是否搞清楚GC如何實(shí)現(xiàn)?反射是如何實(shí)現(xiàn)?……
假如你在學(xué)習(xí)JDBC庫,你是否清楚JDBC Driver的4種類型?不同游標(biāo)類型的實(shí)現(xiàn)機(jī)制?事務(wù)的'機(jī)制?……
在這個(gè)階段,你必須多想想類似這些問題,
資料共享平臺(tái)
《學(xué)習(xí)技術(shù)的三部曲:WHAT、HOW、WHY》(http://www.msguai.com)。然后通過各種途徑,把問題徹底搞清楚。自然而然,你的提高就會(huì)比較明顯。而且如果碰到一些深層次的問題(比如性能優(yōu)化),也就知道該如何解決。完成這個(gè)階段之后,你基本上就屬于該技術(shù)領(lǐng)域最優(yōu)秀的20%的人,80%的人不會(huì)去思考HOW的問題)。
*第三步:*WHY*
一般來說,只有你把HOW的問題想清楚,才開始考慮步驟WHY.所謂的"*WHY*",就是搞清楚某個(gè)東西為什么設(shè)計(jì)成這樣?為什么不是另外的樣子?這樣的設(shè)計(jì)有什么講究?說實(shí)在的,善于問"為什么"有一定的天賦成分?好像某個(gè)科學(xué)大牛曾經(jīng)說過"提出問題有時(shí)候比解決問題更難".一般來說,只有當(dāng)你深刻理解了某個(gè)東西,才能夠針對(duì)這個(gè)東東的設(shè)計(jì)問出一些問?題。所以,我前面強(qiáng)調(diào)過,要先把HOW的問題搞清楚,再來考慮WHY的問題。
舉例如下:
對(duì)于C++語言:為什么C++沒有類似Java的finally關(guān)鍵字?為什么C++當(dāng)初沒有考慮GC?……
對(duì)于Java語言:為什么Java沒有類似C++的類析構(gòu)函數(shù)?為什么Java要同時(shí)提供String和StringBuffer兩個(gè)似乎冗余的類?……?.
如果你能夠自己問出諸如上述的"為什么"問題,并且能夠通過各種途徑找到解答,那你基本上已經(jīng)吃透這個(gè)技術(shù)了,并且你已經(jīng)*有可能*
自己去設(shè)計(jì)一個(gè)類似的玩意兒了。到這時(shí),你已經(jīng)踏上了通向技術(shù)高手的康莊大道。
【學(xué)習(xí)技術(shù)的三部曲:WHAT、HOW、WHY】相關(guān)文章:
1.How to answer “what are your salary expectations?”
3.What is a Cover Letter? What is It for?
5.What is a Resume and What are its Purposes?
8.In My Resume, what are the rules for Capitalization: What do