WEB前端學習有用的書籍

来源:https://www.cnblogs.com/fsyz/archive/2017/12/30/8151550.html
-Advertisement-
Play Games

WEB前端研發工程師,在國內算是一個朝陽職業,這個領域沒有學校的正規教育,大多數人都是靠自己自學成才。本文主要介紹自己從事web開發以來(從大二至今)看過的書籍和自己的成長過程,目的是給想瞭解JavaScript或者是剛接觸JavaScript的朋友,介紹如何通過循序漸進的看書來學習javascri ...


WEB前端研發工程師,在國內算是一個朝陽職業,這個領域沒有學校的正規教育,大多數人都是靠自己自學成才。本文主要介紹自己從事web開發以來(從大二至今)看過的書籍和自己的成長過程,目的是給想瞭解JavaScript或者是剛接觸JavaScript的朋友,介紹如何通過循序漸進的看書來學習javascript。
一. 入門級 :就是有一定的基礎(比如最常見的HTML標簽及其屬性、事件、方法;最常見的CSS屬性;基礎的JavaScript編程能力),能夠完成一些簡單的WEB前端需求。
  推薦:《JavaScript dom 編程藝術》
  理由:此書絕對是入門的好書,本人也是在接觸JS一段時間後才看的這本書。此書從JS的歷史 - JS基礎語法知識 - DOM介紹和簡單的使用。現在這本書已經出了第二版,需要的朋友直接第二版就行。
  評價:簡潔,實用,詳細,易懂,書不厚,相信很快就能看完。
  當然,作為入門書的話《JavaScript權威指南》也非常強大(這名字可不是白起),其實說起來也慚愧,本人至今都沒有買過這本書,最開始是因為這個書實在是小貴,只好借朋友的看,不過也就看了個周末。網上關於此書的評價很多,意思大概都是說這書就是一個JS的文檔手冊,如果你有閑錢,並且習慣翻書查詢,那麼就來一本吧。順便提醒一句,這本書的第六版英文版已經出來了。
二.初級開發:本人以前的DEV leader兼恩師這麼說過:“初級開發人員的標誌就是需要在中級和高級開發的指導下完成工作”。首先不要苛責代碼的對錯嚴謹,畢竟每個程式員都有這樣的一個過程,就是這個級別的特征。
  推薦:《javascript高級程式設計》(第二版)
  理由:這本書的作者是 Nicholas C.Zakas ,,雅虎的前端工程師,是YUI的代碼貢獻者,可想而知這本書得含金量,他出的書都廣受好評。這本書已經出了第二版,而且與第一版相比內容更新很大,直接第二版就行。不要被書名的“高級”唬住,只要有JS基礎語法知識和DOM基礎知識就行,而且本書開始階段還是介紹JS和DOM的語法知識。
  評論:重點推薦一下第五章(類型),第六章(OOP),第七章(匿名),多看幾遍,至少要完全看明白,能為以後進階打好基礎,個人感覺這幾章是本書的精華所在。這本書在入門的時候看節奏會快了一些,所以不建議初學者看,可是相對於我一會要介紹的書又算基礎一點,所以建議先閱讀完這本書,對瀏覽器相容和語法知識有一定瞭解之後再往下閱讀。
  推薦:《高性能 JavaScript》《JavaScript語言精粹》
  理由:本人先看的是《高性能JS》,這本書還是 Nicholas C.Zakas 所著,經典之作,書中大量舉例了各種不同寫法的JavaScript在瀏覽器中的性能情況,對規範JavaScript代碼和提升性能有很好的幫助,最後提到了很多工具和性能測試的方法,都是灰常灰常有實際作用的,看得出作者很厚道(好吧,偶承認了,偶是他的粉絲)_,記憶最深的一句話:"如果 JavaScript 執行了幾秒鐘,那麼很可能是你做錯了什麼";;
    《語言精髓》和《高性能》有少部分關鍵知識都重覆提到了,可是為什麼要推薦這本書,因為本書對JS語言本質的描述太棒了,這是一本介紹JavaScript語言本質的權威書籍,從 “對象”,“函數”,“繼承”,“數組”等等多個重要知識著手。我補一句話 - 本書需要反覆閱讀。
  評論:都是好書,都很薄,而且所說的內容只要有基礎都不難。相信讀完之後會對JS又有新的認識,且對以後的代碼規範和瀏覽器差異性等高級問題有了新的認識,如果讀完之後會有種被灌頂的感覺,那麼恭喜你,你離中級不遠了。
三.中級開發:還是本人以前的DEV leader兼恩師這麼說過:“中級開發人員的標誌就是在高級開發或架構師較少的指導下高質量的完成工作,並對產品或項目有自己的想法與理解”。
  強烈推薦:《JavaScript DOM高級程式設計》
  理由:此書灰常犀利,本人一共看了近半年的時間,已反覆閱讀多次。說實話,這本書的翻譯一般,代碼也有少許錯誤,可是這不影響這本書的強大,通過學習本書,可以理解一個JS的庫如何產生,自己動手寫一個簡單的自己的JS庫,如果你打算研究其他的JS庫或者正在研究其他的JS庫,那麼這本書會使你的理解達到新的高度,進階高級必讀,寫庫必讀。
  評論:異常強大的一本JS巨作,此書不薄,強烈推薦。現在已經買不到正版了,我這裡有電子版,有需要的朋友留下郵箱,晚上發給你們。這些東西未能及時從盛大網盤轉移到百度網盤,所以已經丟失,發不了電子版給大家了T.T
  強烈推薦:《JavaScript設計模式》
  理由:異常生猛的一本書,看書名帶“設計模式”就知道,這本書想要讀明白有點困難,本人自己感覺,只要某書一帶“模式”這兩字,反正就簡單不了。本書對JS的“模仿介面”,“封裝”,“繼承”,“鏈式調用”,“工廠模式”等各種具體的設計模式及其在JavaScript 語言中的應用進行了詳細的介紹,運用設計模式使代碼更模塊化、更高效並且更易維護。
  評論:書不厚,可真的是內容豐富且高深,強烈建議購買。
  推薦:《高性能網站建設指南》《高性能網站建設進階指南》
  理由:在讀完前幾本書之後我們對前端的性能和自己的代碼的效率已經達到相當的高度了,然後我們在接觸一些前端工程師的一些精髓。本書對HTTP請求,CDN,內容緩存和一些web開發中常見問題進行講解。
  評論:書都不厚,可是說的都是比較實用的東西,可是用不用的上還得看個人和項目需要了。
  以上就是本人一路走來看的JS相關書籍,朋友會問,為什麼就只介紹的中級的,那麼高級看的書在哪?有木有高級的書?進階高級程式員之路又在哪?說下我自己的看法和對年輕朋友的建議吧,說的不好或不對請原諒,其實我也才真正工作兩年多:
    1.主要是工作經驗問題。達到一定程度以後真的合適的書很難找了,更多只有在工作中總結和積累。工作的越久碰到過的問題也就越多,_。所以一般說高級程式員一般都是至少都3年以上的工作經驗,沒辦法,實踐才出真理。
    2.我覺得高級web前端灰常有必要總結一個自己的JS庫,不管大小,總歸有一套自己的東西(嘿嘿,如果認真的實踐過《JS DOM高級》的內容,估計有一套JS庫的原型了)。
    3.前端有必要懂得和熟悉一本服務端語言,其實電腦語言很多語法大致都差不多,不同的就是內置的方法和屬性,所以去熟悉一門語言並不難。為什麼有必要,因為精通一門語言還是不夠的,多學一門語言的好處我就不啰嗦了。
    4.許多年輕人都有眼高手低的毛病,我也一樣,例如,有的人認為自己編起程式來很順手,不用查手冊,說寫就寫,很熟練,幾乎什麼程式都能編出來,就認為自己對這種語言很精通了。其實對於一門語言的掌握程度是不可深測的,對於語言掌握其實是一個無止盡的過程,沒有終點。編寫時間的長短和編寫熟練程度,僅僅是精通語言表現的一個方面。更重要的是程式員要掌握這個語言的適用範圍,整體構架,語法規則、功能分類等基礎理論方面的知識,並能利用這方面的知識,用最科學的方法去解決現實中各種項目的各個問題。

學習前端的同學們

歡迎加入前端學習交流群:461593224


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 學習目標: -current_date 當前時間 TZ_OFFSET -current_timestamp 含小數秒當前時間 FROM_TZ -localtimestamp 含小數秒本地時間 TO_TIMESTAMP -dbtimezone 資料庫時區 TO_TIMSTAMP_TZ -session ...
  • 1、創建存儲過程 調用上述存儲過程(CALL語句調用一個先前用CREATE PROCEDURE創建的程式) 註意: 指定參數為IN, OUT, 或INOUT 只對PROCEDURE是合法的。(FUNCTION參數總是被認為是IN參數)指定參數為IN, OUT, 或INOUT 只對PROCEDURE是 ...
  • 真是醉了,最近筆記本壞了沒辦法,只好給自己的平板裝資料庫,而且平板沒有網線介面,只有用校園網下,500KB,很酸爽。。。 上午上了一下午,然後又解了個壓,解壓解了半小時,平板的配置是真的低。。。 又安裝了一下午,好不容易裝起來了,又發現唉,同志,恢複數據吧。。 實在很煩了,就休息了一下子,晚上8點才 ...
  • http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html Apache Hadoop YARN YARN的主要功能包括:資源管理和任務調度及監控,它們各自都是獨立的守護進程。要實現這個目標,必須有一個全局 ...
  • 安裝freeradius之前先要確保已經安裝了mysql、因為後來要用到、沒有安裝使用apt-get來安裝 然後就是安裝freeradius的部件 安裝完成後freeradius就會自動啟動了、由於莪們要使用調試模式來啟動freeradius、所以先關閉freeradius服務先 註意: 使用ubt ...
  • 分割線我們利用RecyclerView的addItemDecoration(ItemDecoration fromHtml) 新建一個類來看看到底是什麼: 有兩個方法getItemOffsets()這裡我一般指定偏移量就可以了,就是分割線占多少高度,或者說是畫在什麼位置,你總的給我留出位置來;onD ...
  • Log類介紹: API for sending log output.Generally, use the __Log.v() Log.d() Log.i() Log.w() and Log.e()__ methods. The order in terms of verbosity, from l ...
  • 一:串口通信簡介 由於串口開發涉及到jni,所以開發環境需要支持ndk開發,如果未配置ndk配置的朋友,或者對jni不熟悉的朋友,請查看上一篇文章,android 串口開發第一篇:搭建ndk開發環境以及第一個jni調用程式 ,串口通信和java操作io類似,先打開串口,然後向串口發送或者讀取數據,最 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...