再論關(guān)于如何學(xué)習(xí)網(wǎng)絡(luò)編程-創(chuàng)新互聯(lián)

前些天在一個(gè)論壇上和一位朋友爭論了學(xué)習(xí)網(wǎng)絡(luò)編程的方法,而后發(fā)表了《TCP協(xié)議疑難雜癥全景解析》,不算猛文,但也得到了一些回應(yīng),大家都是對Richard Stevens的兩本書情有獨(dú)鐘:《TCP/IP詳解(前兩卷)》/《Unix網(wǎng)絡(luò)編程》。我提出了自己的不同的聲音,首先我不同意這兩本書很重要,其次我覺得這兩本書根本就不重要!
    首先聲明,本人并不是什么高手或者頂級(jí)***,也沒有能力通過TCP/IP網(wǎng)絡(luò)將電話免費(fèi)盜打到梵蒂岡教皇那里,...只是稍微了解一些任何人本應(yīng)該都了解的東西,只是大部分人在學(xué)校沒有完成這個(gè)目標(biāo)而已,不過沒有關(guān)系,自學(xué)就可以了,一般而言,學(xué)校也是不怎么教深層次的網(wǎng)絡(luò)知識(shí)的。那么現(xiàn)在就設(shè)計(jì)到了一個(gè)問題,那就是怎么學(xué)的問題。
    要想精通網(wǎng)絡(luò)編程,那么首先要明白,網(wǎng)絡(luò)編程實(shí)際上是兩個(gè)概念,一個(gè)是網(wǎng)絡(luò),一個(gè)是編程。很多人只是學(xué)會(huì)了所謂了socket接口,知道了什么recv的參數(shù),知道了XYsockopt,就說自己精通網(wǎng)絡(luò)編程,實(shí)際上他只是知道了編程,而可能對網(wǎng)絡(luò)一竅不通。他知道交叉線和直連線為何這樣區(qū)分嗎(更進(jìn)一步,為何交叉線連交換機(jī)而不能連主機(jī)[聲明在非自協(xié)商情況下,以防編程的人鉆牛角尖]);她可能知道慢啟動(dòng)這個(gè)詞,然而她知道如何調(diào)優(yōu)TCP嗎?他可能知道路由怎么配置,然而遇到路由混亂能解決嗎?這些問題往往都是很多科班出身人所忽略的,他們只在乎編程,而忽略了網(wǎng)絡(luò),自以為學(xué)會(huì)了編程就學(xué)會(huì)了一切,殊不知自己可能連什么是默認(rèn)網(wǎng)關(guān)都不知道。
    我不知道為何大四畢業(yè)不久的科班生有時(shí)候反而不如網(wǎng)吧的網(wǎng)管,是單純的經(jīng)驗(yàn)問題嗎?有點(diǎn)原因,然而還有更深層次的原因,我不想用紙上談兵這類貶義詞,只是想說大家對C太熱衷了,以至于忽略了其它,難道能用bash完成同樣的事不更好嗎?為何單純只有C能體現(xiàn)技術(shù)含量呢?因?yàn)橐缿貱,因此撲在了socket,因此認(rèn)為接網(wǎng)線,配路由,寫腳本之類的事都是網(wǎng)管干的,結(jié)果自己就是一個(gè)代碼民工。當(dāng)然,這個(gè)現(xiàn)象也許和大學(xué)的課程安排有關(guān),所幸我沒有接受過那樣的安排,我們當(dāng)時(shí)只是簡單的培訓(xùn)了網(wǎng)絡(luò)協(xié)議和上機(jī)教程,隨后我們還拿著網(wǎng)線鉗做網(wǎng)線,好像是民工一樣,然而正是那個(gè)時(shí)候,歪打正著的打下了日后需要的功底。
    因此,學(xué)習(xí)網(wǎng)絡(luò)編程的要點(diǎn)中,網(wǎng)絡(luò)是更重要的,如果你把協(xié)議都了解了,都精通了,你的接下來的選擇有很多,你可以寫bash,也可以寫java...但是如果你只會(huì)socket,那么可要當(dāng)心夾生飯的危險(xiǎn),你的既有理念會(huì)阻止你去學(xué)習(xí)做網(wǎng)線之類的事(你認(rèn)為只有寫C的才是研發(fā))(當(dāng)然并不是說精通網(wǎng)絡(luò)一定要做什么網(wǎng)線,只是隨便舉個(gè)例子而已)。學(xué)習(xí)曲線一定要確定。
    Richard Stevens的兩本書,從某種意義上講,比較適合對網(wǎng)絡(luò)協(xié)議已經(jīng)很了解的人,他的《Unix網(wǎng)絡(luò)編程》針對的就是編程,而他的《TCP/IP詳解》系列我感覺還缺一本,那就是第0卷:TCP/IP協(xié)議概述,如果根本不懂什么是TCP/IP,直接通過抓包結(jié)果學(xué)習(xí),那絕對是一頭霧水或者喜歡就是論事,他的這本書比較類似國人毛德操的Linux內(nèi)核情景分析兩卷本,當(dāng)然Richard Stevens在也不會(huì)再版了...因此也不便多說什么了。我主要想說的就是,在看Richard Stevens的書之前,你要確認(rèn)自己已經(jīng)很理解TCP/IP了。
    另外,有位朋友提到要看TCP/IP的實(shí)現(xiàn),當(dāng)然這是必要,看Linux的實(shí)現(xiàn)是最方便的。然而對于自己來說,要看有沒有必要,如果你只是一個(gè)實(shí)施人員或者售前支持,那么就沒有必要十分精通它的實(shí)現(xiàn),因?yàn)榫ㄆ鋵?shí)現(xiàn)最主要的目的是調(diào)優(yōu),而調(diào)優(yōu)是研發(fā)的事。但是最為一條總的學(xué)習(xí)路線,看實(shí)現(xiàn)總是沒有壞處的。
    雖然我好像一直都在降低編程的重要性,但是事實(shí)上,正好相反,編程的地位應(yīng)該是最高的,它正好像蒸煮好的米飯一樣,是一切的最終實(shí)現(xiàn),但是切莫產(chǎn)生夾生飯。任何的TCP實(shí)現(xiàn)都是通過編程語言實(shí)現(xiàn)的,因此我對學(xué)習(xí)網(wǎng)絡(luò)編程的建議是:
1.寫代碼,了解API,但是不要在此階段停留太久;
2.閱讀RFC,了解原理,這個(gè)步驟一定要細(xì)致;
3.寫代碼,側(cè)重原理的確認(rèn),確認(rèn)你所在RFC中看到的事情是真的,這個(gè)階段要花費(fèi)些時(shí)間;
4.閑暇時(shí)可以看看《TCP/IP詳解》,《Unix網(wǎng)絡(luò)編程》之類的書,沒時(shí)間就算了;
4.1.如果你就是想完成工作,養(yǎng)家糊口,那么到這一步就為止了,否則接著往下看。
5.看Linux的TCP/IP協(xié)議棧實(shí)現(xiàn),必要時(shí)候Hack之,如果你真的想理解TCP/IP并且搞點(diǎn)大動(dòng)作,這個(gè)階段花點(diǎn)時(shí)間是值得的;
6.找一個(gè)網(wǎng)卡驅(qū)動(dòng)看看,看看網(wǎng)卡為何這么設(shè)計(jì),主要的是看看文檔的說明,并且hack驅(qū)動(dòng),反證文檔的正確性;
7.寫代碼,利用學(xué)到的知識(shí)不斷提升性能,這個(gè)階段就是完全自主的階段了,你應(yīng)該拋開一切的文檔資料,自己實(shí)現(xiàn)一個(gè)優(yōu)化的協(xié)議;
8.寫代碼,還是寫代碼,這個(gè)階段,可能你要和國際大牛接觸了,主要通過Maillist...


另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

創(chuàng)新互聯(lián)為企業(yè)級(jí)客戶提高一站式互聯(lián)網(wǎng)+設(shè)計(jì)服務(wù),主要包括網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、APP應(yīng)用開發(fā)、小程序設(shè)計(jì)、宣傳片制作、LOGO設(shè)計(jì)等,幫助客戶快速提升營銷能力和企業(yè)形象,創(chuàng)新互聯(lián)各部門都有經(jīng)驗(yàn)豐富的經(jīng)驗(yàn),可以確保每一個(gè)作品的質(zhì)量和創(chuàng)作周期,同時(shí)每年都有很多新員工加入,為我們帶來大量新的創(chuàng)意。 

網(wǎng)站名稱:再論關(guān)于如何學(xué)習(xí)網(wǎng)絡(luò)編程-創(chuàng)新互聯(lián)
標(biāo)題來源:http://bm7419.com/article26/igdcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器外貿(mào)網(wǎng)站建設(shè)、Google關(guān)鍵詞優(yōu)化、搜索引擎優(yōu)化網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名