很努力了,為什么我還在原地踏步?


堅持寫作有不少好處,除了賺些零花錢之外,還常常能收獲讀者的贊賞,滿滿的價值感。當然,最有意義的是,通過分享老兵哥我認識了天南海北不少的朋友,偶爾還有小伙伴找我咨詢職業發展的建議,被信任的感覺也很好,尤其是被軟妹子信任。只要時間允許,我非常樂意分享個人經驗和觀點。

前兩天有位加了微信的小伙伴找我咨詢如何提升技術能力,想起當年我也存在這方面的困惑,總覺得自己已經很努力了,但過了一陣子才發現依舊在原地踏步。對於參加工作 3 ~ 5 年的小伙伴來說,這是一個比較普遍的問題。因此,我就基於本次咨詢稍作加工,剔除隱私,分享出來供大家伙參考。

 

軟妹子:老兵哥,可否推薦幾本技術書籍?

老兵哥:有沒有特定的學習目的呢?

軟妹子:提升技術水平。

老兵哥:哦,換個問法,你中長期准備往哪個方向發展,或眼下要解決什么具體的問題?

軟妹子:我覺得自己目前的技術能力還是有些弱,想提升一下技術,下一步准備往高階開發沖刺了。

老兵哥:嗯,那可以先專研專研編程語言、設計模式、領域驅動設計等。

軟妹子:好!如果就 Java 語言來說,這幾個方面有沒有可推薦的書籍?

老兵哥:編程語言,《Thinking in Java》、《Effective Java》 等經典系列;設計模式,四人幫 GOF 的《設計模式:可復用面向對象軟件的基礎》最經典;領域驅動設計, Eric Evans 的《領域驅動設計:軟件核心復雜性應對之道》最經典。

軟妹子:《Thinking in Java》這本書我在朋友那兒見過,已經殘缺了。當時翻看了幾頁,講的非常細致。

老兵哥:是的,這些作品都出自該領域的大神之手,口碑是有保障的,屬於傳世經典了。

軟妹子:前兩天我剛買了幾本剖析開發框架原理的書籍,這兩天到貨,有時間准備看看。

老兵哥:嗯,在 Java 語言領域,Spring 這套開發框架就是事實標准,非常有必要專研學習。如果時間允許,建議看看官方文檔,會非常有收獲的。

軟妹子:嗯嗯,我覺得設計模式最能體現程序員的代碼質量了,例如:我前段時間一直在用策略模式,取代了 if else 的嵌套,感覺代碼美觀了很多。

老兵哥:是的,從初、中到高級開發,必須要夯實編程語言和設計模式,再往上走我們還需要打通自底而上(垂直)、端到端(水平)兩個維度的技術棧。


垂直技術棧
 


水平技術棧


軟妹子:明白。你最近有沒有發表新的文章啊?

老兵哥:最近有些忙,空閑時間都在趕 GitChat 上的稿件,技術文章我都發布在 GitChat 上,個人覺得公眾號不太適合純技術文章,在這里我主要分享軟技能相關的。

軟妹子:好的,回頭我找來看看。其實,我現在還停留在客戶端、應用、框架、DB 這個層級,Web 容器那層不甚理解。

老兵哥:嗯,現在應用都部署在容器雲上了,標裝化程度越來越高,Web 容器(像 Tomcat)這層已經被弱化了,就像 Spring Boot 內嵌了 Tomcat。以前,我們做應用性能調優必須要熟悉 Tomcat 的原理和參數等等。

軟妹子:嗯嗯。

老兵哥:另外,Web 應用都是遵循 Servlet 這套標准的,而 Web 容器就是這套標准的實現,Spring 嫁接在它上面的,所以我們還是有必要把它弄懂。

軟妹子:是的,Web 應用的生命周期就由它負責管理。

...... 過了一會兒 ......

軟妹子:老兵哥,你推薦的那本設計模式是用 C++ 寫的演示案例啊?

老兵哥:哈哈,對哦,忘了我最初是用 C++ 的,后面才轉的 Java。如果你對 C++ 完全沒有概念,那可以找 Java 版的設計模式書籍,具體哪本書最好,我也不太清楚。不過,設計模式本身是不區分語言的,它更多是一種設計思想。

軟妹子:哈哈,我在豆瓣上看了下書評,好評度蠻高,參考價值肯定是有的。

老兵哥:是的,C++ 和 Java 都是面向對象的編程語言,對設計模式來說差別不大,在具體實現上會有些細微差別。如果你用 C++ 學習設計模式,最后能夠用到 Java 上,那說明你真的學透了。

軟妹子:嗯嗯,那真是,明白了,謝謝哈!

 

我們都知道,職業發展離不開學習,但要掌握的知識技能非常多,不知道從何入手。老兵哥也曾經歷過類似階段,日常工作都由團隊安排,不可能按照自己的喜好選擇,屬於被動學習。雖然每年都堅持看不少書,但感覺自己沒什么提升,后來我找到了解決這個問題的關鍵:學以致用。

我們必須帶有明確的目的去學習,而不是漫無目的地涉獵。這些年,我都會制定提升架構師所需軟技能的閱讀計划(參見文末鏈接),專攻公眾演講、技術寫作、產品管理等,堅持下來效果很明顯,例如:公眾演講上我登上了多個技術峰會的舞台做分享,還跨界做了上千人規模技術論壇的主持人,兼職完成了幾十場職業發展類的培訓授課,多次榮獲企業大學的金牌講師。

學以致用,可以是為了中長期的職業發展目標學習,也可以是為了解決眼下某個難題學習。如果是為了中長期的職業發展目標學習,那我們必須要明確個人未來想擔當的角色,例如:技術專家、架構專家、項目經理、產品經理或團隊管理等,然后我們還要梳理出勝任未來角色所需的技能樹,以此技能樹為對比參照,缺什么就補什么,否則光空想不行動是無法抵達未來的。如果是為了解決眼下的難題,那我們就要追求短平快了。如果你對未來的職業規划不清楚,那建議先找找職業規划類的書籍,例如:古典老師的《你的生命有什么可能》,從興趣開始,然后培養能力,最后實現價值。

千萬不要“只見賊吃肉,不見賊挨打”!興趣跟目標之間,還差着能力,明確目標是第一步,接下來就要梳理出新技能樹,然后一點一點投入時間精力把這棵樹苗澆灌培植長大,最后才是開花結果收獲目標的時候。我們很容易掉進“用戰術上的勤奮掩蓋戰略上的懶惰”這個陷阱,動腦很累,思考有罪,讓自己在低水平工作上不斷重復,用一年的經驗工作了五年,滯留在原地踏步。

今天先分享到這里,如果你覺得有價值,麻煩動動手指 轉發 給其他需要的小伙伴。另外,老兵哥我后續還會分享職業規划、應聘面試、技能提升、影響力打造等經驗,關注「 IT老兵哥 」,賦能程序人生!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM