零基礎(chǔ)的前端開發(fā)初學(xué)者應(yīng)如何系統(tǒng)地學(xué)習(xí)?
回想四年前我剛?cè)胄械臅r候,那時候很多人對于前端的看法是“切圖,畫頁面,有個編輯器+瀏覽器就能干,門檻低”,現(xiàn)在已經(jīng)完全不是那樣了,可以說現(xiàn)在的前端這個職業(yè)的門檻雖然還是沒怎么變,但是整個行業(yè)的門檻提升了,換句話說就是整個行業(yè)對于前端這個職位要求更高了,對于前端小白的需求量降低,對于高級前端的需求量還在上升,甚至是供小于求的局面。從市場經(jīng)濟學(xué)角度上講你只有進入到高級級別,才能真正吃到行業(yè)的紅利。?因此想要入行的朋友要先想清楚,不要頭腦發(fā)熱,如果你想清楚了,那么請繼續(xù)往下看。說實話,現(xiàn)在的前端大環(huán)境對初學(xué)者來說實在有點不友好,學(xué)習(xí)資料魚龍混雜,良莠不齊,有質(zhì)量很高的學(xué)習(xí)資料,也有謬論,前后不一,觀點錯誤,或者講述不清晰的。更可怕的是質(zhì)量低下的文章有時候更受歡迎,因此需要大家有很好的甄別能力,但這對于初學(xué)者來說實在有些困難,我在這里就來談一下 初學(xué)者如何少走彎路,并且系統(tǒng)性地學(xué)習(xí)前端。
興趣是最好的老師
興趣不管對于學(xué)習(xí)什么來說都是最好的老師。當然前端也不例外,如果你對這一門感興趣,絕對會對你有很大的幫助。

關(guān)于如何培養(yǎng)興趣,我提一點,你可以嘗試去做一些小的“發(fā)明創(chuàng)造”,從而激發(fā)自己內(nèi)心的“成就感”。這些小發(fā)明可以是一些小工具,小頁面。你可以從開源社區(qū),比如Github或者一些論壇,甚至自己的生活中收集一些創(chuàng)作素材。對于我來說,我就做過一個“前端開發(fā)工作流”的軟件,“siri”, “小門神”等,從而帶來成就感,提升自己的興趣。
權(quán)威,權(quán)威,還是權(quán)威
其實技術(shù)越往上走,越會關(guān)注標準,關(guān)注協(xié)議等更上層和抽象的東西。而制定這些協(xié)議和標準的人往往都是世界上的“殿堂級”程序員,因此關(guān)注這些東西對于他們來說就是權(quán)威,對他們來說就非常很重要,但是這對于初學(xué)者來說似乎還比較遙遠。那么初學(xué)者如何對接“權(quán)威”呢?剛才提到了網(wǎng)上的學(xué)習(xí)資料參差不齊,這其實對于入門學(xué)習(xí)來說是很不利的,就像童年時期對于整個人生的影響一樣,入門階段對于整個前端開發(fā)生涯的影響也是巨大的。關(guān)于如何初學(xué)者如何對接權(quán)威,我這里總結(jié)了以下三點:看一些權(quán)威的書籍,包括前端基礎(chǔ),軟件工程以及算法等。這里不太建議看太老的,畢竟技術(shù)的發(fā)展是很快的,以前非常經(jīng)典的書并一定適合看了,尤其是初學(xué)者而言。這里前端方面我重點推薦兩本書,一本是《你不知道的JS》,一本是《JavaScript語言精粹》。除了前端,你還可以看一些軟工類的書,我個人比較喜歡的有《程序員修煉之道》等,算法類的有《圖解算法》,《編程之美》等。其他的我就不一一贅述了,想要更多書單的可以私信我。





查權(quán)威資料。這里我推薦兩個,一個是MDN的文章,真的是又全面又專業(yè),絕對是前端開發(fā)必備神器,哪里不會點哪里。另外推薦一個Google開發(fā)者 , 里面干貨很多,絕對權(quán)威。這里順便再安利一個軟件,用來查文檔什么的,簡直如虎添翼,這個軟件的名字是Dash,大家可以把自己常用的框架,類庫等導(dǎo)進去,想用的時候直接查詢即可,比去網(wǎng)上搜更快更高效,這個軟件對于定制的支持度也是蠻高的,誰用誰知道。
(大家可以看到我下載了很多documentation)
(你可以直達某一個documentation搜索,也可以全局搜索,甚至可以搜goole和stackoverflow,是不是很貼心?)
關(guān)注一些圈內(nèi)權(quán)威人士。我一般會關(guān)注幾個圈內(nèi)比較知名的人的知乎,微博和twitter。這是我關(guān)注的Github的權(quán)威人士列表。其實這些都是公開的,你也可以點開我的知乎,微博資料看我或者大佬們關(guān)注了誰。
做一些完整的簡單項目
大家可以嘗試做一些簡單的項目,不要嫌簡單。在做的過程往往能發(fā)現(xiàn)很多問題,如果有問題那這正好是自己提高的機會。如果你覺得很簡單,也沒有關(guān)系,你可以思考一下,我有沒有可能做的更好?我能不能把這些東西封裝起來,建立更高一層的抽象(A New Level of Abstraction),做到DRY(Don't Repeat Yourself)。接下來就是關(guān)于怎么找項目。你可以找個正式工作或者實習(xí)來做,也可以自己找一些小項目來練手, 比較常見的練手項目有模仿某個網(wǎng)站,APP或者搭建自己的個人主頁,博客系統(tǒng)等。做好了不僅可以當敲門磚,說不定會收益很長時間呢。實在沒有什么項目練手,這里再推薦一個網(wǎng)站,你可以在上面打怪升級。freecodecamp現(xiàn)在你已經(jīng)掌握了前端開發(fā)的基本概念和技能,那么如何做到更進一步,持續(xù)成長,做到高級呢?我相信這是很多人的疑問,下面我們就來看一下。
學(xué)習(xí)路線
你可能已經(jīng)聽過過大前端這個詞,我這里不是勸退你哦。以下內(nèi)容很高能,不過很多知識點不知道沒關(guān)系,因為就算是工作了很多年了老手也很難了解其中的大半知識點。我個人為了讓自己鞏固知識,同時也為了幫助他人,總結(jié)了大前端下的30多個主題內(nèi)容,內(nèi)容覆蓋大前端的方方面面,雖然是從面試角度出發(fā),但是你用來提升自己,查缺補漏也是很有用的。
多圖預(yù)警:



拿《編程題》主題來說,我總結(jié)了各大公司常考的幾十道題目。
對于其他主題也是一樣,我都會盡可能地深度講解和剖析,并且從多方面理解,我相信這是在市面上很少見的。
而且我還畫了很多圖,來幫助大家理解一些抽象的知識點。

項目地址:https://lucifer.ren/fe-interview/#/ ? 歡迎圍觀。
開源項目

實話實說,很多優(yōu)秀的思想,規(guī)范,寫法我都是從優(yōu)秀的開源項目中學(xué)來的。我會不定期閱讀一些優(yōu)秀的開源項目源碼,也會參與到開源的工作中去,這給我自己帶來了很大的提升。不僅技術(shù)得到了提升,團隊協(xié)作,規(guī)范化等方面也有了質(zhì)的提高,另外還認識了一些優(yōu)秀的人。四年來,我閱讀了很多優(yōu)秀的源碼,也嘗試自己去造一些輪子,并開源出去,回饋社區(qū)。
輸入 + 輸出
前面重點講述的是輸入。其實學(xué)習(xí)的過程不僅僅是輸入,輸出也是很好的學(xué)習(xí)方法。輸出的形式有很多,比如寫博客,講給別人,開源出去讓別人用等。這其實是很好的學(xué)習(xí)機會,這種學(xué)習(xí)方法可以讓你的成長速度呈指數(shù)型增長,因此千萬不要小看它。我會通過以練代學(xué)的方式來學(xué)習(xí),比如我學(xué)習(xí)React,我會迅速看文檔,然后寫demo,最后我會自己《從零實現(xiàn)React》來內(nèi)化它。
我還會定期做總結(jié),寫文章,寫開源項目,做分享等,目的一方面是影響他人,另一方面是成長自己。
持續(xù)學(xué)習(xí)
選擇了技術(shù)這條路,就要做好持續(xù)學(xué)習(xí),每日精進的準備,跟上時代潮流是很有必要的。
日報周報。大家可以訂閱一些前端方面的日報周報,這方面其實有很多,這里只推薦一個我常看的一個JavaScript周刊。我自己也出了一款《每日一薦》, 每天推薦一個優(yōu)秀的開源項目,優(yōu)秀文章, 周一到周五我們不見不散。

深度參與開源項目。關(guān)于如何參與開源項目其實可以另起一篇文章了,這里不再贅述,感性的話,我會再寫一篇文章,大家記得關(guān)注我就好。 定期總結(jié),技術(shù)輸出。我的習(xí)慣是對于學(xué)習(xí)的內(nèi)容定期和不定期地進行總結(jié)。比如最近我在總結(jié)的[《leetcode題解》](現(xiàn)在有18k+ ?了)(https://github.com/azl397985856/leetcode),《大前端面試寶典》

千萬不要覺得算法對前端不重要,算法,網(wǎng)絡(luò),操作系統(tǒng)屬于基礎(chǔ),從事相關(guān)工作的都應(yīng)該認真學(xué)習(xí),打好基礎(chǔ)才行。
關(guān)注我
大家可以關(guān)注我的公眾號《腦洞前端》,公眾號后臺回復(fù)“大前端”,拉你進《大前端面試寶典 - 圖解前端群》。回復(fù)“l(fā)eetcode”,拉你進《leetcode題解交流群》

最后祝大家在前端的路上越走越遠。
