谢老的这本书我几乎从第二版开始就一直读了,因此也至少读了4遍,这本书是国内不多的几本能看的讲计算机网络的书籍之一,其知名度也高,可以和谭浩强的C语言教程相比肩,书有名气了自然也就面临了众口难调的尴尬。查看评论不外乎就两类,一类说好,另一类说不好。
    说这本书好的群体自然不必多说,受此影响你买来看看便知一二。说不好的几乎都是在说它讲理论,没有可实践性。然而没有理论,怎能更好的实践?理论是读出来,然后悟出来的,而实践则是做出来的,如果想实践,最好是去动手做一些试验,并且在工作中积累经验,靠读书是万万不可的,读书只能给实践者一个大体的提纲挈领,比较好的书也不多,Cisco的书不错。
    网络技术发展到了今天,很多底层的技术均已成型并沉淀下来,在那些领域发展的机会也都已沉淀,因此第五版的《计算机网络》砍掉了很多底层的细节,增加了大量的应用层协议的讲解,这是该书的最大变化,然而如果你看过第二版,很多技术细节估计早就被你了然于胸了。希望在网络技术上大展宏图的注意了,现如今网络技术已经没有多少水分了,也没有层出不穷的空子可钻,一切必须靠自己实实在在的努力去获得,不可能靠一两个培训就能掌握网络技术的,你可能会熟练配置华为三层交换机,可能会配置iptables规则,也知道什么是DMZ区,然而这些都替代不了对底层原理的深入理解,如果啃不动RFC,那么读读谢老的书也是不错的,在你对理论有了比较深入地理解之后,后面的学习才能顺利,否则一切都是浮云。
    记得那是2006年春节过后,我进入长春的一家软件公司做java,那是我第一份工作。入职培训过后进行了一次考试,考题全部都是网络协议的理论方面的,我拿到了最高分,因此也被分到一个比较有技术含量的部门,有几个比我学历高,比我写的代码更多的人却没有我这么幸运,我问过经理,公司又不做研究,为何这么在意理论知识的掌握呢?得到的回答是理论不扎实的人在编码中永远都不会有自己的想法...确实是这样,由于那是第一份工作,也就影响了我很久,从此以后,只要学习一样新东西,我就先要了解一下它的概念以及基本原理,这个过程可能花很久,但是这个时间绝对不会白花,后期实践过程中创新,问题定位,扩展,蹂躏,得心应手,如果不理解基本原理,估计一个坑掉进去就出不来了。
    当然,如果你只是想成为一名普通网管,那么实在没有深入理解理论的必要,但是想成为一名高级网管,网络工程师,研发人员,千万不要在第一步就沉迷于step by step之类的教程,不要慌着敲键盘,先静下心来读读书,然后再进入实践。关于实践,我也有一些亲身的感触,那就是在动手之前要先规划网络拓扑,否则你面对的将是无限缠绕的双绞线缆与电源线,加上很难对应的上的机器,这足以让你崩溃的了,于是你便知道了综合布线的重要性。说实话,即使作为一名网络工程师,综合布线都并不一定非要精通,然而哪怕作为一名软件研发工程师,想做一个很小的实验,你也不能完全忽视布线的重要性。如果有条件,将环境搭建在一个和既有网络完全隔离的地方是最好最安全的,虽然说利用现有的网络可以省去很多配置工作,但是一旦出现问题,你很容易就会陷入泥潭,即使不出现问题,一条路由的错误配置,一个网桥的环路将会导致严重的问题。近一周,我一直呆在工作室里工作,工作室这个名字是同事取的,很有趣,本来这间屋子是一个会议室,为了搞一个测试,我就占据了它,把一二十台机器摆在了会议室的桌子上,全部开机,机器排放的很整齐,因为我认为相比贴纸质标签,物理位置让人印象更深刻,因为它少了一个名称和具体设备对应的过程,既然人眼拥有强烈的空间感,为何还要借助一个抽象的名字呢?然而这只是在你的空间足够大的情况下才可行,如果空间很小,机器以堆叠的形式摆放或者随意摆放,还是贴上标签吧,或者也已经进入了另一个领域了,那就是机房规划,也属于综合布线的范畴。和软件开发一样,必先利其器,网络实验也是这个道理,否则即使你的理论再扎实,也很难运用于实际,因为总有一些边边角角的看似不是核心问题的问题牵绊着你,比如搬机器,插拔网线...