零基礎學習前端,正確的學習方式是怎樣的?

很多小夥伴們經歷過這樣的學習階段:

1.看網上的影片教程2.照著敲3.學完了一個覺得自己還沒學會4.在學另外一個教程5.感覺自己學會了6.找個專案一做,做不出來,再找教程7.重複1-7

到最後發現,自己什麼都知道一點,好像什麼都會了,又好像什麼都不會。你說不會吧,你問他各種知識都能說出一個所以然來,教學案例也能敲得熟練,你說會吧,一個全新的專案一點都寫不出來。

那麼問題在哪呢?

零基礎學習前端,正確的學習方式是怎樣的?

你說他練得少?並不是!

因為他硬盤裡和自己敲過的專案已經很多了,再重複一個類似的專案已經沒多大意義,除了消耗掉自己僅存的學習動力,然後放棄前端這個行業,沒什麼好處。

那麼問題出在哪呢?

真正原因是他沒有掌握成為一個合格前端的正確姿勢。

首先我們先搞清一個問題,學會的標準是什麼?

我認為程式設計是一項技能,而不是知識。所以學會的標準就是給你對應的標準,能夠產出合規的產品。

但是這就涉及到了第一個層次的學習,雖然程式設計是一項技能,不是知識,也就是說光掌握知識成不了一個合格的程式設計師,但是沒有必要的知識儲備,一定成不了好的程式設計師。

這裡就涉及到如何進行知識儲備的問題。

說到知識儲備,有不可避免的要說到什麼樣的知識需要儲備。

第一類知識,基礎。

很多人可能第一反應是,公司要什麼,我學什麼唄,然後一搜,出現如下的崗位需求:

1。本科(含)以上學歷,計算機相關專業,1年左右相關經驗;

2。有較強的技術能力與視野,對技術有強烈的好奇心和求知慾;

3。Javascript 基礎紮實,熟悉 ES6、 模組化開發、前端元件化;

3。深入瞭解 HTML/CSS, 能夠高效還原視覺互動細節;

4。熟悉 webpack/gulp 等打包工具的使用,對新技術框架(ES6, Babel, Vue)等有一定的見解和實踐;

5。有一定的後端開發經驗,熟練使用Git;

6。有良好的工作態度及溝通表達能力;

7。有良好的學習能力、獨立解決問題的能力;

看到這麼一個崗位要求之後,很多前端人員會這麼想,

1。本科(含)以上學歷,計算機相關專業,1年左右相關經驗;

關於學歷這個有就是有沒有就是沒有,沒什麼糾結和感慨的。至於因為這條考慮考個證書,不在本文講述之內。

2。有較強的技術能力與視野,對技術有強烈的好奇心和求知慾;

這條我符合,我沒事就看看新的技術啊,像vue,react和angular,或者是node 我都接觸過,安裝個腳手架,用一個模組沒啥問題,這個我符合。

3。Javascript 基礎紮實,熟悉 ES6、 模組化開發、前端元件化;

js我用好幾年了,各種特效666,ES6 let 、箭頭函式都沒問題,元件化不就是import嗎,我會。

4。熟悉 webpack/gulp 等打包工具的使用,對新技術框架(ES6, Babel, Vue)等有一定的見解和實踐;

哎呀,我沒用vue工作流寫過專案,這個我沒專案經驗啊,我要不找個影片,寫個專案吧,這個我欠缺,我得學學vue。

有一定的後端開發經驗,熟練使用Git

要不我學學php?node是用js寫的,這個我應該學起來容易些。要不學學Python也挺好,這個現在很火。然後陷入了無限的糾結和嘗試之中。

5。有一定的後端開發經驗,熟練使用Git;

6。有良好的工作態度及溝通表達能力;

7。有良好的學習能力、獨立解決問題的能力;

我缺少git,看來我得註冊一個gitHub,7,8我應該沒問題。

綜合起來一看,哎呀看來我現在確實應該學vue啊!

這樣乍看起來分析得沒錯,但是仔細想想就會發現有很大的問題。

那就是忽略了基礎!

如果你認為js只是寫寫特效,ES6 只有let和箭頭函式,元件化就是import,那麼你的js哪怕工作了10年也只是個初級水平。你的工作經驗不是時間,是你掌握的知識深度和解決問題能力。

如果你連基礎的js 面向物件都搞不明白,你連ES6 除了let 和箭頭函式之外都搞不清楚,那麼你必然會存在兩個問題:

1。自然而然你就會認為node是用js寫的,Vue要學的也不過是用腳手架跑幾個小例子就算入門了。

2。有這樣的認識,你就是想學也不可能深入了。

我說上面話,並不是說所有學vue的人基礎都不好,而是說,如果你只會或者只想學vue不會成為一個合格的前端,更不要說優秀的前端了。

所以,第一個知識儲備就是基礎知識,基礎知識是掌握那些“高階”知識的關鍵。你基礎非常紮實的時候,就會對自己有個客觀的評價,自然也就知道你需要什麼知識了,而不需要滿大街的去找各種學習計劃了。自然也不用我在這裡推薦什麼學習知識了。

學會了基礎還有當你前端水平發現很難突破的時候,你可以有更寬廣的視野,比如學習演算法、作業系統、資料結構,網路原理,這些都會讓你對前端有更深入的認識,而不是感覺,前端不就那點東西嘛。

說完了儲備什麼知識,我們說下獲取知識的途徑:

找一個大佬帶你

很多知識都是透過實踐總結而來的,找一個工作很多年的老師來帶你,是讓你的知識迅速上身最快捷有效的方式。找老師帶你其實就是花錢買時間,把你本來幾年提升的知識,一年甚至幾個月獲得。

2。自學

大部分人都沒有時間或因為個種原因不去參加培訓,那麼自學就成了最主要的手段。

1。看書,效果慢,另外可能例子很老舊。除了經典之外的書就不要看了,說實話,大部分是用來賺錢的。除了 浪費你一些錢之外,還浪費你的時間。

2。檢視官網

官網永遠是一項技術最權威的知識釋出渠道。

3。看影片,很多人硬盤裡都有一套有一套的影片,不過並沒有讓大部分的技術和工資漲上去為什麼呢?

剛才我說了因為很多人不知道自己學會沒學會,就算搞清楚了學會的標準好像對自己也沒什麼幫助,就像告訴你駕校的考試標準,你也沒辦法透過考試,程式也是一個需要動手的行業,這裡的動手指的是給你一個需求或者一個專案效果,能夠完成。而不是停留在問你陣列有幾種方法,你對答如流一樣。紙上談兵沒什麼用。

那如何達到獲取技能而非知道知識呢?

1.更改學會的標準

如何驗證你學會了?

1。看完一個完整的影片,理解思路,嘗試著自己敲,卡住了,複習卡住的部分影片。

2。刪掉原來敲好的,重新開始,繼續敲,卡住了。

3。重複1,2。

4。直到流暢寫出為止。

2.模仿

(1)前期模仿一些簡單專案,注意只要練習你要重點學習的部分,比如你想練習網易新聞的新聞列表,那麼就不用關心他的資料互動或者使用者登入邏輯怎麼實現的

(2)中後期模仿一些通用的專案,如部落格,商城,還有你手機上安裝的那些APP統統模仿一遍

3.交流

作為一個合格的程式設計師,要學會問問題和使用git。因為學會問問題才能得到能夠解決問題的答案。學會使用git才能夠更好的和程式設計師交流以及分享、討論貢獻程式碼,而這個是以上三點裡面 最重要的一點,如何做到呢?

(1)花一些時間去嘗試解決問題,遇到問題的第一個反應不該是求助,也不該是百度,而是分析問題所在,嘗試定義問題,解決問題。這個是學習提高最快的部分。

(2)嘗試解決無果,拿老師的課件和自己的程式碼使用對比工具對比,這裡提供一個工具:https://www。diffchecker。com/其它也行。

(3)嘗試google。

(4)嘗試所搜無果,嘗試清晰的描述一個問題,是你能夠獲得有效幫助的第一步,也是最重要的一步。別說我不會這類得不到幫助的話,去垂直的網站、QQ群或者找大牛請教。多說一句你的工作經驗不是編出來的,而是每一次解決問題積攢下來的。所以一定要重視。

掌握了正確的學習姿勢,配上合適的學習計劃,那麼成為一個合格的前端,只是時間的問題了。