我來推薦一本書:《Ruby 元編程》
創(chuàng)新互聯建站一直在為企業(yè)提供服務,多年的磨煉,使我們在創(chuàng)意設計,營銷型網站到技術研發(fā)擁有了開發(fā)經驗。我們擅長傾聽企業(yè)需求,挖掘用戶對產品需求服務價值,為企業(yè)制作有用的創(chuàng)意設計體驗。核心團隊擁有超過10多年以上行業(yè)經驗,涵蓋創(chuàng)意,策化,開發(fā)等專業(yè)領域,公司涉及領域有基礎互聯網服務雅安機房托管、成都app軟件開發(fā)、手機移動建站、網頁設計、網絡整合營銷。這本書雖然是以Ruby為教學語言,但實際上內里介紹的很多抽象和設計是很多動態(tài)語言所通用的,尤其是在ES6/ES7 又廣泛的吸納Python、Ruby的特性和優(yōu)點的今天,總之非常值得一讀。
======================================================================
謝邀。
我2016年6月畢業(yè),同年3月開始認真學習JavaScript,而在此之前我相對熟悉些http://VB.NET,Java,C++什么的。
但我學習的辦法其實比較笨,只是因為自知看書比較快,所以就大量查閱有關博客以及JS書籍/電子文檔。從《鋒利的jQuery》入門,豆瓣8分以上的JS有關的圖書,10本里面我大概讀過7~8本。 由于JS的語言特性使得你很容易進行橫向學習(現在想想,也是我年tai少sha無bi知,C++沒學好的緣故),因此快速拓展JS要素時,我還順手點了下Python和Lua的技能樹。
當然,在閱讀這些書的過程中我都是帶著強烈目的去讀的(換言之,讀一本書之前,你要知道你為什么讀這本書,你需要解決的問題是什么),同時,配合平時在工作中持續(xù)的Coding。
有些內容或許因為翻譯,或許因為概念本身晦澀,未必很好理解,但我相信,Coding 千遍,其義自現。各位從別的語言平臺過來的程序員應該不會有問題,但倘若是初學編程,請慢慢讀,慢慢學,打好基礎再謀求起飛。
比如完整follow example code 寫一遍,Run一遍,思考一下代碼原理/執(zhí)行的過程/解決的問題,然后試試改幾個參數再Run一遍,接著再考慮看看現實的環(huán)境中,能找到符合這段代碼目的的用例嗎?
如果非要書單的話,我推薦以下幾本(按推薦的閱讀順序排序,純JS向):
這個至少讀兩遍以上。
很薄的一本書,但告訴了你一些工程向的東西,來提高一門不怎么好維護的語言的可維護度。
老道這人比較極端,但無論如何這本書入門還是可以一看的,至于有些觀點采納與否可以之后再思索。
異步幾乎是JavaScript世界里最重要的執(zhí)行機制之一了,也不厚,很容易讀完,但可以反復咀嚼一下。
P.S:回調這個異步模型雖說粗糙是粗糙了點,但同樣也樸素嘛~~。ES6 yield穿來穿去,真要弄清楚執(zhí)行流程,還是得畫兩張圖才能看明白的。
image
Node.js向,相對深入的一本書。而Byvoid那本里一來比較簡單,二來Express的版本已經超過他示例代碼版本很多了,再版的話還是挺推薦作為Node.js入門讀物的。
一本偏實踐的書,看了這本書之后再接觸Angular/Backbone什么的會開闊很多。
這本剛出版不久,Github上You dont know JS 系列非常精彩,但遠不是一本入門書,請有了實踐經驗之后再讀,用來鞏固知識點非常好。
最后,如果苦于手邊沒有可以練習的代碼,我推薦這個網站,有效幫助熟悉各種JS函數/Pattern/ES6 Features:
至于練手的項目,?趙望野?前輩在這里提到過一些,我覺得可以嘗試而且自有裨益,當然一開始不一定能真的就順利的實現出來,但羅馬也不是一天建成的。
(Selector Engine 什么可能會比較難,AJAX Helper/Chainable Helpers 這些難度都很適中)
初學者的話:Selector Engine,AJAX Helper,Promise A+ 的 Deferred Helper,Chainable Array\String\Object Function Helpers...
最后的最后,仍然要送上一句話: 知行合一 。
用代碼解決問題永遠是學習編程的最好途徑。
另外有需要云服務器可以了解下創(chuàng)新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。