學習前端兩年了,感受有點迷茫,學習沒有重心,感受什麼都會點,又感受本身什麼都不會,真的有點難受,但願各路大佬給我提點建議。javascript
不太好說,調用堆棧,this的工做原理.做用域(函數做用域, 塊級做用域和詞法做用域)閉包。當即執行函數, 模塊化, 命名空間。面向對象編程,原型,原型繼承,原型鏈,Class。函數式編程,數組的一些方法map,forEach等。偏函數,currying in javascript,bind。異步編程,promise,async,generator.
後續:
繼續看書,js不錯的書挺多的。。
前端
瞭解代碼的大致流程,熟悉每一個特性的用法,能夠不知道源碼是如何執行的,但要知道每個特性出現的意義。如爲何vue裏面會有computed,爲何要出現這個東東?簡單說就是達到靈活運用的程度.
後續:
(1):框架出現的目的是什麼,解決了哪些實在的問題,有沒有一些寫起來不舒服的地方,提出一些本身的想法
(2):寫一些通用的‘好用’的組件,如react中的'高階組件'
(3):讀源碼,一些特性具體是如何實現的,源碼的總體架構流程
(4):嘗試模擬的寫出一個相似的框架vue
以redux爲例,上手很容易,只有少數的api,運用起來很方便,須要理解redux的實現機制,redux的中間件實現原理,redux源碼.java
理解common.js,require模塊機制。node.js error代碼的捕捉方法。event loop.HTTP創建一個web服務。node的內存管理,垃圾回收機制,buffer,Stream,Readline。異步api,nexttick/setImmediate.process,cluster,進程間通訊。
後續: (1):單元測試
(2):C++寫一些擴展模塊
(3):cluster保證負載均衡,理解守護進程,進程相關問題.
node
應用express or koa 搭建一個node服務,配置路由,理解後端渲染,理解cookie+session。理解next,use,router.mysql
後續:
(1):理解express和koa中間件機制的差別。
(2):koa如何應用async,await
react
操做系統方面,理解線程和進程的概念,js中的異步代碼,事件隊列,內部涉及到了線程間通訊。理解同步,異步,阻塞,非阻塞的區別,瞭解那幾種IO模型,nodejs的異步io的內部機制要想搞清楚,這些概念要理清。
編譯原理方面:nginx
對於編譯型語言如C語言,詞法分析(狀態機)->語法分析(抽象語法樹AST)->中間代碼(相似於java中的.class字節碼)->目標代碼(彙編)->二進制機器碼()web
對於解釋性語言如javascript,詞法分析(狀態機)->語法分析(抽象語法樹AST)->中間代碼()---->黑盒子(如java的虛擬機))-->運行結果。正則表達式
理解編譯型語言和解釋的區別在於,編譯型語言直接拿到的是二進制文件去執行,解釋型語言是從源碼去執行。
感受做爲一個前端工程師,也應該去寫一些編譯型的編程語言,最好是C語言,這樣能夠更好的理解編譯型語言和解釋型語言的區別,也會更容易的接受typescript的出現。
後續:
webkit的js引擎的一些優化的技術,如JIT
V8引擎的機制
目前理解的是OSI的7層協議 物理層,經過媒介(光纖,電磁波)傳入bit.
數據鏈路層(交換機),將比特組裝成幀和點到點的傳遞.
網絡層(ip協議)。數據包的傳遞.
運輸層(TCP,UDP),抱文傳輸,TCP,三次握手四次揮手,斷點續傳等,可靠。UDP,直接傳過去,無論對方有沒有接收到,不可靠。
會話層(創建、管理和終止會話,會話協議數據單元 SPDU).
表示層(對數據進行翻譯、加密和壓縮).
應用層(FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS).網絡通訊的大致流程瞭解。
理解HTTP協議,熟知請求頭和響應頭的結構,大部分經常使用的header, status的含義。
後續:
(1):深刻學習TCP協議,基於socket編程。
理解數組,鏈表,雙向鏈表,棧,隊列,字符串,哈希表,二叉樹的基礎,平時本身實現相對複雜的東西如前端路由,promise實現,應用的就是樹(DFS/BFS)和鏈表等,感受圖在前端領域目前應用的很少,若是不是計算機專業出身,感受‘暫時’能夠不須要會。
後續: (1):堆 (最大堆,最小堆)
(2):優先隊列
(3):字典樹,AVL樹,紅黑樹
(4):圖,有向圖和無向圖
感受前端應用更多的仍是排序算法,冒泡排序,插入排序,選擇排序,快速排序。查找算法,二分查找。樹的深度遍歷,廣度遍歷。字符串的KMP算法,正則表達式匹配。
後續:
稍微複雜一點的算法,堆排序,歸併排序,希爾排序。
用過,基本的增刪改查。
後續:
繼續學習
配置反向代理,別的都不太懂。 後續:
繼續學習
目前能夠實現一些單一的功能,如本身實現一個前端路由,實現一個promise,但本身模擬去寫一個前端框架,力有不逮。 多思考,多寫一些不同的代碼,多看一些別人的代碼。
求解答