問題
今天的話題比較沉重,可能會被打。
我先提兩個問題:
1、離開spring,你還會寫程式碼嗎?
2、現在培訓機構的廣告滿天飛,都在營造一種技術牛逼就能進大廠,還各種販賣焦慮,你認為學習完各種牛逼的技術就能進大廠嗎?
如果第一個問題你回答不能,第二個問題你回答能。
那我得警告你了,你可能陷入了技術泥潭。
什麼是技術泥潭
什麼是技術泥潭呢?
這個詞是我發明的,它是指你陷入了某種技術不能自拔,或者是陷入一種外部營造出來的需要持續不斷學習“技術”的氛圍不能自拔。
這兩種情況都很危險。
Spring泥潭
首先,我們看spring的例子。
spring確實很牛逼,它為java帶來了新的春天。
站在老闆的角度,我肯定希望你直接用spring就可以了,因為能夠極大的減少開發的複雜度和維護成本,而且你走了,來個人都能搞。
但是,站在員工的角度,一旦你把自己陷入到spring的技術棧裡,對於個人的成長是非常不利的。
正所謂,時間均衡定律,你在一個地方花費的時間多了,在另外一個地方肯定就少了。
如果專注spring,沒有一兩年你是不可能達到精通的地步的,光是spring的官方文件就夠你讀好幾個月的了。
說實話,java領域不止spring,還有很多其他的技術,而且,要成為架構師,是需要點線面體全方位的提升的。
所以,一旦你在spring上面投入了過多的時間,你就沒有時間花在其他方面,你可能會錯過很多,甚至是,愛情。
技術泥潭
然後,我們再看第二種情況:陷入一種外部營造出來的需要持續不斷學習“技術”的氛圍不能自拔。
注意這裡的關鍵詞是學習技術不能自拔。
咋一看,這不是好事麼?
其實不然,你自己算算java領域你需要學習多少東西,jdk原始碼,jvm,netty,spring,MySQL,elasticsearch,kafka,rocketmq,mycat,sharding sphere。。。。。
隨便列一下,就有十幾種,這些技術一個一個認真學完,你自己算算要多少年,青春啊,歲月啊,愛情啊。。
最重要的是,一旦你陷入到技術學習中,你就會忽略其他方面的東西,比如思維能力,溝通能力,解決問題的能力。
最後,你可能會成為一個技術傻子。
該表達的意思,我表達到了,相信你能理解我的意思。
如何學習
所以,技術人應該學習哪些東西呢?
在之前的文章中,我也說過,應該學習下面幾種知識:
1、學習能夠幫助你快速理解業務的能力。
2、學習通識,並儲備技術。
3、學習社交能力,即軟實力。
上面3點在上一篇文章我們都說過了,就不再贅述了。
我們以分散式技術為例來看,應該掌握哪些通識呢:
1、理論,acid,cap,base,paxos(zab/raft),一致性hash
2、java體系,併發,多執行緒,同步器,unsafe,反射,動態代理
3、作業系統,CPU快取一致性,oscache
4、單機故障就加主備,單機瓶頸就加分片,分片就是分散式
你可以看看,是不是分散式框架都用到這些技術,不管是訊息佇列kafka和rocketmq,還是搜尋引擎Elasticsearch,或者是分散式快取redis cluster,當然,還有動物管理員zookeeper(分散式協調器)。
好了,今天的文章我們就聊到這裡。
題目
我留個題目,你可以嘗試不使用任何框架能不能寫出來:
甲和乙兩個人去看房,他們同時找到了中介,甲說我需要一房一廳、月租不超過1800,乙說我對房型沒有要求但是要在某某大廈1公里以內,價錢不是問題。
OK,題目就是這樣,請你用程式碼實現這個需求,前提是不使用任何框架。
小提示:題目有很多隱藏的資訊,需要你自己挖掘。
結語
最後,也歡迎同學們留言說出你的思路,或者討論一下,你有沒有陷入技術泥潭呢?