最近重學前端在前端娛樂圈是挺有熱度的,早前無心間經過別的木易楊大佬接觸到winter大神,這是當時看到的大佬整理的筆記,這位大佬也在掘金活躍,這是大佬的筆記節選:前端
一、對於框架的使用不必花太多時間,應該多研究一下三大框架背後的設計思想。
二、當一個程序員對算法、語言標準、底層、原生、英文文檔這些詞彙產生恐懼感的時候他的技術生命已經走到盡頭。
三、前端架構主要解決的是高複用性,架構能力提高方向主要是組件庫開發、前端框架實現等。
四、對於前端進階這個問題,其實看書的做用和意義已經不太明顯,須要尋找好的平臺和合適的項目,在項目中不斷克服難題並挑戰本身,遇到問題再去查資料總結。若是隻是閉門看書那很難成爲高手,書只是基礎而已,真正的應用仍是在項目中。
五、寒冬中能作的只有提高本身,可是光靠技術是不行的。
複製代碼
1.編譯原理,這個東西離咱們前端是多麼遙遠,可是如今SASS,Babel這些,不都是依賴AST,須要編寫的Bable插件,不少時候須要咱們對AST有必定了解,編譯原理對這方面有很大幫助,這裏有一篇文章 2.計算機網絡,話說這個東西我上課的時候,以爲特別無聊,等工做的時候,發現,哦豁,書上的東西和如今的東西咋不同,TCP、UDP這些,我都很吐槽的,由於平時就發個請求,也沒啥,到了接觸工做,發現瞭解http、https這些,對咱們開發頗有幫助git
1.個人一個想法就是,原生就是咱們學習的加減乘除,然後續的高級數學(框架)都創建在這基礎上,一個加減乘除不熟悉的人,你以爲他會不少計算出高級數學的結果嗎。程序員
2.瞭解原生可以站在語言設計者角度來認識這門語言,就像媽媽同樣,你瞭解你的孩子優勢和缺點,那麼很容易在讓他作一件事以前,分析優缺點,讓他作合適的事情,若是是外人,那麼只想着讓孩子作事情而已。github
1.算法的本質是爲了解決問題,可是通常來講,咱們不多遇到非算法不能解決的問題,那麼算法就主要突出在解決問題的思路和效率上,也就是能夠更好的解決問題,這是算法被忽略的重大緣由,從之前我看到阮一峯大佬的快排算法被批,我就意識到問題的嚴重性,算法是嚴肅的,人家是空間換時間,你是爲了實現方面犧牲了空間,實現卻是實現了,可是缺不能瞭解到快排的靈魂所在,只要沒有到達瓶頸,那麼優化永遠是句空話,如今的首屏渲染優化,也是突出了之後才被重視的。算法
2.算法能夠帶來思惟方式的變化,當時有一個舍友在實現一個類型微信的好友查找,有一個輸入名字而後顯示候選人,我被他的思惟所驚訝道,他使用了最長公共子序列,而後那這個最長公共子序列算法去計算這個序列與匹配字符串的比率,按照這個來排序,這個方法先不談,我驚訝於他對處理事情的思惟,與我已經不一樣,還有一個就是當時在CNODE社區看到的嵌套數組查找元素,有人提出了更快的查找算法,多麼有思想的人。編程
3.算法思想也能夠遷移到其餘場景,我發現這個問題是在刷一題叫數組前K個最大值、還有一題n個元素的數組,最少須要比較多少次的題目,二者都用到了快排的思想去解決。數組
1.語言標準就像數學上的定義,是全部問題的最終解決手段, 最近來看,ECMASCRIPT規範,已經被不少人知道了,而且應用到了本身學習中去,對我而言,有一個貼切的例子,規範就像咱們學習的導數,不知道原理,能夠去用,還用得不錯,可是遇到一些問題,沒法解決,這時候老師就會從導數原理講解解題思路,正如這個例子,語言標準是咱們解決問題的最終手段,是這門語言的公理,有時候一些問題困惑,咱們須要它來解惑。前端框架
1.三大框架的共性是什麼,MVVM、組件化、狀態管理、路由,固然這裏因爲我也沒仔細研究過Augular,React,這裏只能說大致是這樣。由於之前JQuery那種MVC的模式,因此出現了MVVM來實現關注點分離,讓咱們精力關注在數據上,前端複雜了,因此須要組件化來解耦,解耦以後數據流成了網狀,咱們設計了狀態管理來使得數據流變爲樹狀,爲了實現全局、局部切換,設計了路由來對應視圖的URL映射微信
1.命名,如今不少人亂命名,寫出來的代碼只能給本身讀,好的命名能夠自解釋,像拼音首字母縮寫命名法,可能次日你本身都忘記了,可是標準命名,人家就算不懂英文,查一下就知道你寫的是啥。網絡
2.看到XX報錯,反手就把提示甩給別人,其實如今框架作得很好,英文提示基本都告訴你是什麼錯誤了,不懂英文還要先去翻譯一次,懂英文可以直接翻譯成中文,按照本身的理解來解決問題,這方面花費的時間差距是很大的。
3.技術博客、技術書,編程這東西是在外國帶過來的,人家就像咱們用中文寫代碼那樣暢快,咱們起步也晚,國外的技術博客、技術書不少時候都是質量很是高的,有人會說,咱們能夠看翻譯,翻譯失真是一方面,更大的問題是,技術的搶先,通常來講,翻譯一本書是須要時間的,也不是全部的外國資料都有翻譯,你能搶先學習,那麼你就有先發優點,第一次意識到這件事,是我在學習語言的類型系統看到的《Types and Programming Languages》,冒的中文翻譯,就只能本身去翻譯了。
1.爲啥說表達能力那麼重要呢,由於你會技術很理所固然的事情,可是擔心的是,可能你以爲你會,只是你的知識限制了你的想象,咱們須要與他人更多的交流,程序員追求的就是言簡意賅,深刻淺出,在讀官方文檔會有摸不着頭腦的狀況,可是看別人的博客就會好不少,博客就表明了這我的的知識組織能力和表達能力。 2.理解能力,甲方爸爸的需求,你總得好好理解吧,半路再改,兩邊難受,我以爲理解的終點,就是可以根據現有的場景推測出對方的意圖,一般來講,對方並不知道他要什麼、問題在哪裏,咱們基於現有的場景進行推測,理解,一個例子就是羣裏說爲啥Vue數據不更新,你就知道他是遇到響應式邊界或者異步問題致使的,固然這個例子不太恰當,我以爲更加像是心有靈犀吧。
1.erlang之父提倡寫程序以前先思考,我我的也以爲是,不該該一股腦去堆代碼,而是應該先站抽象整個事情,分析流程,選擇方案,這個過程就像把完美的算法僞代碼實現,更加符合個人理想中的程序員
我也只是一條大四待業單身狗(哭),這是我昨晚忽然想起來須要總結一些程序員方面的,畢竟最近由於種種緣由,一些思想有了變化,在邁向下一個地點以前,作一個小小的總結,來警示本身,對了,若是大佬們賞臉,能夠在個人GitHub倉庫star鼓勵下