初級到中級再到高階程式設計師的進化之路

2022-09-03 08:33:11 字數 4204 閱讀 5269

一、初級->中級

通常在初級這個階段,是進步空間最大的階段,這個階段是不存在天花板。

編碼:編碼是初級階段最需要經常做的事情,古話說孰能生巧,寫**也是同樣的道理。

*寫什麼樣的**

在公司要多做業務,嘗試不同的業務,目標是讓自己成為乙個熟練工。下班後也可以折騰點

小專案做,可以選擇自己感興趣的內容,嘗試自己實現一遍。

*如何寫**

學會模仿,參考大牛的編碼風格,照葫蘆畫瓢。如果公司有**規範,跟隨著公司的**規範走,如果沒有,參考業界**,並用工具(如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 框架進行簡單的業務開發。

遇到複雜的元件和模組,會找現有的輪子使用。

中級程式設計師

在必要的輔導或標準流程支援下,能獨立負責乙個子模組或者乙個專案的具體任務,對及時性和準確性負責。通常是 2-3 年工作經驗的同學。

能力要求

除了前端基礎知識外,熟悉計算機、網路等專業基礎知識。

熟練掌握工作中使用的技術棧開發業務。(除了 mvvm 框架外,還能了解 webpack 的配置)。

能了解乙個需求從開發-上線整個生命週期,並對各個環節負責。

具備基本的邏輯分析、問題分解、歸納總結等能力。

了解基本的資料結構和演算法,寫**較熟練。

知道從靠譜的渠道去查詢問題,在找不到合適輪子的時候,會造一些簡單的輪子輔助業務開發。

高階程式設計師

具有獨擋一面的能力,能夠高質量完成工作,能把握乙個系統/團隊的整體實現,在推行過程中能提煉新的方法或方案,或對現有方案提出改進建議並被證明有效。通常是 3 年+ 工作經驗的同學。

能力要求

具有獨擋一面的能力,能高質量的完成模組級的工作。

熟練掌握工作中使用的技術棧,並能了解它們的實現原理。

能夠在乙個需求從開發-上線整個生命週期中找到痛點,並能使用技術的手段解決,提公升效率。

能在模組維度對問題或需求做出分析和拆解,並做出相對合理的實現方案。

熟練掌握基礎的資料結構和演算法,**符合規範,邏輯清晰。

有較好的技術選型能力。

程式設計師的進化

高中時候 10 print hello world 20 end大學第一年 program hello input,output begin writeln hello world end.高年級大學生 defun hello print cons hello list world 初級專家 inc...

從初級程式設計師到高階程式設計師你只需要注意這幾點

1 命名不規範 命名很隨意,當時寫 特別high,什麼奇奇怪怪的命名都有的,完全意識不到全名規範的價值和意義。2 不寫單元測試 確切來說,是不按tdd的方式開發。在現在ide這麼強大的情況下,先寫單元測試的習慣,不僅僅是 的嚴謹性,也是效率的代名詞啊。好的單元測試,邏輯必然會清楚 3 先整合,再測試...

從初級程式設計師到CEO的蛻變

從初級程式設計師到ceo的蛻變 現在對程式設計師的普遍 暗黑 看法是,這是一群所有時間都窩乙個黑暗的房間裡,與數百萬行 為伍,也許甚至不具備人際交往能力的 程式猿 好吧,雖然我也有程式設計背景,所以可能會有點偏頗,但是這顯然是無稽之談。php程式設計師不僅能力卓絕 是創造現代生活和商業的基石,而且還...