程序員做什么有利于技術能力的成長
程序員需要始終尋找新鮮的東西來填充自己的血液。
對于很多職業來說,簡單基本的事情重復做,可以達到很高的熟練度和豐富的經驗。而這種熟練度和經驗本身就是一種有力的競爭力。比如運動、彈鋼琴等。當然,這些職業活動也需要科學方法的輔佐才能更加高效。
但是編程有些特殊。不同之處在于,編程技術是不斷迭代著的,不像其它職業通過熟練度和經驗就能建立職業競爭力。編程是:無論你對一門技術達到多高的熟練度,有多豐富的經驗,只要新的技術和工具產生和實用,原來掌握技術的熟練度將會快速貶值,經驗也會失效。軟件技術的更替發展已經一次次證明了這點。
簡單基本的事情重復做,并不利于程序員的提升。程序員需要始終尋找新鮮的東西來填充自己的血液。這是我從事十年軟件開發的感悟。
那么,什么樣的事情才能真正提升程序員的能力呢?
-
始終保持學習新鮮東西的動力。比如性能分析,使用 Python 生成直方圖,使用 arthas 生成火焰圖。難度系數:1-10。
-
學習和汲取經典書籍里的智慧。 比如 計算機專業及軟件開發推薦書籍 。難度系數:1-6。
3. 開發功能,簡單的事情重復做。難度系數:1-5。
4. 寫技術博客。難度系數:2-5。
5. 開發自動化工具,提升工作效率。比如 訂單導出的預發和線上的自動化對比工具 。難度系數:3-4。
6. 學習和應用不同的語言和編程模型。 比如 混合使用ForkJoin+Actor+Future實現一千萬個不重復整數的排序(Scala示例) - 琴水玉 - 博客園。難度系數:3-5。
7. 學習和觀察資深工程師、技術專家、架構師在思考和關注什么問題、如何思考問題。難度系數:3-6。
8. 業余做點有意思的事情。比如 批量下載網站圖片的Python實用小工具 - 琴水玉 - 博客園, 連點成圖:享受創建圖形的樂趣 - 琴水玉 - 博客園、搭建個人網站。難度系數:3-6。
- 解決線上疑難雜癥。可以幫助你獲得稀缺經驗。稀缺性是職業競爭力的重要來源之一。比如 CPU 飆高、內存崩潰、超時阻塞、訂單導出應對大流量訂單導出時的設計問題 - 琴水玉 - 博客園 等。難度系數:4-6。
10. 踩過的坑,及時記錄和總結經驗。比如 我的四年踩坑史以及思考 、故障常見原因歸類分析及預防和應對措施 。難度系數:2-7。
-
實用算法、性能、可用性、通用可擴展、大流量、數據遷移,有難度的新鮮的技術挑戰。比如使用 jsPlumb 繪制拓撲圖 -- 異步加載與繪制的實現,有贊訂單導出的配置化實踐 - 琴水玉 - 博客園,webshell cdc 檢測流程性能優化實戰及經驗教訓 。難度系數:4-7。
-
將高效完成簡單基本的事情,提煉成方法論,從而能夠指導別人去做。比如 建立開發方法:我如何完成一個功能需求 - 琴水玉 - 博客園,琴姑娘:理解和駕馭軟件開發的那些事兒 。難度系數:5-7。
-
培養判斷力和設計能力。比如給你一個模塊,你如何設計和實現它?需要考慮哪些關鍵需求?需要考量哪些系統質量屬性?如何在沖突的利益中達到平衡?有哪些技術重難點?如何攻克這些技術重難點?難度系數:6-7。
-
探本溯源,系統思考。比如 軟件設計要素初探 - 琴水玉 - 博客園、互聯網應用服務端的常用技術思想與機制綱要 - 琴水玉 - 博客園。難度系數:7-8。
-
關注系統架構和項目全局。比如 琴姑娘:從系統整體觀思考系統構建 ,琴姑娘:《架構師修煉之道》讀書筆記。難度系數:8-9。
-
深入原理,廣泛閱讀源碼、構建軟件大廈和殿堂,融會貫通,登頂之旅。難度系數:8-10。
以上是從我個人的職業生涯中提煉出來的。幾乎也是自己的技術成長史。目前我處于7-8的層級。
這些是真正能夠提升程序員的能力到下一個層次的事情。當然,需要長時間積累。
而 CRUD ,就算做一萬遍,也就是個隨時可能被取代的熟練工。不過,換個角度看,如果能把 CRUD 做到既深且廣,那也是很厲害的。

浙公網安備 33010602011771號