如何快速成為JavaScript高手的思考
如何快速成為Javascript高手?
之前我拿這個(gè)問(wèn)題問(wèn)過(guò)我的同事,也問(wèn)過(guò)國(guó)內(nèi)的一些Javascript高手。
最近,我一直在拿這個(gè)問(wèn)題問(wèn)自己。之所以會(huì)有這個(gè)問(wèn)題,我基于兩個(gè)前提:***、我自認(rèn)為自己不笨;第二、我學(xué)習(xí)和使用Javascript也有一段時(shí)間了,并且自己學(xué)習(xí)還算努力。
思來(lái)想去,我覺(jué)得我應(yīng)該先回答下這個(gè)問(wèn)題:如何提高自己的學(xué)習(xí)效率?
想象一下學(xué)校的場(chǎng)景,有一些知識(shí),有的人就是學(xué)得比你快。為什么?可能他本來(lái)就比你聰明;可能他之前學(xué)過(guò)的、接觸過(guò)的東西使他對(duì)這個(gè)知識(shí)有啟發(fā);可能他背地里比你花的功夫還多。不管哪一種形式,從旁觀者的角度來(lái)看,他就是學(xué)得比你快,也就認(rèn)為他的學(xué)習(xí)效率比你高。
排除***個(gè)答案不討論。我們來(lái)討論下第二個(gè)和第三個(gè)答案。
答案二:“他之前學(xué)過(guò)的、接觸過(guò)的東西使他對(duì)這個(gè)知識(shí)有啟發(fā)”,我這里簡(jiǎn)單的歸結(jié)為積累,關(guān)于積累問(wèn)題,我上一篇博客程序員的學(xué)習(xí)和積累有談到。
答案三:“他背地里比你花的功夫還多”,還有現(xiàn)象本身“他花的功夫比你少,學(xué)得比你還好”,關(guān)鍵字都落在了“功夫”二字上。如何下功夫、功夫下在什么地方?這又引出了一個(gè)新問(wèn)題。
關(guān)于這個(gè)問(wèn)題,糾結(jié)了這么多天,我的回答是:如何下功夫?動(dòng)手!功夫下在什么地方?和工作有關(guān)的地方!
說(shuō)到這,我又想起了我深受毒害的應(yīng)試教育。應(yīng)試教育缺乏的正是動(dòng)手和實(shí)踐知識(shí)的場(chǎng)所或曰方式。很多時(shí)候我總是懶于動(dòng)手,為什么懶于動(dòng)手?難道是我真的懶嗎?我不承認(rèn),我不動(dòng)手是因?yàn)槲艺也坏絼?dòng)手的理由,或是不知道如何動(dòng)手。拿寫一個(gè)Javascript庫(kù)或框架為例,為什么我到現(xiàn)在還沒(méi)有寫一個(gè)Javascript庫(kù)?首先我找不到寫它的理由,現(xiàn)在這么多流行、易用且被廣泛使用的Javascript庫(kù)或框架了,有必要再寫一個(gè)嗎?就算我寫了,公司會(huì)使用它嗎?如果沒(méi)有對(duì)其他庫(kù)或框架的深刻理解和認(rèn)識(shí),只是把各個(gè)庫(kù)或框架中的一些東西拼湊在一起,甚至不知道其中一個(gè)函數(shù)實(shí)現(xiàn)的內(nèi)部原理,那能叫我寫的嗎?其次,我找不到入手的地方。在沒(méi)有對(duì)其他框架有深刻認(rèn)識(shí),自己能找到其中的缺陷、不足而加以修正和實(shí)現(xiàn)之前,我找不到入手的地方。
解釋下答案:
功夫下在和工作有關(guān)的地方,這需要有強(qiáng)烈的責(zé)任心和主人翁意識(shí)。我們需要深刻理解這句話,“功夫下在和工作有關(guān)的地方”不是說(shuō),每天把上司交給自己事情做完、沒(méi)有bug、達(dá)到需求就可以了。而是要做得更好,我想提出3點(diǎn),也給自己樹(shù)立目標(biāo):
1、用***的方案實(shí)現(xiàn)需求。在自己的已有知識(shí)結(jié)構(gòu)、能力、經(jīng)驗(yàn)上用***的方式實(shí)現(xiàn)需求,在此基礎(chǔ)上努力搜尋業(yè)界相關(guān)的解決方案比較優(yōu)劣,選出***的方案,最終實(shí)現(xiàn)需求。
2、關(guān)心自己已做完的工作,關(guān)注業(yè)界的相關(guān)新思想、新技術(shù)、新理念,把已完成的工作,用******的方案予以重構(gòu),并在適當(dāng)?shù)臅r(shí)機(jī)在產(chǎn)品上得以實(shí)現(xiàn)。
3、關(guān)注自己所負(fù)責(zé)工作的未來(lái),把產(chǎn)品當(dāng)做自己的孩子,努力將他引向最美好的未來(lái)。努力將自己所負(fù)責(zé)的產(chǎn)品打造成為業(yè)界的標(biāo)桿(特別是自己所負(fù)責(zé)的部分,那是自己影響圈內(nèi)的事情)。
動(dòng)手。如果你知道了功夫該下在什么地方,也自然知道了要?jiǎng)邮肿鍪裁?,?dòng)手也會(huì)成為快樂(lè)的事情。
不知道大家有沒(méi)有這樣的經(jīng)歷,當(dāng)你有極大的渴望想把某件事情做好的時(shí)候,你會(huì)花很大的精力去研究怎樣把事情做好,為此你會(huì)學(xué)習(xí)很多相關(guān)的東西,平時(shí)你可能花一周時(shí)間也學(xué)不會(huì)的東西,你花一個(gè)上午就學(xué)會(huì)了,還應(yīng)用到了你要做到事情中,并且事后你會(huì)對(duì)所學(xué)過(guò)的東西印象深刻。
這,就是我對(duì)“如何提高學(xué)習(xí)效率”這個(gè)問(wèn)題的回答。
很抱歉,寫到這里我還幾乎沒(méi)有正面回答“如何快速成為Javascript高手”這個(gè)問(wèn)題,如果你已經(jīng)有所收獲了,我感到很欣慰。如果沒(méi)有,再談?wù)凧avascript,因?yàn)槲夷壳斑€不算Javascript高手,下面這段算畫(huà)蛇添足也好,算狗尾續(xù)貂也罷。
語(yǔ)言層面:編程語(yǔ)言之間是相通的,至少高級(jí)語(yǔ)言是相通的(相對(duì)于機(jī)器語(yǔ)言和匯編語(yǔ)言),Javascript是一門特殊的語(yǔ)言,既可面向過(guò)程、又可面向?qū)ο蟆S腥讼矚g它弱類型語(yǔ)言的特性,而將其語(yǔ)言本身的特性發(fā)揮得***。有人喜歡Java這類純面向?qū)ο笳Z(yǔ)言的嚴(yán)謹(jǐn),而使用一些功能函數(shù)將其包裝成完全的面向?qū)ο螅⒉捎盟鼘?shí)現(xiàn)了一些常見(jiàn)設(shè)計(jì)模式。所以說(shuō),真正要精通Javascript這門語(yǔ)言本身,需要對(duì)其他語(yǔ)言的一些理解(至少是了解)。鑒于目前Javascript從業(yè)人員的構(gòu)成,非計(jì)算機(jī)專業(yè)科班出身的同學(xué)可能需要努力補(bǔ)補(bǔ)課。
環(huán)境層面:Javascript運(yùn)行的環(huán)境目前有瀏覽器端和服務(wù)器端,將來(lái)可能有機(jī)會(huì)到嵌入式設(shè)備中。目前大部分應(yīng)用主要集中在瀏覽器端,而瀏覽器廠商為了各自利益等各種歷史原因造成的Javascript運(yùn)行環(huán)境兼容性問(wèn)題,也是Javascript從業(yè)人員較為頭疼的問(wèn)題。
業(yè)務(wù)層面:很多其他語(yǔ)言有功能完善的底層API、工具包,抱歉,Javascript暫時(shí)沒(méi)有(瀏覽器端、nodejs開(kāi)始有雛形,希望commonJS規(guī)范能夠一路走好)。所以各種庫(kù)、框架對(duì)于一些基本業(yè)務(wù)需求都提供了類似但非相同的實(shí)現(xiàn)。一個(gè)優(yōu)秀Javascript程序員需要辨別各種框架或庫(kù)中的業(yè)務(wù)實(shí)現(xiàn),或編寫出自己的業(yè)務(wù)實(shí)現(xiàn)。
綜上,要在語(yǔ)言、環(huán)境、業(yè)務(wù)三個(gè)方面都精通,確實(shí)是需要花費(fèi)很大的功夫。一個(gè)人的精力是有限的,其他語(yǔ)言積累幾十年的東西,你想一個(gè)人在Javascript得到實(shí)現(xiàn)是不太可能的。術(shù)業(yè)有專攻,不是說(shuō)你是Javascript高手,Javascript的方方面面你都能做到***。
故,我認(rèn)為“如何快速成為Javascript高手?”, 無(wú)解。無(wú)法快速!
“如何成為Javascript高手”,動(dòng)手,把功夫下在和工作有關(guān)的地方上!
運(yùn)用Javascript把工作做得***,才是Javascript高手!
PS:這是本人對(duì)自身問(wèn)題的思考和分析,之所以發(fā)到首頁(yè)來(lái),是希望能給有同樣疑惑、同樣迷茫的同學(xué)帶來(lái)些思考。分享這篇博文花了4小時(shí)的寫作時(shí)間,如果你有同感,如果你覺(jué)得我還算用心,請(qǐng)幫忙右下角推薦一下,這樣能給更多的同學(xué)帶來(lái)一點(diǎn)思考和幫助。如果你以為我是Javascript高手,只是來(lái)學(xué)習(xí)經(jīng)驗(yàn)的,卻沒(méi)有半點(diǎn)收獲,失望而歸,請(qǐng)拍磚。
原文鏈接:http://kb.cnblogs.com/page/123204/
【編輯推薦】