技術成長是程式設計師職涯發展的核心。本章探討如何有效學習、實現技術變現,以及在快速變化的技術環境中保持持續成長的動力。
技術變現的核心思維#
程式設計師是「手藝人」,靠技術變現是天經地義的事。關鍵在於如何讓自己的「手藝」更值錢。
核心觀念:不是通過打工聽人安排而活著,而是反過來通過在公司工作提高自己的技能,讓自己可以更為獨立和自由地生活。
技術變現九大法則#
千里之行,積於跬步
- 任何成功的大事,都是通過一個個小成功達成的
- 讓身邊的人有求於你,建立正向循環
- 一旦別人開始向你付費獲取幫助,你就會獲得更大的發展空間
關注有價值的東西
- 價值受供需關係影響,供不應求才有價值
- 關注市場需求:公司真正缺的是能解決技術難題、提高團隊人效的人
- 關注技術趨勢:了解技術發展軌跡,判斷新技術是否順應趨勢
找到能體現價值的地方
- 在高速發展的公司中,技術人員的價值可以最大化
- 大公司:技術架構和業務已定型,穩定性優先於創新
- 初創公司:業務還沒跑順,技術需求不高
- 最佳路徑:先在大公司學習成功經驗,再到高速成長的公司實現價值
動手能力很重要
- 程式碼裡全是細節,細節是魔鬼
- 只有了解細節,才能提出靠譜且可落地的解決方案
關注技術付費點
- 能幫別人「掙錢」的地方
- 能幫別人「省錢」的地方
- 越直接越好,而且最好是大多數人做不到的
提升自己的能力和經歷
- 付費的前提是信任
- 成為知名開源軟體的核心開發人員
- 成為知名公司核心項目的核心開發人員
找到有價值的資訊源
- 走到資訊的源頭去,用好 Google
- 搜索 “XXX Best Practice”、“Best programming resource” 等
- 不斷提升英文能力
輸出觀點和價值觀
- 真正偉大的公司或產品都要輸出價值觀
- 只有輸出了更先進的價值觀,才會獲得真正的影響力
朋友圈很重要
- 優質朋友圈的特性:
- 有想法、有觀點、經驗豐富
- 涉獵面廣
- 有成功經歷
- 喜歡折騰、喜歡搞事
- 對現狀有些不滿,想做改變
- 有一定影響力
- 優質朋友圈的特性:
最宝贵的財富是時間,而非金錢。 錢不用還在那裡,時間不用就浪費了。把時間投資在有意義的地方,決定了你未來會走什麼樣的路。
學習方法與路徑#
學習的正確姿勢#
常見錯誤:還沒弄清楚森林長什麼樣子,就盯著樹葉看。
有效的學習順序:
- 看清全貌:先看官方文檔,了解有哪些模組、整體設計
- 動手實踐:跑一跑官網例子,用框架實現小系統
- 深入研究:在熟悉使用的基礎上,深入特定模組研究設計思路和源碼
保持學習興趣的兩個關鍵#
1. 帶著明確的目標去學習
- 面試熱點:徹底理解和掌握,讓面試官刮目相看
- 解決工作問題:不只掌握原理,更要能實際應用產生效果
- 技術需要變現才有學習動力
2. 一定要動手實踐
- 只有動手實踐才會對技術有最直觀的感受
- 碰到問題並解決,這是難以忘記的寶貴經驗
- 適當的動手實踐能樹立信心、培養興趣
學習 Spring 框架的經驗教訓
一開始就鑽進一個模組啃源碼,結果看不懂、不明白程式碼為什麼這麼「繞」。
問題根源:
- 還沒弄清楚森林長什麼樣子,就盯著樹葉看
- 還沒學會用 Spring,就開始研究它是如何設計的
正確做法:
- 先看官方文檔,了解全貌
- 動手跑官網例子,學會使用
- 再深入特定模組研究設計思路
技術深度與廣度的平衡#
「變」與「不變」#
不管從事什麼行業,要積累的東西都可以分為「變」與「不變」兩類。「不變」的是內功,「變」的是招式。
要善於發現、持續積累「不變」的能力,而非盲目追逐一直在「變」的招式。
編程能力的內涵#
編程能力是把「邏輯」翻譯成程式碼的能力。編程能力強,意味著:
- 能編寫正確的程式碼
- 編寫速度快
- Bug 很少、效能很好、質量很高
編程能力的三大要素:
| 要素 | 說明 | 提升方法 |
|---|---|---|
| 編程語言 | 熟練使用編程語言和開發類庫 | 快速掌握,順帶考察 |
| 資料結構與演算法 | 編寫高效程式碼 | 刷 LeetCode |
| 設計思想、原則和模式 | 編寫高質量程式碼 | 在日常開發中刻意練習 |
持續練習的方法#
資料結構和演算法:
- 多刷 LeetCode
- 刷題不只是為了面試,更是鍛鍊:
- 邏輯思維能力
- 寫出 bug free 程式碼的能力
- 快速實現複雜邏輯的能力
- 效能意識
設計思想和模式:
- 拿到需求先思考如何設計,而非直接寫程式碼
- 寫程式碼時思考是否遵循經典設計原則(SOLID、可讀性、可擴展性)
- 寫完程式碼後思考是否有最佳化空間
- Code Review 時學習他人的優秀程式碼
在平時開發中刻意進行跟程式碼質量、程式碼設計相關的思考訓練。時間長了,這種思考就能成為習慣和本能反應。
25~35 歲的黃金時光#
25~35 歲是每個人最寶貴的時光,應該用在刀刃上。
時間投資原則#
應該投入的方向:
- 主流、高級、有挑戰性的技術
- 保持技術和技能的領先
- 保持對技術本質和趨勢的敏感度
應該避免的事情:
- 功能性的軟體開發私活(無法成長,後期維護消耗時間)
- 沒有技術含量的重複工作
提高工作效率的方法#
對於那些沒什麼技術含量的工作:
- 提高程式碼的重用度
- 能自動化的就自動化
- 和需求人員談需求,簡化需求
這樣就有更多時間,去研究公司內外那些更核心、更有技術含量的技術。
經驗積累的方向#
三種主要經驗來源#
企業內訓
- 可以了解各企業在做的事和遇到的技術痛點
- 極大增加對社會的了解和認識
- 鍛鍊語言組織和表達能力
技術分享和寫作
- 要寫沒有人寫過的,或是別人寫過但你能寫得更好的
- 最好的 SEO 就是獨一份
- 技術和知識完全是可以變現的
在頂尖公司工作
- 學習大公司的技術和成功經驗方法
- 接觸不同的技術價值觀和思維方式
- 豐富思考問題的角度
要去經歷大多數人經歷不到的,要把學習時間花在那些比較難的地方。