程式設計師職場之路,如何提升技術能力?

qing_yun發表於2022-06-10

01、技術人成長的悖論

在程式設計師界有一個悖論持續在困惑著很多技術人:在寫程式碼的人的困惑是一直寫程式碼是不是會喪失競爭力,會不會被後面年輕的更能加班寫程式碼的人汰換。典型代表就是工作 5 年左右的核心技術骨幹,此時正處於編碼正嗨但也開始著手規劃下一個職業發展階段的時候;沒在寫程式碼的人困惑是我長時間不寫程式碼(或者程式碼量較少)我的技術功底是不是在退化,我在市場上還會有競爭力嗎,我的發展空間是不是被限制住了。典型代表就是帶業務專案的架構師或者團隊 Team Leader,他們更多的精力是在業務需求理解和拆分,團隊事務的管理上。

這種圍城現象非常嚴重,是技術人在職業發展過程中必定會面臨的困境。但要回答清楚這個問題,其根源不在於是寫不寫程式碼或者程式碼量的多少,其本質還是要回到什麼叫技術能力以及如何提升技術能力這個根節點上來。我把我的一些觀察和思考總結下來,供大家參考。

02、到底什麼是技術能力

要解釋清楚什麼是技術能力還得看透技術能力的本質,從源頭上來做剖析。挑選幾個程式設計師日常的工作問題來做個剖析比對,從我們的日常感觀中來辨識下哪些是有技術能力的做法,哪些是沒啥技術能力的做法。

1、兩類日常工作

  • 重複瑣碎類工作

有一類工作是專門處理其他組技術同學對組內業務的疑惑進行解答,我們稱之為 daily 支援。比如諮詢你負責的系統在開發環境有一個報錯影響了他們的專案聯調是什麼原因。這種工作的典型特徵就是,隨時都可能有人來問你問題,還有可能是同一個問題不同的人來問你很多遍。這類工作稱歸納為重複/瑣碎類工作。這類工作我們來看看幾種做法:

1、就事論事,把這個問題回答了結束。到這個程度你只是解決了一個具體的問題。很可惜我們很多技術同學都是處於這個層次。

2、解答完這個問題後即整理成文件,把排查步驟寫清楚,提升自己和同組人的工作效率。到這個程度說明你看到並解決了內部效率問題。

3、將此排查問題的方法和邏輯固化為小工具給到諮詢的同學去用,讓他以後可以自助排查解決,這樣既解決了別人的問題也徹底釋放了自己和同組人的效能。到這個程度說明你重新定義了效能問題並找到更好提效的辦法。

4、將此問題背後根因找到,從業務原理或者產品功能上去找解法。將技術工具抽象為業務功能的完善。到這個程度說明你已經從單純的技術提效看到了架構合理性問題,並嘗試在業務上尋求徹底根治的辦法。

這四種不同的做法我們可以看出來,即使是這些重複的瑣碎類工作,我們也可以從擴大受益面的角度去提煉價值,然後尋求多個層次的解法。在解決問題的過程中自然而然也鍛鍊了自己多層次的思考和抽象能力。

  • 抽象複雜類工作

還有一類工作是相對抽象和複雜的工作,它的典型特質就是需要只能感受到現象,很難找到根因,沒有明確目標和固定解法,需要自己做方案定策略。舉個實際中遇到的例子,就是在複雜的系統鏈路中往往會出現聯調效率十分低下的問題,每個研發同學都在抱怨各種各樣的問題,但就是沒法去根治。面對這樣的複雜抽象問題,也有好幾種做法:

1、找到抱怨的同學,問一問具體的問題是什麼,然後針對性解決。

2、更加廣泛收集問題,然後列出來表格,歸類分析並安排負責人跟進解決,最後定期跟蹤進度。

3、深入分析表格的中的問題並對問題進行抽象,從架構調優和產品功能的角度去尋找原因,並尋找解決這些問題帶來的業務價值,並確定目標拆解路徑,最後按照任務推進和跟蹤進展。

4、從更全域性角度去思考此目標與年度目標的關係,與組織發展的關係,思考如何擴大此事的效益,思考如何通過這些事的解決鍛鍊和培養團隊同學。

可以看出來這種抽象複雜的工作,其實也有多種做法,看得更加細緻是可以看到技術架構的調優,看得有深度可以與目標、組織成長結合在一起。當然也有很一般的做法,那就是純粹單個問題解決,純粹是變成專案經理,通過任務列表跟蹤進度。

02、技術能力層次模型

通過上面兩類日常工作的分析,我們很明顯可以看到有技術能力的做法特徵是能夠通過現象看到本質,並能夠通過對問題的抽象歸納進行技術架構層調優以解決同類問題。

因此我對技術能力的定義是:技術能力是一種以解決某種問題為目標的思路、方法與執行手段,其本質就是解決問題的能力。在程式設計領域,就是對遇到的業務問題進行抽象、提煉以及邏輯的構建,通過研發工具以提升解決問題的效能,減低人工低效的重複工作。

如果用技術能力這個定義的方法論對“什麼是技術能力”進行剖析,我提煉了一些模型來表達。

這個能力模型按照逐步境界階段分為了三層:

  • 術,硬核技術能力

術這個層面其實更多是硬核技術能力,基本上就是技術的基礎功底(如計算機基礎,分散式技術,質量意識等)。雖然這個歸為是基礎類,但這也是技術人的立身之本。工作 3-5 年的同學基本上都還是處於這個階段,即需要大量的練習使得自己的技能非常嫻熟。

處在這個階段最重要的就是需要有技術好奇心,要有技術的專研力,通過時間的磨鍊持久去學習去練習,使得自己能夠成為團隊的核心骨幹力量。

  • 法,技術架構能力

法這個層面其實更多的是技術架構能力,即通過現象看透本質,通過模型、原則來表達本質以解決抽象複雜類問題。這是一種高階的技術架構思維,基本上 5-10 年的同學會處在這個階段。這個階段更多強調問題發現,問題定義,問題分析,問題解決的能力。

處在這個階段是需要很強大的認知能力提升,這裡必備的素質就是皮實和包容,要容得下不同的觀點也要經得起各種挑戰。但這個階段也有很大的誤區,即非常容易被簡化為就是要學習很多方法論或者套路。

  • 道,技術領導力

道這個層面其實更多的是技術領導力,即通過技術影響力去尋找願景和目標,帶領組織拿取結戰略結果。在這個階段我們要基於深厚的技術架構能力和技術硬核能力。通過技術思維去解決超越純技術領域的問題,一般來說 10+年的同學會遇到這類問題。這個階段的成長也會更多面臨人的底層素質能力升級,需要更多靠領悟而不是純粹的訓練和問題驅動的思考。這個階段其實也有很大的誤區,即很多人只學到了表面功夫而沒有深得要領,純粹就變成是對己就是自我修養的提升,對別人就是 PUA。

03、如何提升技術能力

隨著把技術能力層次模型定義出來,其實如何提升也有了一定指南。後續有機會可以分章節來論述這個技術能力的提升過程。但產出詳細章節的實踐論述前,還有一篇“內功心法”可以分享給大家:

1、尋找成長的源動力

大家往往對這個問題不以為意,覺得成長是每個人都想要的,但是大家沒有仔細琢磨過促進你成長的到底是什麼:是你自驅想要享受這個練、思、悟的過程 還是 因為渴望得到周邊人的認可/反饋/評價。這兩者在你順利的時候可能沒什麼感覺,但當你面對晉升失敗,專案不利等挫折的時候就會有非常大的差異。

如果你能夠找到自己成長的源動力,那麼在遇到真正的困難和迷茫時候才能夠擺正好自己的心態,尋找突破口,讓自己走出困境,得到長足的成長。

2、常態化的總結與反思

不管是編碼類的技術基礎學習成長,還是相對抽象的問題解決,還是技術領導力成長。只要是成長,只要能夠抓住這兩個關鍵就一定能夠成功。

第一個就是反思,能夠敏銳地反思自己的不足,然後不斷去修正自己的心態和行為讓自己蛻變。

第二個就是總結,總結的過程是不斷梳理自己的過程,把自己迷迷糊糊,似是而非的東西分類歸類,而且總結越多就能夠用好時間的複利,就能夠越促進成長。

找到了源動力就解決了底層動機問題,通過總結和反思是能夠利用上時間的複利,通過這兩樣心法就能夠使得自己成為一個能夠不斷豐富完善自己的人,達到這樣的狀態必定能夠成為技術強人。

03、實用技巧

要做到常態化的總結與反思,最簡單的技巧就是寫文章,通過文字的整理可以讓自己的思考更加成熟,想得更加成熟以後自然而然對外就能夠講得更加清楚,能夠對外講清楚就能夠更好分享交流才能夠真正去校正自己的想法是不是正確。所以我提了,以寫代想,以想促講,以講驗真的實用技巧。

來自 “ 阿里巴巴中介軟體 ”, 原文作者:朱春茂(知明);原文連結:https://mp.weixin.qq.com/s/6wWDhUBcwomqPfaXFEOTMw,如有侵權,請聯絡管理員刪除。

相關文章