1. 程式人生 > >讓人迷茫的三十歲,從專業技能、行業知識和軟實力的人才三角談起

讓人迷茫的三十歲,從專業技能、行業知識和軟實力的人才三角談起

 

--------我今年三十歲,我很迷茫,不知道未來該選擇什麼發展方向。
  • 一、背景

  這是我無意中在社群微信群中看到的一位年輕的開發者說的話,之前他也經常會在技術群中丟擲一些有深度有內容的問題,並能積極樂觀的進行問題思考和探尋技術解決方案,有時候可能會錯誤的以為他這樣一位熱愛學習的開發者,在公司也一定是技術的引領者,對自己的職場規劃有著清楚的認識。

  所以他丟擲這樣的問題著實有點意外,不過細想之後,或許也屬實正常是。對於30歲左右的開發者來說,從20出頭的毛頭小夥,逐漸成長為家庭和公司的頂樑柱,如果一直從事技術領域,大概很容易就到了瓶頸期,如下圖,一個人的學習能力增長曲線,大概三年或五年左右,增長速度就會逐漸放緩。

(手畫的)

  到了這個階段會非常痛苦,如果身處一家優秀的公司還好,有一套完整的體系保證你持續成長,否則就得陷入了吃老本的時期,或許將一直這麼平庸的下去,直到被迫退出行業。

  而那些不甘如此的優秀者,都渴望去改變現狀,他們們往往承受著無比巨大的壓力,尤其是網際網路技術飛速發展、各種新技術新方法席捲而來,究竟該如何選擇技術的發展方向和個人的職場規劃,這個問題自然而然就出現在他們面前。

  以下是網際網路開發者的“人才三角”結構,由專業技能、行業知識和軟實力組成。每一個圓環均代表一個知識邊界。

 

 

  • 一、專業技能

 

 

  專業技能是開發者賴以生存的寶貴技能,而其中開發語言是最重要的一個方面。近年來飛速發展的網際網路業,似乎對.NET開發者帶來的衝擊相當巨大,在許多城市,甚至出現了Java與.NET的招聘資訊比例10比1的驚人情況,而在國內網際網路公司,似乎除了同程藝龍、蔚來汽車等公司,已經找不出太多叫得上名頭的大企業堅持使用.NET技術棧。

  但是即便如此,這並沒有說明.NET技術已經逐漸落伍,尤其在技術領域,看起來火熱的市場,從來也不是一門語言所能主宰。真正優秀的開發者從來不會被語言束縛,事實上雖然掌握一門核心語言非常重要,其次在語言之外的其他專業技能,諸如設計模式和設計原則、對於演算法等的理解程度,都是開發者非常重要的能力,對他的價值評估產生了非常深遠的影響。

  在眾多專業技能中,比較爭議的大概是資料庫、各類元件和其他專業技能,以及DevOps和微服務。首先是這些新概念,鋪天蓋地而來,讓人難以抗拒學習的慾望,甚至不學習,也經常會被人說成知識體系閉塞。但是學習了之後,如果得不到實踐,不見得能夠帶來短期或長期受益。除此之外能夠恰到好處的掌握好資料庫和各類第三方元件(諸如Redis、Consul)等,雖然能夠讓開發者獲得不少機會,但是卻並非每位開發者都有時間或精力瞭解這麼多東西。畢竟每天只有24小時,花時間學習了A元件,往往就得忽略其他元件。而且如果只是淺嘗輒止的瞭解某些元件,倒不如仔細的鑽研眾多同類元件中的一種。

  微服務容易讓人陷入知識的海洋無可自拔,在寶玉老師的專欄《軟體工程之美》也提到微服務架構並非軟體系統的天然演進,要靠組織力量來完成。而在微服務書籍《微服務設計模式》中也提出,微服務實際上應該是一種組織架構形式的體現,而不僅僅只是一種軟體架構。為了微服務而微服務,不見得會帶來了團隊溝通成本的提高,也不見得有利於軟體系統的高效迭代。同樣,為了DevOps而上容器,這樣也不是一種值得推崇的策略。

  我把DDD和TDD納入到專業技能中非常重要的一環。因為DDD是一種非常重要的軟體問題分析方法,從巨集觀來看有點像團隊問題分析方法,如果時間有限,大概不太有必要獨自研究,畢竟要將其實踐下去,還是要更多的依賴團隊,不如拉幾個同事一起探究。如果沒辦法將DDD完美的實踐下去,也不必苛求,運用好領域的分層思想,可以讓軟體系統儘可能可控的管理各領域的知識,實現業務知識的沉澱。

  TDD看似能夠讓軟體儘可能的減少後期的維護成本,但是要將其實踐下去,取決於大環境和個人是否持續不斷的刻意練習,而且需要一個漫長的週期。能夠刻意練習顯然是極好的,相信他一定能給你帶來非常巨大的好處。

 

  • 二、行業知識

 

  所處行業、和行業知識是決定開發者的關鍵,而不是專業技能本身。例如紅得發紫的電商行業,阿里巴巴或拼多多等電商平臺,最能給開發者帶來豐厚收益的行業,也是競爭最為激烈的行業。而例如社群團購這種新興商業業態在長沙,也同樣為長沙技術圈的從業者帶來的新的機遇。

  但是似乎許多行業的開發者們對本身行業知識的興趣並不大。許多開發者往往執著於對專業技能的鑽研,而忽略了對行業知識的瞭解。而事實上行業知識的認知深度,恰好更能體現產品的水平和公司的專業程度。如果每個人都矢志於為公司打造最專業的產品,這顯然將為公司、為個人帶來無窮收穫。

  • 三、軟實力

  軟實力是讓你我與眾不同的核心關鍵。他體現在外在,是一個人的談吐和為人處世的態度。他通過領導力、管理能力、表達能力等許多種形式讓你的優點得以更好的表現在世人面前。

  軟實力,是程式設計師成功的關鍵。例如你是否能夠與團隊成員融洽的溝通,這能夠促進你與團隊成員間的相互認同、你是否能夠將你打造的產品更好的展示在領導或客戶面前,這有利於你和公司產品價值的彰顯、你是否能用文字或PPT對你的工作進行總結,這又能體現你的組織表達能力。而你在公司與其他同事的良好溝通、與客戶的良好溝通,既是在積累人脈,更是在投資未來。

  我把運氣列入軟實力的範疇,是因為我覺得運氣是很重要的一環,不過如果沒有足夠的軟實力積累,即便有不錯的機遇,也不見得有能力支撐住。

  • 四、總結

  在我參加工作的早期,總是片面的認為技術能力才是決定人與人區別的最大關鍵。但是事實上恰好相反。我們身邊那些混得最好的,他們往往並不是技術最好的。他們往往更善於鑽研一個行業,並從中發掘出價值。他們往往更注重軟實力的培養,並通過這些軟實力,獲得許多常人不能擁有的機會。

  優秀的開發者也善於抓住職場中的每一次挑戰。他們將每段職場當做修行和學習的機會,無時無刻不忘提升自己,哪怕在小公司,也同樣能創造不平凡的成績。

  短暫的迷茫不可怕,怕的是看到了迷茫還不試圖改變,例如知道能力有不足,卻依然忽略了對能力的積累。能力的積累從來不僅僅只是停留在紙面上的簡單文字,再多的迷茫,不如從眼下開始刻意練習和主動培養。例如作為.NET開發者,或許我們都需要更加深層次的瞭解C#/.NET技術的核心知識,一本好書《C# 7.0 核心技術指南》將為你解惑無窮。

  無論當下我們做的什麼技術,最重要的關鍵,就是認清楚自己的缺點,然後有意識的去改善。不必苛求昨天的自己比今天的自己優秀,努力使明天的自己比今天更優秀,堅持一個方向,總能讓你獲得更多機會。

---

本文版權歸原作者和部落格園共同擁有。作品採用知識共享署名-非商業性使用-相同方式共享4.0 國際許可協議進行許可。 

 

      本文來自: 溪源 | 長沙.NET技術社群。閱讀更多精彩好文,歡迎關注長沙.NET技術社群公眾號【DotNET技術圈】。

&n