程式設計師——什麼是高手?
經常被人問到:“我應該怎樣做才能成為高手呢?”這個問題可以進一步分解:
什麼樣的人是高手?
怎樣才能把自己訓練成高手?
一、什麼樣的人是高手?
關於“高手”,我的觀點是:“ 能把有用的事情做到位的,就是高手。 ”這裡面有兩個關鍵點:一是有用,二是到位。
1、有用。
這是一個價值觀的問題。衡量一個人是不是高手,應該看他對社會做的貢獻,而不是自己在家裡 YY 出多少 BT 級的東西來。做無用功的,只能算是蠻人,不能算是高手。天上地下全搞定,完全從頭做作業系統,甚至自己製造CPU、主機板、記憶體、硬碟的,算不算高手?單純從技術角度來說,是的,他的知識非常豐富。但是這些知識是不是發揮了應有的作用呢?沒有。這樣的人,實際上是在浪費自己的青春。社會發展的大趨勢是分工精細化,人,必須適應社會。古時候,人們常用“屠龍之技”來形容無用功。屠龍勇士,聽上去很厲害,可上哪找龍去啊?慕容復驚才絕豔,可是老百姓不需要大燕國,他再厲害也不會成功,徒增笑耳。
在此勸告程式員同行們,在技術上深入下去,是值得提倡的,但只能是達到目標的一種手段,你的目標,應該是做更有用的產品,或者賺更多的錢,不能為了技術而技術。或者有人抬槓說:“我整天鑽研C語言,我要用C語言開發出一種新的、更好用的程式語言,這算不算是技術呢?”應該說,這不算是技術,這是目標。他的目標是“新的程式語言”,相當於改進生產工具。當然了,為了達到這個目標,他要非常瞭解計算機語言的各種原理以及C語言的N種用法。就好比:這個世界需要有砍柴的人,同樣也需要製造柴刀的鐵匠。
2、到位。
別小看“到位”,我敢打賭,90%自以為很牛的程式設計師都做不到這一點。前幾年有個遊戲叫“北京浮生記”,深受北漂歡迎。作者就曾說過,要做沒有BUG的軟體。雖然“沒有BUG”有點絕對,但這個意識,無疑是非常可敬的。不妨檢查一下自已的程式,尤其是牛人,看看吧,亂七八糟的註釋,語法不通、錯別字連篇的的說明文件,有可能需要花幾個小時才能執行起來的例程,到處亂拋的異常或根本不丟擲異常……你還有什麼資格說牛?如果哪天你真的發明了質能方程,再回來說自己牛也不遲——其實質能方程等重大科學原理,恰恰是由做事很嚴謹、很到位的人發明或發現出來的。不信?去查查GOOGLE吧。
二、怎樣才能把自己訓練成高手?
學會下列技術,就已經在高手的路上了
JVM調優
Java程式效能優化
Mysql
Spring AOP
Spring 5新特性
Mybatis
分散式架構
架構核心服務層技術
架構關鍵技術設施
分散式訊息通訊 非同步於MQ
分散式快取
資料儲存
高併發分流技術Nginx
分散式解決方案
應用框架原始碼解讀
微服務專題
SpringBoot
與微服務的區別於聯絡
快速構建SpringBoot工程
SpringBoot核心元件剖析
快速整合mybatis實戰
快速整合Dubbo及案例實戰
構建整合 redis及案例實戰
管理及介面測試體系
SpringCloud
Zuul路由閘道器詳解原始碼探析
Ribbon客戶端負載均衡原理
Feign宣告式服務呼叫方式
Eureka註冊中心構件
Config配置服務中心
svn、git快速整合
Sleuth呼叫鏈路跟蹤
BUS訊息匯流排技術
Docker虛擬化技術
介紹、安裝與使用
compose部署指令碼
service服務編排
redis分散式叢集部署
docker file構建
通過maven外掛打包映象
部署及執行應用程式kubernetes編配
構建Mysql叢集實戰
高可用SpringCloud微服務與docker整合實現動態擴容實戰
最後送波福利。現在加群即可獲取Java工程化、高效能及分散式、高效能、高架構、zookeeper、效能調優、Spring、MyBatis、Netty原始碼分析和大資料等多個知識點高階進階乾貨的直播免費學習許可權及相關資料,群號:835638062 點選連結加入群聊【Java高階架構學習交流】:https://jq.qq.com/?_wv=1027&k=5S3kL3v
