上天還是入地?


我要這天,再遮不住我眼, 

要這地,再埋不了我心, 

要這眾生,都明白我意, 

要那諸佛,都煙消雲散!

       --- 今何在《悟空傳》

 

很多人入行以后,都是靠一門語言,幾個框架謀生,在這個行業摸爬滾打幾年以后,會產生一些疑惑: 作為熱愛技術的碼農,以后的路該怎么走?   

 

我覺得有兩個方向可供大家參考:  一個是“上天”,一個是“入地”。

 

1上天

 

“上天”的意思就是慢慢往上升了, 剛開始的時候就是在一些框架中做一個填空人員, 在別人的指導下實現小塊的業務需求, 比如用Spring, Hibernate/MyBatis 去寫稅務軟件的某一個模塊。  

 

后來職責擴大,自己開始負責一個或幾個模塊,帶着別人做開發,看到的領域也越來越大, 開始向外擴展, 去學習系統的緩存是怎么設計的,數據庫讀寫分離,主從復制是怎么做的, session是怎么管理的,搜索是怎么實現的 ,消息隊列是怎么用的,怎么做到高可用性、高並發等等。  

 

由點及面, 着眼系統整體和業務的全局,慢慢具備了設計系統架構的能力: 把需求轉化成合適的技術組件,讓這些組件以合適的方式連接、部署、運行。

 

經過長時間的實踐、歷練和經驗的積累,把很多東西都研究透了,知道了各種技術的優缺點,終於迎來了質變的一天:突然發現自己具備了技術選型的能力,對於某種需求,能夠選取合適的軟件和技術架構來實現它。 

 

這時候即使軟件業發生了一些變化,出現了很多新技術,例如DevOps,  容器, 微服務,前后端分離,Angular, React ,CQRS 等等,  你發現稍加研究就能參透這些技術的本質, 他們要解決什么問題,有哪些最佳實踐, 能否在自己的項目/產品中采用。 恭喜, 你已經成功上天了!

 

注意,我說的並不是架構師,技術總監, CTO這樣的title , 而是一種能力。 

 

那些“上天”的人知識面講究廣度,對深度並沒有極致要求, 你可能並不了解一個軟件的內部細節實現, 但是一定知道這個軟件的特點、能力、性能和適用范圍。 

 

2入地

 

對於“入地”的人,恰恰相反,要求深度而不求廣度, 要求是領域專家, 一個形象的比喻是要求一個一厘米寬的口子得有兩公里深。

 

“入地”的人專注於某一類技術,比如說有人特別喜歡安全領域,把各種攻擊、防御方法研究透徹 , 成為了一個安全專家。  或者有人就是喜歡搜索,把搜索引擎的原理搞了個明明白白, 成了搜索專家。 

 

很明顯,“入地”要求一個人真的要對這個領域超級感興趣,要不然就經不起誘惑,耐不住寂寞,別人都在熱議雲計算,大數據,人工智能,你還能靜下心來研究動態字節碼生成嗎? 你還能研究Tomcat的原理嗎? 

 

“入地”的領域非常多,例如安全、搜索、應用程序框架、緩存、JVM、分布式、RPC框架等等。  或者更加底層的數據庫開發,Web服務器開發, 編譯器開發等。

 

這些領域對軟件的正確性、可靠性、安全性、性能要求極高,所以從事這些軟件開發的人,肯定得真正地精通操作系統、網絡、算法等基礎知識, 這些人是真正的專家,受到大家的尊敬。 

 

3哪個更好?

 

上天和入地哪個更好,更高級?  其實沒有貴賤之分,就看一個人的愛好了,每一條路都不容易,都需要努力的奮斗才行。 

 

最怕的是高不成低不就,工作多年還是呆在中間,那就容易被IT的大浪拍死在沙灘上了!  

end


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: