初級前端和中級前端的差別化在哪裏?

首先能夠明確的是每一個技術都有必定的時間累積,那麼在這時間的累積下面,不一樣的人技術水平確定不同,那麼對於大多數前端來講前端技術能力究竟差在哪裏呢?
下面對每一個程序員進行一個歸類的總結
初級程序員
僅能完成簡單模塊和項目的開發工做,難以勝任複雜模塊的開發。一般是入行不久, 1 年及如下工做經驗的同窗。
能力要求
熟悉前端基礎知識如 HTML、JS、CSS 。
.可以使用一門 MVVM 框架進行簡單的業務開發。
.遇到複雜的組件和模塊,會找現有的輪子使用。
.會使用百度、google 等檢索工具搜索問題。
中級程序員(阿里 p5)
在必要的輔導或標準流程支持下,能獨立負責一個子模塊或者一個項目的具體任務,對及時性和準確性負責。一般是 2-3 年工做經驗的同窗。
能力要求
除了前端基礎知識外,熟悉計算機、網絡等專業基礎知識。
.熟練掌握工做中使用的技術棧開發業務。(除了 MVVM 框架外,還能瞭解 webpack 的配置)。
.能瞭解一個需求從開發-上線整個生命週期,並對各個環節負責。
.具有基本的邏輯分析、問題分解、概括總結等能力。
.瞭解基本的數據結構和算法,寫代碼較熟練。
.知道從靠譜的渠道去查找問題,在找不到合適輪子的時候,會造一些簡單的輪子輔助業務開發。
高級程序員(阿里 p6)
具備獨擋一面的能力,可以高質量完成工做,能把握一個系統/團隊的總體實現,在推行過程當中能提煉新的方法或方案,或對現有方案提出改進建議並被證實有效。一般是 3 年+ 工做經驗的同窗。
能力要求
具備獨擋一面的能力,能高質量的完成模塊級的工做。
.熟練掌握工做中使用的技術棧,並能瞭解它們的實現原理。
.可以在一個需求從開發-上線整個生命週期中找到痛點,並能使用技術的手段解決,提高效率。
.能在模塊維度對問題或需求作出分析和拆解,並作出相對合理的實現方案。
.熟練掌握基礎的數據結構和算法,代碼符合規範,邏輯清晰。
.有較好的技術選型能力。
程序員的進化之路
初級 -> 中級
一般在初級這個階段,是進步空間最大的階段,這個階段是不存在天花板的。
編碼
編碼是初級階段最須要常常作的事情,古話說孰能生巧,寫代碼也是一樣的道理。
寫什麼的樣代碼
在公司要多作業務,嘗試不一樣的業務,目標是讓本身先成爲一個熟練工。 下班後也能夠折騰點小項目作,能夠選擇本身感興趣的內容,嘗試本身實現一遍。
如何寫代碼
學會模仿,參考大牛的編碼風格,照葫蘆畫瓢。 若是公司有代碼規範,跟隨着公司的代碼規範走,若是沒有,參考業界規範,並用工具(如 eslint)約束本身。 遇到一些不會寫的,哪怕找到能夠參考的代碼,跟着抄一遍也行。前端

學習
初級階段是須要經過大量的學習來提高本身的能力。
1.明確本身的學習目標 學習是爲了提高能力,能讓你勝任更復雜和有挑戰的工做。
2.應該學習什麼內容 前端基礎,JS、CSS、HTML 反覆學習。 工做中用到的一門前端 MVVM 框架。 瞭解一些廣度知識,好比 HTTP、正則表達式、Web安全、性能優化、設計模式,數據結構和算法。
3.找到合適的學習方式
看書+編碼:購買經典的書籍閱讀,並做爲平時寫碼的參考工具,看書和編碼是一個反覆的過程,基本就是看書->編碼->看書->編碼循環個 3-4 次,這個過程就是在不斷修煉內功。
視頻:慕課網的入門實戰視頻,根據本身的需求購買,要充分學習本身購買的每個視頻,認真的跟着老師學習一遍寫一遍,遇到不懂的要積極提問,學習在於深刻而不在於多。視頻比書籍的好處在於更貼合實踐,也更貼合公司業務,另外,課程的升級和更新也更加靈活。
官網文檔:學習每個新的技術棧,入門最好的方式是經過它的文檔學習,能夠系統的過一遍文檔,手敲它每個示例。
4.花更多的學習時間 若是想比別人成長的快,就得花比別人更多的時間用來學習(這也是爲何不鼓勵平常加班),尤爲是初級這個階段,成長曲線是很是快的。
5.知識沉澱 俗話說好記性不如爛筆頭,能夠養成寫博客的習慣,把學習的內容用文字的形式記錄下來,整理成文,並按學習的技術方向作歸類。
提問
在初級階段,免不了常常遇到問題,會提問也是一門技術活,好的提問姿式能讓你事半功倍。1.好的提問方式
首先你在提問以前,本身應該通過充分的思考,並學會把問題拆解,在拆解的過程當中就會把問題的複雜度下降。 其次要善用搜索引擎,把關鍵字提取出來去搜索引擎上去搜索,先嚐試本身去解決問題。
若是仍然不能解決,能夠將問題的相關上下文、截圖及必要標識及本身的思考過程、查找到的相關資料,以及本身的分析發送給想要幫助你的人,並能提供最小化復現的問題。
最後,請將你的問題及解決方案從新整理,並告知幫助你的人問題已經解決,從新整理解決問題的過程會幫助你理清思路、從而對問題有着更深的理解。
中級 -> 高級
到了中級階段,基本上意味着你能夠在大公司缺人的時候進入大公司工做了,若是想成爲大公司不可拒絕的人才, 那你還須要朝着高級階段努力。
編碼
沒錯,到了中級階段,你想要提高最重要的途徑仍是要編碼。webpack

1.寫什麼的樣代碼
和初級不一樣,除了作業務以外,你也參與開發作一些偏技術類型的項目,好比參與組內組件庫的開發,一些通用 JSSDK 的開發,這些會對你的技術要求會更高。
有機會去參與平時使用到的一些開源技術棧的共建,好比想實現每一個 feature 但現有開源庫不知足,實現難度不大的狀況下能夠去提一個 pull request。
2.如何寫代碼
學會模仿,除了參考大牛的編碼風格,還要琢磨他們的編碼思路,多思考他們爲何這麼作。
學會組件化、模塊化的開發方式,學會複用和封裝,減小 CV 的操做。
對本身的代碼質量負責,能夠常常組織 code review。
工做
想要進階,須要在工做方面有些產出。
1.業務思考
要明白業務和公司的目標,參與到需求的早期階段中,同時也要多思考業務,想着有沒有經過技術手段來提高業務價值,好比移動端的白屏時間減小,能夠帶來很好的用戶體驗,提高用戶的留存率。
2.技術思考
思考業務開發中的一些痛點,如何用技術手段去優化業務的開發流程,提高開發效率,好比爲業務量身定製一款腳手架工具。
3.優化工做流程
不只要熟悉從需求-開發-聯調-測試-上線的每一個工做環節,還要多思考每一個環節有沒有能夠提高的點,特別是上線過程,好比能不能作到自動化,能不能作到小流量上線,能不能及時回滾代碼。
4.技術分享
把工做中遇到的一些問題的解決方案、學習的一些新技術,產出的一些技術項目總結下來,做爲組內技術分享和輸出,這樣一是能夠總結沉澱你的技術,二是可讓你們能知道你作的東西,並活躍組內的技術氛圍,三是鍛鍊本身的表述能力,這個能力在大公司的晉升述職中很是重要。
學習
中級階段仍然須要經過大量的學習來提高本身的能力。
1.明確本身的學習目標
學習是爲了提高本身的硬實力,不只僅可以提高工做效率,還能讓本身更好的服務於業務,升職加薪。
2.應該學習什麼內容
研究工做中所用到的工具鏈,不只僅是運行時的 MVVM 框架,還能夠是編譯時的 webpack,必要的時候去研究其中的源碼實現。
深刻學習一些廣度知識,好比 HTTP、正則表達式、Web安全、性能優化、設計模式,數據結構和算法,並把它們應用到你的工做中。
3.找到合適的學習方式
看書:找到所學習方向的經典書籍閱讀,適當作一些學習筆記。
視頻:如慕課網的進階實戰視頻,根據本身的需求購買。
官網文檔:能夠嘗試去看一下英文文檔。
社區:StackOverflow、HackerNews,慕課網手記、掘金等,除了利用碎片化時間看一些高質量文章學習,也能夠往上面發佈一些優質文章。
GitHub:關注 trending,參與開源社區的共建,並嘗試本身造一些輪子。
4.學習時間與深度
在中級階段,你仍然須要花不少時間去學習,這個時候要注重本身學習的深度了。
5.知識沉澱
俗話說好記性不如爛筆頭,能夠養成寫博客的習慣,把工做中深刻學習到的一些非敏感知識記錄下來併發布,而不只僅去發佈一些基礎知識的學習了。
6.技術視野
除了本身工做中的使用的技術棧以外,也要了解同類其它優秀的開源技術棧,從多個維度(feature 完整性、文檔、上手難度、維護力度、生態等)去作對比。
要保持對新技術的敏感的關注,並時刻思考這些技術可否爲本身的業務帶來價值,在須要的時候作合理的技術選型。
總結
所謂技術能力其實就是解決問題的能力和學習能力,因此不管你在哪一個階段,甚至是更高的階段,不斷提高這兩個能力都是你應該一直要作的事情。程序員

相關文章
相關標籤/搜索