程序员的成长路线
工作這么些年了,看到了各種各樣的程序員,也看到了各種各樣的成長路線,說說自己的一些觀點吧。
作為技術人員,在剛起步階段時,首先需要拓寬自己的技術寬度,對自己所做的項目/產品所涉及的方方面面的技術都應該有所了解,另外對于就是學習工程化,讓自己真正具備開發商業軟件的能力。
在工程化和知識寬度達到一定階段后,需要開始根據自己的興趣和工作內容有所選擇,主要是加強在某一領域的技術深度。
在技術深度達到了一定階段后,需要對自己做出一個選擇,就是偏業務方向,還是偏基礎技術方向。
偏業務方向的技術人員,我認為做的好的表現是:
1. 對業務發展的未來有一定的預判,有商業敏感意識;
2. 能對復雜的業務進行合理的抽象;
3. 在系統的設計上能對未來業務的變化有一定的預留處理。
?
偏基礎方向的技術人員,我認為做的好的表現是:
1. 能結合業務的發展趨勢對基礎技術的方向有一定的預判,避免業務發展受到基礎技術的拖累;
2. 對業界的技術發展方向有自己的認知和判斷;
3. 在對應的基礎技術領域有不錯的技術深度。
?
結合自己的特質以及當前的一些狀況,做出一個選擇,重點發展。
而再往更高階走的同學,通常就會出現一種新的角色,就是成為團隊leader,做為一個技術團隊的leader,無論是業務的還是基礎技術的,在技術能力上還是不能差的,尤其是判斷力上,另外,作為一個團隊leader,就意味著承擔了團隊方向的判斷的職責,一個團隊的方向基本會直接影響到團隊所有成員的未來,以及所支持的業務的發展狀況,所以對于一個團隊leader,我覺得最重要的能力就在方向的判斷上,然后是根據方向的判斷的組織建設(團隊搭建,人才識別、培養、招募等)能力。
如果不是往leader方向呢,那基本就是往架構師方向為多,架構師的話,在至少一兩個領域的深度外,對廣度的要求非常高,還有同樣就是判斷能力,無論是業務架構師,還是基礎方向的架構師,領域的知識寬度是非常重要的,意味著能做多大范圍的事,判斷能力會體現出一個架構師在做一個架構設計時重點是怎么判斷的,在有限的資源和時間情況下取舍是怎么做的,對未來是怎么做鋪墊的,以及TA對事情的技術控制能力,一個好的架構師在技術風險的控制能力上必須是非常強的,例如一個強大的基礎領域的架構師,應該是可以很好的控制跨多個專業技術領域的技術演進。
還有一種是往專業技術深度領域方向走,例如內核、JVM等,這些領域是真正的需要非常深的技術功底才能hold的住的。
還會有其他例如轉型往業務產品方向等發展的就不在這說了。
總而言之,言而總之,我覺得在整個成長過程中,興趣是最為關鍵的,所以follow your heart非常重要,只有在有足夠的興趣或夢想的情況下才能產生很強的自驅,沒有足夠的自驅我覺得在技術領域基本上是不可能走到高階的,除了興趣外,自己的優勢也要判斷清楚,每個不同的方向,我自己認為還是需要一定的天分的,而所謂的天分我覺得就是對個人優勢的判斷。
ps: 我曾經很多次想過是不是也可以在廠內搞搞什么午餐會,例如每兩周和一位自愿聊的同學交流職業發展、工作的困惑什么的,一直沒搞起就覺得這樣貌似有點奇怪。
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
- 上一篇: SaaS颠覆传统软件到底是不是个伪命题?
- 下一篇: 在做技术面试官时,我是这样甄别大忽悠的—