程序員要定位不同階段,需要提高自己的技能

僅能完成簡單模塊和項目的開發工作難以勝任複雜模塊的開發。通常是入行不久 1 年及以下工作經驗的同學。

能力要求

  • 熟悉前端基礎知識如 HTML、JS、CSS 。
  • 能夠使用一門 MVVM 框架進行簡單的業務開發。
  • 遇到複雜的組件和模塊會找現有的輪子使用。
  • 會使用百度、google 等檢索工具搜索問題。

中級程序員

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

能力要求

  • 除了前端基礎知識外熟悉計算機、網絡等專業基礎知識。
  • 熟練掌握工作中使用的技術棧開發業務。除了 MVVM 框架外還能瞭解 webpack 的配置。
  • 能瞭解一個需求從開發-上線整個生命週期並對各個環節負責。
  • 具備基本的邏輯分析、問題分解、歸納總結等能力。
  • 瞭解基本的數據結構和算法寫代碼較熟練。
  • 知道從靠譜的渠道去查找問題在找不到合適輪子的時候會造一些簡單的輪子輔助業務開發。

高級程序員

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

能力要求

  • 具有獨擋一面的能力能高質量的完成模塊級的工作。
  • 熟練掌握工作中使用的技術棧並能瞭解它們的實現原理。
  • 能夠在一個需求從開發-上線整個生命週期中找到痛點並能使用技術的手段解決提升效率。
  • 能在模塊維度對問題或需求做出分析和拆解並做出相對合理的實現方案。
  • 熟練掌握基礎的數據結構和算法代碼符合規範邏輯清晰。
  • 有較好的技術選型能力。

程序員的進化之路

初級 -> 中級

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

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

  • 寫什麼的樣代碼 在公司要多做業務嘗試不同的業務目標是讓自己先成爲一個熟練工。 下班後也可以折騰點小項目做可以選擇自己感興趣的內容嘗試自己實現一遍。

  • 如何寫代碼 學會模仿參考大牛的編碼風格照葫蘆畫瓢。 如果公司有代碼規範跟隨着公司的代碼規範走如果沒有參考業界規範並用工具如 eslint約束自己。 遇到一些不會寫的哪怕找到可以參考的代碼跟着抄一遍也行。

  • 工作 大部分時間都在工作那麼如何合理的利用好 8 小時工作時間呢。

  • 熟悉業務 不要僅僅埋頭寫代碼也需要對業務瞭解認真參與需求評審環節明確自己所做的任務。

  • 熟悉工作流程 要熟悉從需求-開發-聯調-測試-上線的每個工作環節認真按照規範來執行對上線要有敬畏心。

  • 提升效率 工作的時候儘量不要被打斷可以安排一個免打擾時段比如下午的 2點-4點只編碼而不去處理其它事情。減少在羣裏 灌水和鬥圖的時間。

  • 加班 可以接受合理的加班比如爲了趕某一個需求加班一陣子不接受沒有任何補償和調休的日常加班996因爲日常 加班會壓縮你學習和生活的時間。

  • 學習 初級階段是需要通過大量的學習來提升自己的能力。

  • 明確自己的學習目標 學習是爲了提升能力能讓你勝任更復雜和有挑戰的工作。

  • 應該學習什麼內容 前端基礎JS、CSS、HTML 反覆學習。 工作中用到的一門前端 MVVM 框架。 瞭解一些廣度知識比如 HTTP、正則表達式、Web安全、性能優化、設計模式數據結構和算法。

  • 找到合適的學習方式 看書+編碼購買經典的書籍閱讀並作爲平時寫碼的參考工具看書和編碼是一個反覆的過程基本就是看書->編碼->看書->編碼循環個 3-4 次這個過程就是在不斷修煉內功。 視頻慕課網的入門實戰視頻根據自己的需求購買要充分學習自己購買的每一個視頻認真的跟着老師學習一遍寫一遍遇到不懂的要積極提問學習在於深入而不在於多。視頻比書籍的好處在於更貼合實踐也更貼合公司業務另外課程的升級和更新也更加靈活。 官網文檔學習每一個新的技術棧入門最好的方式是通過它的文檔學習可以系統的過一遍文檔手敲它每一個示例。 社區慕課網手記、掘金、CSDN、InfoQ 等中文社區利用碎片化時間看一些高質量文章學習。 GitHub學會 GitHub 的使用知道 clone、fork、pull、push 等基本操作。

  • 花更多的學習時間 如果想比別人成長的快就得花比別人更多的時間用來學習這也是爲什麼不鼓勵日常加班尤其是初級這個階段成長曲線是非常快的。

  • 知識沉澱 俗話說好記性不如爛筆頭可以養成寫博客的習慣把學習的內容用文字的形式記錄下來整理成文並按學習的技術方向做歸類。

  • 提問 在初級階段免不了經常遇到問題會提問也是一門技術活好的提問姿勢能讓你事半功倍。

  • 不好的提問方式 “這個報錯是什麼意思”缺乏思考沒有體現自己關於問題的思考過程。 “爲什麼我的代碼和你的一模一樣就是運行不了” 缺乏上下文應告知代碼是編譯不過還是運行不起來、錯誤提示信息、相關代碼、可能出錯的代碼分析。沒有足夠的上下文神仙都不知道如何解決相關的問題。 ”爲什麼 xxx 能不能 yyy“問的問題本身就是一個錯誤的結論通常是隻是看到了現象而沒有分析問題的本質。

  • 好的提問方式 首先你在提問之前自己應該經過充分的思考並學會把問題拆解在拆解的過程中就會把問題的複雜度降低。 其次要善用搜索引擎把關鍵字提取出來去搜索引擎上去搜索先嚐試自己去解決問題。 如果仍然不能解決可以將問題的相關上下文、截圖及必要標識及自己的思考過程、查找到的相關資料以及自己的分析發送給想要幫助你的人並能提供最小化復現的問題。 最後請將你的問題及解決方案重新整理並告知幫助你的人問題已經解決重新整理解決問題的過程會幫助你理清思路、從而對問題有着更深的理解。

中級 -> 高級

到了中級階段基本上意味着你可以在大公司缺人的時候進入大公司工作了如果想成爲大公司不可拒絕的人才 那你還需要朝着高級階段努力。

編碼

沒錯到了中級階段你想要提升最重要的途徑還是要編碼。

寫什麼的樣代碼

和初級不同除了做業務之外你也參與開發做一些偏技術類型的項目比如參與組內組件庫的開發一些通用 JSSDK 的開發這些會對你的技術要求會更高。 有機會去參與平時使用到的一些開源技術棧的共建比如想實現每個 feature 但現有開源庫不滿足實現難度不大的情況下可以去提一個 pull request。

如何寫代碼

學會模仿除了參考大牛的編碼風格還要琢磨他們的編碼思路多思考他們爲什麼這麼做。 學會組件化、模塊化的開發方式學會複用和封裝減少 CV 的操作。 對自己的代碼質量負責可以經常組織 code review。

工作

想要進階需要在工作方面有些產出。

業務思考

要明白業務和公司的目標參與到需求的早期階段中同時也要多思考業務想着有沒有通過技術手段來提升業務價值比如移動端的白屏時間減少可以帶來很好的用戶體驗提升用戶的留存率。

技術思考

思考業務開發中的一些痛點如何用技術手段去優化業務的開發流程提升開發效率比如爲業務量身定製一款腳手架工具。

優化工作流程

不僅要熟悉從需求-開發-聯調-測試-上線的每個工作環節還要多思考每個環節有沒有可以提升的點特別是上線過程比如能不能做到自動化能不能做到小流量上線能不能及時回滾代碼。

技術分享

把工作中遇到的一些問題的解決方案、學習的一些新技術產出的一些技術項目總結下來作爲組內技術分享和輸出這樣一是可以總結沉澱你的技術二是可以讓大家能知道你做的東西並活躍組內的技術氛圍三是鍛鍊自己的表述能力這個能力在大公司的晉升述職中非常重要。

學習

中級階段仍然需要通過大量的學習來提升自己的能力。

明確自己的學習目標

學習是爲了提升自己的硬實力不僅僅能夠提升工作效率還能讓自己更好的服務於業務升職加薪。

應該學習什麼內容

研究工作中所用到的工具鏈不僅僅是運行時的 MVVM 框架還可以是編譯時的 webpack必要的時候去研究其中的源碼實現。 深入學習一些廣度知識比如 HTTP、正則表達式、Web安全、性能優化、設計模式數據結構和算法並把它們應用到你的工作中。

找到合適的學習方式

看書找到所學習方向的經典書籍閱讀適當做一些學習筆記。 視頻慕課網的進階實戰視頻根據自己的需求購買。 官網文檔可以嘗試去看一下英文文檔。 社區StackOverflow、HackerNews慕課網手記、掘金等除了利用碎片化時間看一些高質量文章學習也可以往上面發佈一些優質文章。 GitHub關注 trending參與開源社區的共建並嘗試自己造一些輪子。

學習時間與深度 在中級階段你仍然需要花很多時間去學習這個時候要注重自己學習的深度了。

知識沉澱 俗話說好記性不如爛筆頭可以養成寫博客的習慣把工作中深入學習到的一些非敏感知識記錄下來併發布而不僅僅去發佈一些基礎知識的學習了。

技術廣度

除了自己工作中的使用的技術棧之外也要了解同類其它優秀的開源技術棧從多個維度feature 完整性、文檔、上手難度、維護力度、生態等去做對比。 要保持對新技術的敏感的關注並時刻思考這些技術能否爲自己的業務帶來價值在需要的時候做合理的技術選型。

總結 所謂技術能力其實就是解決問題的能力和學習能力所以無論你在哪個階段甚至是更高的階段不斷提升這兩個能力都是你應該一直要做的事情。

羣內提供免費的Java架構學習資料,QQ羣:643459718
(裏面有高可用、高併發、高性能及分佈式、Jvm性能調優、Spring源碼,
MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章