如何實現技術的成就感

640?wx_fmt=jpeg

做了多年的技術後,內心深處總有一件事在支撐自己,讓我遇到各種困難,能繼續向前。細想下來,這或許就是技術人的那份成就感,那麼如果要問我什麼是成就感,我的答案就是讓自己在技術上的不斷突破。

技術的突破是需要依賴業務場景的需求和自身刻意的規劃學習,二者缺一不可,前者是機會,最直接的實現方式就是加入到一家有潛力或者大公司,在自己工作中實踐場景。另外一方面,光有業務場景還遠遠不夠,還需要加強系統的學習與梳理,制定一個不同時間段的發展道路,在好的項目中一展身手。

        接下來談談自己過去做過的一些事情,分享一下在系統的學習中,可以做一些什麼方面的積累:

01

工程化思維

作爲一名工程師,很重要一點就是要搞明白什麼技術開發的本質,技術開發是一個工程項目,而工程項目的落地最重要的就是細節控制,也就是代碼的品質,比如以下幾個方面:

  1. 建立合理的API設計的標準,比如我之前寫過的 分佈式平臺下API 設計淺談

  2. 完善單元測試體系,包括自動化測試,比如我之前寫過的聊聊自動化

  3. 架構設計遵循SOLID原則 or KISS原則,比如我之前寫過的如何做高可用的架構設計

  4. 合理的數據結構和算法,持續優化系統性能,比如我之前寫過的秒殺系統設計中的數據處理

02

擴充知識廣度

工作3-5年後,如果認真工作,相信技術基礎已經有一定積累,這個時候,需要主動突破舒適區,不斷的去擴大自己的技術視野,做到有廣度。

這一步比較難,因爲很多同學會被公司的技術和業務牽着走,比如公司當前的業務規模決定了技術上不需要微服務/分佈式/高併發,那麼很多同學就不會去思考如果規模大了之後,如何利用分佈式技術解決該問題。

如何解決這個問題?很重要一點就是,要時刻保持時刻跳出當前層級和環境來思考的習慣。比如在工作中,我們只用了Mysql或者Oracle這樣的關係型數據庫,那麼有沒有想過數據達到現在的100倍,到達TB級別的時候該如何快速檢索與保存呢?市面上有沒有現成的產品可以拿過來使用?

此外,技術的全貌還包括各種技術之間的關係,你用了Dubbo,那麼Duboo和Netty是什麼關係,爲什麼我們要用Zookeeper作爲註冊中心,Dubbo和Spring Cloud之間的比較?如果能在學習新技術的時候,將繁雜的技術關係理順,才能形成自己的技術拼圖。

注意積累,厚積薄發。想要學習能力強,與平時的知識儲備是相關的,所以工作中不能遇到問題再現學,而是平時注意學習和積累,然後工作中遇到問題加強學,會發現很快就能掌握。

03

提升技術深度

光有廣度是不夠的,需要選擇某一個或幾個方面深入研究下去,構建自己的核心競爭力。

比如,在我們現在的微服務架構下,消息隊列是系統中一個及其重要的組件,起到削峯填谷、系統解耦的作用。我們以消費端如何快速獲取數據來看思維是如何一步步深入的:

1. 消費端要想及時獲取數據,一個思路就是建立一個長連接,那麼我們要學會建立長連接的實現方式。

2. 數據通過push還是pull方式給到消費端,我們需要知道這兩種方式的利弊

3. 如果消費數據失敗,我們需要考慮所有可能的原因,例如是網絡原因引起,那麼我們的異常處理是什麼?

點線結合,兩路學習。在工作中遇到問題都是點狀的,也就是知識點。爲了不影響項目進展,我們吃的是快餐,按照知識點學習,先解決工作中的問題,解決後知識還理解的不是那麼透徹,我們需要再把該知識點相關內容進行系統學習, 提升我們的深度。

技術的成就感不會無緣無故的產生,一定是先提升自己,持續加強學習能力,擴寬自己的眼界,學着從全局看待問題,通過一個又一個項目的實踐來沉澱的。

描二維碼或手動搜索微信公衆號【架構棧】:ForestNotes

歡迎轉載,帶上以下二維碼即可

              640?wx_fmt=jpeg

點擊閱讀原文”,所有【架構棧】近期的架構文章彙總

↓↓↓

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