一 個 偉 大 的 JavaScript 程 序 員 成 長 之 路
遙想當年還年少的時候,我的興趣愛好就跨越了各種不相關的領域。我喜歡數學,如同我深愛歷史。我的目標是成為像文藝復興時期多才多藝的偉人那樣——在多個領域都有出色表現。這是一個艱鉅的任務──突然之間我發現自己正面臨「樣樣皆通,樣樣稀鬆」的危險。
我開始考慮鑽研某些領域,這樣至少我還可以成為一個「精通某些領域」的人。那我該怎麼做,才能既專注於某個領域,同時又能學到軟體開發所需的大量知識?
這篇文章主要概述在我5年工作經驗的基礎上,我成為優秀JavaScript開發人員所使用的技術和資源。
目前大多數Web開發人員面臨著這樣一個共同的問題:他們必須在多個不同的領域領先於他人——從資料庫到後端架構,到前端使用者介面,再到使用良好的CSS知識修正使用者介面。
閱讀書籍
首先,也是最重要的一點是,你必須付出努力才能脫穎而出。雖然你也可以在無心中獲得點點滴滴的積累,例如,不時地閱讀一些博客文章,而且老實說,因為這種方法最初的時間和精力的投入要求低得多,所以更簡單。這樣的學習模式顯然比你專門刻意的學習過程要花更多的時間。關於這種窘境的解決方式也很簡單:閱讀書籍。
書籍是人類進步的階梯。文字是我們讓知識以濃縮的形式代代相傳的工具。成為Web技術專家有一個要解決的問題是,你必須學會何時遠離網路本身。網路本身就存在著讓人混亂和分心的內容,所以我要給的第一個建議是,要閱讀相關主題的書籍。
對於JavaScript中,可以先從以下書籍開始:《JavaScript the Good Parts》就像是JavaScript中的《聖經》。雖然這本書已經有點古老了,但還是最好的起始點。 《JavaScript: the Definitive Guide》也是我們必要的,雖然你可能會將它當作是參考書。 jQuery創辦人John Resig的《Secrets of the JavaScript Ninja》也值得關注。此外,你還可以閱讀電子書,非常方便,許多線上電子書還是免費的。另外,JavaScript Guide雖然不是書,但深受Mozilla開發人員的信賴與青睞。
腳本庫的學習,使用和閱讀
接下來最重要的一個步驟是去了解腳本庫。書籍教你如何讀懂語言,庫教你如何應用它。關於腳本庫你需要做這兩件重要的事情:使用它們,閱讀它們的原始碼。
對於函式庫的使用,需要了解以下幾個重點的函式庫:jQuery,Backbone,underscore以及React、 Angular和Ember之一。這並不是說你必須要使用這些函式庫,但任何像樣的JavaScript開發人員至少應該有一定的使用這些函式庫的經驗(無論好壞)。
提升JavaScript技能的第二件重要的事情是閱讀這些函式庫的原始碼。我強烈建議閱讀Backbone和underscore的源代碼,因為它們寫得非常優美。閱讀並理解underscore可以提高函數式程式設計的技巧。另一個值得閱讀原始程式碼,也是其他開發人員推薦給我的函式庫是mootols(我個人不使用mootools,也沒有閱讀過它的原始碼。)
剩下的函式庫,如React和Ember等,要理解可能很難,但非常值得。此外還應該瀏覽一下其他程式庫的原始程式碼,看看它們是如何建立程式碼庫的,並嘗試探索一些新的模式。其他著名的可使用和閱讀其原始程式碼的程式庫包括D3、highcharts和moment.js。
練習與自問問題
要成為一個好的JavaScript開發人員的關鍵步驟是練習,許許多多的練習。理想的情況是,練習的重點不在於DOM,而在於語言,所以一定要確保有一個可以運行node.js的測試工具。做各種瑣碎又大量的node.js練習。研究程式設計招式,經歷使用JavaScript的不同方式:閉包,原型,擴充陣列(map、filter)等。在做練習的同時,要開始在腦中形成JavaScript的基本想法。
我的一個朋友,Armagan,一位優秀的JavaScript程式設計師,也是一個使用《Pro JavaScript Design Patterns》用於講座的老師,所以這本書值得一閱。
在學習的同時,要試著回答一些問題,例如:原型如何繼承工作?閉包的定義?關鍵字意義如何改變?如何使用apply/bind/map/filter/call?收集一系列JavaScript開發人員需要面臨的共同來源要點,並試著用自己的話來解釋。用書面或口頭的形式向另一個人解釋這些概念,有利於大大提高你的技能。在練習的同時,盡量去思考「如果是那種情況,又該如何?」的情景。例如,「如果我使用兩次bind,那個這個」this「會是什麼意思?jQuery如何確保this關鍵字指向jQuery對象,而不是全域對象?這個函式庫如何完成一定的功能?」等等,這些都是你應該時常問自己的常見問題。
學習標準
接下來要了解的是EcmaScript標準。研讀最新的EcmaScript標準副本。同時,也可以試著了解JavaScript中即將推出的功能,如ES6和ES7。近期已經出現了例如promises、modules、generators、comprehensions等新功能,好好閱讀標準,也可以閱讀專業書籍,如Nicholas Zakas的《Understanding EcmaScript 6》或Axel Rauschmayer博士的《Exploring JS》,或許會有所幫助。從主要源學習標準以及探索新增的語言才是通往專業化道路的途徑和方法。
利用網路資源
我前面提到利用網路來了解網路是危險的,但是現在我要提議的是我們也可以利用網路來取得最好的資源。 《Hacker News》就是一個很好的來源,但是持續的追蹤通常會耗費更多的時間,因為真正有用的資訊比例是很低的。相反,不如直接瞄準每週摘要如《JavaScript weekly》。隨著時間的推移,你自然會領悟到哪些函式庫或技術越來越有吸引力。可以在Twitter上找有影響力的JavaScript開發人員。 其他的網路資源包括部落格如Toptal Blogs、Rebecca Murphey’s blog和Nicholas Zakas’ blog等。
另一個非常重要的網路資源是視訊會議和教育視訊。說到會議,JSConf系列的品質就很高。至於教育視頻,我強烈建議Pluralsight,因為他們有著編寫高品質課程經驗的開發軍團。
簡而言之
讀書,書中自有資訊之精華。
了解基本的函式庫,如jQuery、underscore和Backbone,閱讀原始碼。
練習,試著用自己的話解釋常見的JavaScript概念,例如繼承。就上述主題做演講和講座。
通讀新版本的標準,使用最新增加的語言。
利用網路資源,查看摘要和博客,以及視訊會議和教育影片。
結論
不斷重複上述步驟,並參與到大量的專案中去有助於你快速提升你的JavaScript技能。但始終要牢記,只有付出才會有回報,才會有望成為專業人士。我自認為自己是個很好的JavaScript程式設計師,但是要成為專業人士我依然還有很長的路要走,還需要不斷地學習和掌握知識和技術。
最後祝學習快樂,願與君共勉!
以上是一個偉大的JavaScript程式設計師成長之路的詳細內容。更多資訊請關注PHP中文網其他相關文章!

去掉重复并排序的方法:1、使用“Array.from(new Set(arr))”或者“[…new Set(arr)]”语句,去掉数组中的重复元素,返回去重后的新数组;2、利用sort()对去重数组进行排序,语法“去重数组.sort()”。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于Symbol类型、隐藏属性及全局注册表的相关问题,包括了Symbol类型的描述、Symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于对象的构造函数和new操作符,构造函数是所有对象的成员方法中,最早被调用的那个,下面一起来看一下吧,希望对大家有帮助。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于面向对象的相关问题,包括了属性描述符、数据描述符、存取描述符等等内容,下面一起来看一下,希望对大家有帮助。

方法:1、利用“点击元素对象.unbind("click");”方法,该方法可以移除被选元素的事件处理程序;2、利用“点击元素对象.off("click");”方法,该方法可以移除通过on()方法添加的事件处理程序。

foreach不是es6的方法。foreach是es3中一个遍历数组的方法,可以调用数组的每个元素,并将元素传给回调函数进行处理,语法“array.forEach(function(当前元素,索引,数组){...})”;该方法不处理空数组。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于BOM操作的相关问题,包括了window对象的常见事件、JavaScript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

記事本++7.3.1
好用且免費的程式碼編輯器

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中