從碼奴到碼神之路--初級到中級再到高級程序員的進化之路
一、初級->中級

通常在初級這個階段,是進步空間最大的階段,這個階段是不存在天花板。
編碼:編碼是初級階段最需要經常做的事情,古話說孰能生巧,寫代碼也是同樣的道理。
寫什么樣的代碼
在公司要多做業務,嘗試不同的業務,目標是讓自己成為一個熟練工。下班后也可以折騰點
小項目做,可以選擇自己感興趣的內容,嘗試自己實現一遍。
如何寫代碼
學會模仿,參考大牛的編碼風格,照葫蘆畫瓢。如果公司有代碼規范,跟隨著公司的代碼規范走,如果沒有,參考業界代碼,并用工具(如elint)約束自己。遇到一些不會寫的,哪怕找到可以參考的代碼,跟著抄一遍也行。
學習
初級階段是需要通過大量的學習來提升自己的能力。
1.明確自己的學習目標學習是為了提升能力,能讓你勝任更復雜和有挑戰的工作。
2.應該學習什么內容 前端基礎,JS、CSS、HTML反復學習。工作中用到的一門前端MVVM框架。
了解一些廣度知識,比如HTTP、正則表達式、Web安全、性能優化、設計模式,數據結構和算法。
3.找到合適的學習方式
看書+編碼:購買經典的書籍閱讀,并作為平時寫代碼的參考工具,看書和編碼是一個反復的過程,
基本就是看書->編碼->看書->編碼循環3-4次,這個過程就是不斷修煉內功。
視頻:慕課網的入門實戰視頻,根據自己的需求購買,要充分學習自己購買的每一個視頻,認真的跟著老師學習一遍寫一遍,遇到不懂的要積極提問,學習在于深入而不在于多。視頻比書籍的好處在于更貼合實踐,也更貼合公司業務,另外,課程的升級和更新也更加靈活。
官方文檔:學習每一個新技術棧,入門最好方式就是通過他的文檔學習,可以系統,手敲他的每一個示例。
4.花更多的學習時間,如果想比別人成長得快,就得比別人花更多的時間來學習(這也是為什么不鼓勵日常加班),尤其是初級這個階段,成長曲線是非常快的。
5.知識沉淀,俗話說好記性不如爛筆頭,可以養成寫博客的習慣,把學習的內容用文字的形式記錄下來,
整理成文,并按學習的技術方向做歸類。
提問
在初級階段,免不了經常遇到問題,會提問也是一門技術活,好的提問姿勢也能讓你事半功倍。
1.好的提問方式
首先你在提問之前,自己應該經過充分的思考,并學會把問題拆解,在拆解的過程中就會把問題的復雜度降低。其次要善用搜索引擎,把關鍵字提取出來去搜索引擎上去搜索,先嘗試自己解決問題。
如果仍然不能解決,可以將問題的相關上下文、截圖及必要標識及自己的思考過程、查找到的相關資料,以及
自己的分析發送給想要幫助你的人,并能提供最小復現的問題。
最后,請將你的問題及解決方案重新整理,并告知幫助你的人問題已經解決,重新整理解決問題的
過程會幫助你理清思路、從而對問題有著更新的理解。
中級->高級
到了中級階段,基本上意味著你可以在大公司缺人的時候進入大公司工作了,如果想成為大公司不可拒絕的人才,
那你還需要朝著高級階段努力。
編碼沒錯,到了中級階段,你想要提升最重要的途徑還是要編碼。
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完整性、文檔、上手難度、維護力度、生態等)去做對比。
要保持對新技術的敏感的關注,并時刻思考這些技術能否為自己的業務帶來價值,在需要的時候做合理的技術選型。
總結:所謂技術能力其實就是解決問題的能力和學習能力,所以無論你在哪個階段,甚至是更高的階段,不斷提升這兩個能力都是你應該一直要做的事情。
初級程序員
僅能完成簡單模塊和項目的開發工作,難以勝任復雜模塊的開發。通常是入行不久, 1 年及以下工作經驗的同學。
能力要求
熟悉前端基礎知識如 HTML、JS、CSS 。
能夠使用一門 MVVM 框架進行簡單的業務開發。 遇到復雜的組件和模塊,會找現有的輪子使用。 會使用百度、google 等檢索工具搜索問題。
1
2
3
中級程序員
在必要的輔導或標準流程支持下,能獨立負責一個子模塊或者一個項目的具體任務,對及時性和準確性負責。通常是 2-3 年工作經驗的同學。
能力要求
除了前端基礎知識外,熟悉計算機、網絡等專業基礎知識。
熟練掌握工作中使用的技術棧開發業務。(除了 MVVM 框架外,還能了解 webpack 的配置)。 能了解一個需求從開發-上線整個生命周期,并對各個環節負責。 具備基本的邏輯分析、問題分解、歸納總結等能力。 了解基本的數據結構和算法,寫代碼較熟練。 知道從靠譜的渠道去查找問題,在找不到合適輪子的時候,會造一些簡單的輪子輔助業務開發。
1
2
3
4
5
高級程序員
具有獨擋一面的能力,能夠高質量完成工作,能把握一個系統/團隊的整體實現,在推行過程中能提煉新的方法或方案,或對現有方案提出改進建議并被證明有效。通常是 3 年+ 工作經驗的同學。
能力要求
具有獨擋一面的能力,能高質量的完成模塊級的工作。
熟練掌握工作中使用的技術棧,并能了解它們的實現原理。 能夠在一個需求從開發-上線整個生命周期中找到痛點,并能使用技術的手段解決,提升效率。 能在模塊維度對問題或需求做出分析和拆解,并做出相對合理的實現方案。 熟練掌握基礎的數據結構和算法,代碼符合規范,邏輯清晰。 有較好的技術選型能力。
1
2
3
4
5
開發者 視頻
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。