码迷,mamicode.com
首页 > 其他好文 > 详细

也谈服务器端网络编程

时间:2014-12-15 17:04:04      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   os   使用   sp   on   

这里主要说一下自己看的书和一些心得体会,把自己的学习路线梳理一下,也是作为自己这段时间的学习总结。

因为从事的都是服务器端开发和学习,所以本文内容主要在该范围内,假定读者经过了系统的CS学习(DS、OS、组成原理等核心课程)。

First,我的学习书籍路线参考如下内容:

 

 1 A:《Linux鸟哥私房菜》(第三版);
 2 
 3 B:《Linux程序设计》(第四版 中文版);
 4 
 5 C:《TCP/IP详解v1》(英文版);
 6 
 7 D:C/C++语言相关;
 8 
 9 E:《UNP v1》(第三版 中文版);
10 
11 F:《APUE》(第三版 中文版),《UNP v2》(第二版 中文版);

这些书没有非常严格的先后次序,需要根据自己的功力和实际情况而定,比如说刚接触Linux不久就去看APUE,估计被虐的要哭啦;如果没有实际的操作环境或者应用环境,就去搞内核方面的书,那你基本上是浪费时间,等等,这都是我走过的一些弯路,浪费了很多宝贵时间,希望大家引以为戒,把时间用到刀刃上。

 

Second

下面分门别类的说说读这些书的心得体会:

(1)系统入门必备(《鸟哥私房菜》)

说实话,这是业内公认的绝对入门书籍,作者是台湾的;这本书基本上是他一步步学习和管理Linux系统的手册,所以这本书适合从无到有(基本对Linux零基础)的学习Linux系统(基于CentOS),基本算是手把手的教吧,个人认为它比较适合完全菜鸟级别的入门学习,或者入门级别的参考手册,比如Linux安装,配置等等一些最基本的Linux操作,当然也包括一些系统级别的介绍、工具的使用等等;另外,这本书是基于CentOS的,该系统主要是做服务器端操作系统用的。

优点:入门级别,门槛低; 缺点:作者稍啰嗦,内容多且点到为止; 

我的用途:入门是大致看了一下重点章节,操作一些,后来就当配置参考手册、工具(awk,vim等)的快速参考资料

PS:该类别的其他菜鸟书籍没看过,不做评论

 

(2)编程入门(《Linux程序设计》)

这本书知名度并不高,写的也一般吧,Linux下的程序设计用到的方法、工具、函数等等都涉及到了,比《鸟哥私房菜》前进了一步;

这里的编程入门并不是学过数据结构和算法、会点编程语言就OK啦,而是Linux环境下的编程、调试,这本书基本涵盖了Linux程序设计(不止是服务器端编程)涉及到的大部分内容;大部分章节我都看过,后面的图形化那部分我没看。

同类别同层次的书我认为比较好的一本是《Unix-Linux编程实践教程》,这本书好像只有一版,讲的东西和上面的这本差不多,不过更多的是从系统的角度去看,所以涉及到了一些操作系统、组成原理方面的内容,并引领读者怎么一步步编写一些系统程序的实现,还算比较好懂;另外,这本书是很久之前写的(很多函数没有返回值),在调试的时候会遇到一些问题;这本书我也只是浏览了几章,没细看。

优点:开发方面的东西都涉及到了,也容易理解; 缺点:编程能力不会有太大提升,例子的实践价值不高。

PS:编程能力好一点的建议用《Linux程序设计》学习工作中会用到的基本技术,差一点的用《Unix-Linux编程实践教程》提高程序设计能力。

 

(3)协议(《TCP/IP详解》v1)

大神Stevens的六部大作之一;既然是服务器端编程,网络协议方面的东西还是要懂一点,主要是TCP、UDP、Http这三个协议吧,当然在校的最好把《TCP/IP详解》的第一卷给啃了,工作之余的学习就看对应的章节就可以啦(我是这么干的O(∩_∩)O哈!),其他的协议需要的时候再去搞就可以啦。有一点需要注意,这本书第一版出版非常早,但是重点的协议问题都讲的非常清楚,一般的开发问题足够了;11年好像出了第二版,但是据说修订版作者把经典给糟蹋啦。

读这本书可能需要一点点网络基础,如果感觉比较难懂的可以先学习一下《图解TCP/IP》,小日本写的,适合零基础了解,也不厚,三百页的样子,我从头到尾看了一遍。

优点:太多,大家知道的,用过的都说好 缺点:得有点英语基础,读起来比较费时;有些情况的讨论在今天已经无意义,新的问题可能没有相应的部分。

PS:内容多,深入浅出,需要自己把握重点;另外好像有本《Effective TCP/IP》,网上有人推荐,还没读过。

 

(4)C/C++(语言相关)

这部分是基本功,相关的帖子和书都比较多;

C语言基础:《The C Programming Language》 

C++的基础书籍有两本:《C++ Primer》和《The C++ Programming Language》,业内公认;

更深入的就看你自己的功力和想法啦,个人没什么参考性;

PS:搞C++心有余而力不足,学了很久,但是准备放弃,因为我觉得更多精力应该放在系统业务逻辑、架构本身(服务器端的开发语言有很多,C、Go、python等等),而不是反复琢磨一门编程语言的模型和特性上;专心做一件事,如果工具本身特性我都很难搞定,我会选择更合适的工具,而不是反复练习这个工具的使用。

 

(5)网络编程(《Unix Network Programming v1》 3rd)

 Stevens的六部大作之一,网络编程方面的常见问题这本书都讲到了,甚至网上讨论概念问题的时候,都是参考此书。重点是这本书的前三分之一,和后面的个别章节;第一遍没怎么看懂,硬着头皮看,现在我在看第二遍,细细琢磨之后豁然开朗的感觉,能够感觉到明显的提升,这feel倍爽。感觉这本书是这样的,第一遍可能带你入门,再细读第二遍甚至是第三遍就会提高很大,然后就可以成为案头必备啦。

优点:同(3) 缺点:没有具体应用场景,不知道怎么应用

PS:我是看的中文第三版,翻译的还行,具体参考亚马逊书评、豆瓣或者知乎评论。

(6)系统编程

《Advanced Programming in the UNIX Environment》 3rd

《Unix Network Programming v2》 2nd

《APUE》其实并不适合入门,比较适合初级到中级提升功力用的,所以如果没有一些基础,不要一开始就去啃这本书;有了基础之后去捡重点章节读一下,重中之重是文件IO、进程、信号,我也是捡重点的章节看看,涉及到不懂的再去看相应的章节。另外,《APUE》第二版据传翻译的比较烂,搞的大家都去看英文版,现在的第三版翻译的还不错,我是看的这版,没什么问题,建议看第三版中文。

《UNP v2》说的是各种IPC机制是怎么实现的,以及一些应用和常见问题,我看了一遍,但是后来基本上也忘了,只是需要的时候去看看。

优点:同(3); 缺点:门槛高

PS:今年新出的《Linux/Unix系统编程手册》,德国人写的,据说要超越《APUE》,网上没有完整中文电子版的,能找到的中文电子版我都看了,甚至浏览了下亚马逊买的纸质书,浏览了几章,后来又退了。该书基本上是完全面向Linux的,分了60多个章节,感觉应该属于是系统相关比较入门级别的书,适合基础不太好的童鞋;考虑到排版、纸质、写书风格问题(毕竟不想在两种风格之间转换),我最终选的Stevens的《APUE》,反正既然能看懂经典,还是去读经典吧。

 

Last

上面就是自己这一年左右看的书,都是我认为比较核心的书,读这些书自己能感觉到功力的明显提示,其他的零敲碎打的、读了也没感觉有啥提示的就没列出来。

另外,这些经典是用来阅读、品味和收藏的,尽量买正版吧,看着也舒服;

最后一句:一本经典读十遍,远比十本烂书读一遍强(这是我大学最痛的领悟),各位,且读且珍惜!

也谈服务器端网络编程

标签:style   blog   http   io   color   os   使用   sp   on   

原文地址:http://www.cnblogs.com/lizhanwu/p/4164456.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!