在校學生一枚,面對高性能伺服器開發、分散式系統、緩存系統等等。該如何最快最好的提升自己的技術水平呢?
01-13
在校學生一枚,技術發展方向如題。
最近接觸到了許多概念和框架,例如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; }` 哪個快?