在校學生一枚,面對高性能伺服器開發、分散式系統、緩存系統等等。該如何最快最好的提升自己的技術水平呢?

在校學生一枚,技術發展方向如題。

最近接觸到了許多概念和框架,例如Java NIO,Mina,Netty,XSocket,Redis,Memcached HBase,分散式,緩存等等,另外還有同步非同步調用等。覺得有點多有點亂,不知道該如何學習。


1,唉,又是一堆誤人子弟的答主。

2,題主,你提到的什麼高性能伺服器開發、分散式系統、緩存系統、Java NIO、Mina、Netty,同步非同步等等,都只是 招式

世界上的招式有很多,隨時都可以學。但你能不能學懂這些招式,以及學習招式的速度快不快,要取決於你的 內功

3,作為學生的你,你現在學習的 演算法、數據結構、網路原理、操作系統、組件原理、彙編語言 等等科目,是內功!內功需要按順序,循序漸進地學習,而且學習過程非常痛苦且艱難!那些招式與內功相比,算個球!

學好內功後,想學什麼招式就能學什麼招式!

學好內功後,特別是內功紮實以後,學完一個招式的時間非常短!

學好內功後,可以發現那些招式,都只是內功里已經包含的弱爆了的東西:

----&>比如高性能伺服器開發,你自然就會從硬體到軟體,以及網路,都能明白到底什麼才是高性能,以及如何實現高性能。

----&>----&>比如高性能伺服器開發中的存儲問題,不懂內功的小朋友,聽別人說SSD性能高,就以為高性能伺服器應該全部上SSD,而有深厚內功的你,就知道,SSD比機械硬碟來說,不過就是隨機IO速度快而已。

----&>----&>----&>而且你還知道SSD與機械硬碟為什麼會存在隨機IO速度差距。

----&>----&>----&>----&>並且你還知道存在一種存儲設備,在一些存儲業務需求上可以秒殺SSD等等。

這些更深入的東西,對於那些只有招式而沒內功的人來說,根本不會想到的。很多公司需要的高端人才,高收入人才,也就是這類能震古爍今,橫穿軟硬的人。

4.結論:作為學生的你,應該把內功的修鍊放在第一位。對於那些招式,能不浪費時間,就不要浪費時間在上面。練好內功,天下無敵。至於那些花里胡哨的招式,呵呵,工作之前再臨陣學武都來得及。


1, 如果有條件的話,找一個靠譜的公司實習是最快的方法

2. 自己找機器搭起來玩玩(不過估計只能單機模擬模擬了),然後看代碼,書。。。


可以看看高級操作系統或者高級計算機系統結構。其實這些伺服器之所以是高性能的,是因為在兩個地方體現了高:第一是物理性能高,可以通過提高單機性能或者通過分散式來擴展性能;第二就是軟性能高,只要你在面對大的pv的時候能具有很高的時效性和穩定性,不管你採用什麼策略,只要能滿足上述要求,都可以叫做高性能。當然我很贊同樓上的「內功論」,內功基礎不好,學什麼招式都是白搭,別人稍微問的深一點,你就答不上來了。不過,興趣是靠實踐來培養的,要多動手,通過動手夯實基礎,這是竅門,可以通過參加比賽或者實習來提高啦


Java NIO,Mina,Netty,XSocket

這一塊屬於高性能的網路編程 你可以先研究下 自己動手寫個簡單聊天程序等等

Redis,Memcached HBase

這些屬於分散式緩存和Nosql的內容

你可以在虛擬機安裝 部署 然後寫測試程序去調用

最好還是找個有相關實際需求的公司 去裡面「實戰」更靠譜


先搭個在你能力之下可以搭建的可以運行的組合

然後琢磨各個環節之間的運作方式與最優化方式

最後考慮各模塊組件的替代方案是什麼

最現實的情況是有個業務系統要部署或者要開發


推薦閱讀:

1G緩存的機械硬碟,拷貝文件是否只是前幾秒快一些?
如何設計網站的緩存?
求教大神瀏覽器是根據什麼決定from disk cache 與 from memory cache?
cdn的緩存數據是如何實現分片的,如何有效的實現各分片的存儲及刪除?
`a = false` 和 `if (a) { a = false; }` 哪個快?

TAG:緩存 | 分散式系統 | 高性能 |