畢業三年,快速升職加薪,帶領數十人的技術團隊,我是怎麼做到的?

Mr. Tech經常聽到有人吐槽
每天上下班擠地鐵
每個月給房東打工
每日Bug改到頭禿

但是
忙十年卻趕不上同事三年
房價物價年年漲
而你的升職加薪卻遙遙無期

爲什麼你光努力沒成績?
爲什麼你在職場沒有競爭力?
爲什麼你總被同齡人甩在身後?

其實,這不是因爲同事比你聰明,而是因爲你沒有掌握職場升級打怪的正確竅門。爲此,Mr. Tech特地請來個推傳說中的優秀“同事”——個推Java主管逍遙,爲大家傳授一下職場超車、告別打雜的祕訣。

逍遙大學畢業僅僅一年,便協助主管承擔了團隊管理任務;工作兩年,便開始獨立負責個推核心技術團隊基礎推送線;工作三年便正式任命爲B2D研發部基礎推送線Java主管,現負責管理數十人的核心技術團隊。逍遙將職場感悟歸結爲四點:技術知識體系構建、做好職業規劃、思維模式轉變、情緒調整及控制。

(以下爲逍遙的個人分享)

技術知識體系構建
我經常在面試的過程中會問大家如何構建自己的Java學習體系,來幫助自己更快更好地掌握相關的知識並應用到工作中來。然而,就面試者來看,大多數人對此並沒有進行過深入思考,回答起來吞吞吐吐,知識體系不全。爲此,我建議大家不妨可以從初學、進階兩方面着手,來全方位提高Java學習能力。

初學
初學者建議從學習的語言基礎看起。拿Java舉例,設計模式自不必提,Java虛擬機(JVM)原理也是必不可少的,瞭解JVM底層的運行邏輯可以對如何寫出優秀的代碼或者分析出現的問題都有很大的助力。還有學習JDK自帶的一些基礎包源碼也是很好的示例,對建立代碼編寫風格以及使用類庫的熟練程度都會有提升。然後是學習常用的框架組件,Java的話就是Spring、Dubbo這些。其它的便是現在互聯網公司常用的中間件學習:Redis、Kafka、ZooKeeper、RocketMQ等。學習這些框架組件和中間件,不能停留在表面的使用,內部結構和原理是必須要搞清楚的。建議技術人員深入去看看源碼。

此外,經常性的回顧整理也是必不可少的。好記性不如爛筆頭。艾賓浩斯遺忘曲線、學習金字塔理論等等前人經驗或者科學研究都表明,我們要經常整理總結記錄,才能學得更好。這個習慣需要終身保持。

以下Java書籍是我工作過程中發現比較不錯的幾本,從入門Java到日漸精通,每次看都會有不同的感悟,推薦給大家。

《設計模式》:這本書由國際公認的面向對象軟件領域的四位專家合作撰寫而成。該書深入分析了面向對象的23個設計模式,併爲讀者總結了最有價值的面向對象設計經驗,提煉了一組設計精美、表達清晰可以在實用環境下提供幫助的軟件設計模式。

《深入理解Java虛擬機》:作爲整個Java圖書領域公認的經典著作和超級暢銷書,全書由走近Java、自動內存管理機制、垃圾收集器與內存分配策略、虛擬機性能監控與故障處理工具、調優案例分析與實戰五個部分組成,深入分析了JVM的工作原理。

《Java併發編程的藝術》:本書對Java併發編程中最核心的技術即JDK源碼、JVM、CPU等進行了深入剖析,爲讀者總結了Java發編程的框架、工具、原理和方法,對Java從業者在如何應用好這些核心技術方面具有重要的指導意義。

進階

我理解的進階應該不再停留於語言編碼中了,你需要對整個程序的運行負責:性能怎麼提升?高可用怎麼實現?服務怎麼降級?線上問題怎麼處理?這一系列的問題如果你已經開始思考了,那麼恭喜你,你已經進入了這一階段。在進階過程中,你不僅需要編碼能力,你還需要掌握如下幾點:

  1. 程序服務的運行狀態:對服務程序增加監控、告警、日誌來幫助其瞭解運行狀態。不斷去觀察端詳你寫的程序真實運行狀況,有助於將一些隱患消除於未然,應對突發問題也更容易上手分析並快速找到處理對策。

  2. 計算機基礎和操作系統:主要包括CPU調度、中斷、內存機制、I/O機制。儘管讀過計算機專業的人員一半以上都學過計算機基礎和操作系統,但很多人對此認識還不夠深刻。針對在實際解決問題的過程中,我們經常碰到的計算機基礎和操作系統相關的問題,去總結回顧,會有新的理解。

  3. 網絡知識:這方面包括TCP/IP協議與模型、常用的網絡問題分析的工具(tcpdump、netstat)、常用的代理和負載工具(nginx、lvs等)、DNS和域名服務、CDN服務等。具備這些知識在處理問題和設計方案中會讓你有更多的靈感和方向。

  4. 線上硬件環境:這個需要熟悉linux網卡的性能指標和調優參數、cpu核數頻率及性能、文件系統的調優參數、內存策略的調整參數,以及機房的網絡架構。在性能調優中我們會經常用到這些。

做好職業規劃

適合度認知
現在程序員崗位比較熱門,不少機械、化工、水利等專業的畢業新生也涌入到了該崗位中。然而,很多人雖然選擇了程序員這個行業,但對自己是否適合還是不確定的。

在我看來,代碼能力作爲未來必備的基礎能力之一,先幹幾年是絕對沒問題的。但在幹這一行的過程中,你可以慢慢去思考以下幾點:我碼完代碼有滿足感嗎?我對寫過的代碼、維護過的項目能做到完全瞭解嗎?我會靜下心來去看做過的項目中所用到的技術更深層次的原理嗎?每次過需求、做實現是不是都只是安於實現?如果過了2年你的答案都還是否定的,我覺得可以考慮轉崗。

短期規劃
對於剛入門的程序員,前三年是比較關鍵的,建議做到幾點:
1.紮實技術基礎,參考上面提過的技術知識體系構建部分。
2.以增長見識、提升自我爲出發點,用開放的心態,主動去接觸各個業務各個部門。當然這個以後也是要持續保持的。
3.積極參與各類問題的分析排查,鍛鍊自己解決問題的能力。

長期定位
長期定位一般分幾種:技術專家、技術架構、技術管理。以下我列出三個定位必備的素質,大家看完後可以經常思考下自己的發展方向。

技術專家:具備某一方面或多方面專長,能非常快地解決一般人處理不了的問題,或者代碼能力超強,經常編寫偏底層的高性能的高可靠的代碼;

技術架構:非常熟悉世面上的各種框架和架構模式,能有自己的實際架構經驗,善於處理系統出現的各類問題,對於系統如果要達到怎樣的目標如何去優化有很強的理解且有很多方案;

技術管理:充分了解團隊的方向具備強烈的責任感,熟悉團隊成員的優缺點並善於利用,能助人成長、帶人成事。

思維模式轉變
這點是我目前感觸較深的一點,其實這也是任何職場人都必須覺察的。程序員作爲一個較特殊的職業,大部分時間面對電腦思考寫代碼會不自覺過於沉浸自己的代碼世界中,覺得寫完自己的代碼就高枕無憂了。以下幾種情況跟大家分享一下,希望大家引以爲戒。

  1. 當整體方案涉及多個部門或者多人協作時,經常遇到因爲缺少產品交互中隱含的幾個接口而導致項目運行不成功的情況,或者因功能實現方界定模糊導致項目運行失敗。

  2. 線上運行的程序出了問題沒有主觀能動性,認爲自己瞭解不多擔心解決不了,導致依賴他人的思路和排查。面試中我發現這種問題尤爲常見。不少候選者在回答線上運行程序排查問題時都說是上級或者別人解決的,自己對相關問題並不瞭解。

  3. 只滿足於做完本職工作,對團隊沒有輸出足夠的個人能力和魅力。

  4. 對整體業務不瞭解,只關注代碼運行邏輯,不知道在整體業務中起到的作用。這種在有較長業務鏈中出現較多。

  5. 一些可選任務,覺得和自己沒什麼關係,不去考慮做後會有什麼收穫。

其實大家要分清楚,自己的目標是什麼:只是爲了自己當下輕輕鬆鬆舒舒服服的寫代碼,還是說想爲整個項目或者團隊帶來貢獻並且自己能夠得到成長。如果你有後一種想法,那麼你就需要審視自己是不是可以更加主動的發揮自己的能力,去提升自己而不是抱着沒我也行,“雨我無瓜”的想法。

之前聽過一個說法,國外程序員更關注於做好產品,國內更關注於做好技術,所以很多國外公司可以不用運營不用銷售,技術人可以成爲佈道師,自己推廣跟進自己的產品、服務或者開源項目。我也認爲“技術佈道”是一種非常好的方式,是可成長性很高的思維模式。

情緒調整及控制
我剛畢業時,對一些事也是懵懵懂懂,一開始工作有非常多的新東西要學,語言也不熟,做些小工具也常出錯。後來,當我真正開始負責關鍵模塊,逐漸融入團隊,做出成績得到肯定後,我纔開始進入狀態。回想當初,我的抗壓能力幫了我很多。爲什麼80%以上的技術人員無法快速成長?那都是抗壓能力差導致的。只有抗住壓力,不被壓力所打敗,你才能獲得成功。

最近參加的一個培訓學習,讓我意識到這其實是人的情緒風格決定的。大家有興趣可以看下《大腦的情緒生活》這本書,裏面講了六種情緒風格,其中情緒調整的能力(也叫回彈力)在你沉浸於負面情緒時可以幫到你很多。

總結
互聯網時代,拼能力不拼資歷。要想不被淘汰,提升自己是關鍵。逍遙的職場經歷有兩點Mr.Tech認爲尤爲關鍵:堅持構建自己完整的技術體系和主動承擔更多責任的工作模式。在技術水平的錘鍊上,慢即是快。只有基礎紮實了,我們到應用的時候纔會信手拈來不費力。

此外,職場態度也很重要。在完成自己本職工作的情況下,程序員可以主動關心其他項目進度,敏感地發現他人的工作中自己可以幫忙,提出改進建議的點。在這解決問題的過程中,你的能力會變強,而能力變強會進一步提高問題的解決速度,進而推動你解決更多更重要的問題。

最後,Mr. Tech希望大家在2019年僅剩的兩週裏,加快步伐、提升自己的職場技能,更好地迎接2020年的到來:告別迷茫!告別脫髮!告別單身!
畢業三年,快速升職加薪,帶領數十人的技術團隊,我是怎麼做到的?

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