读书综述

编程入门 行业动态 更新时间:2024-10-06 18:32:54

读书综述

读书综述

个人感觉我的最大的喜好就是阅读书籍,借鉴古人有“温故而知新”的理念,个人认为也该写写日志神马的来总结一下自己读研的这几年的读书经历吧,之所以我想写,列举两点:其一,读书写总结,我觉得这是天经地义的,没有神马附加条件,所以写一个综述,以后有时间的话,再来写具体点的东东;其二,我觉好东西就应该拿出来跟大家分享,或许你的阅读经历和建议对于那些想学习这方面知识的人提供帮助,其实理由还有很多很多的,只是多说这些无意,直接上主题。

说句实在话,我也看了不少的书籍,涉及地面也是比较的广,包括:Linux/UNIX 内核架构原理、Linux/UNIX网络技术、TCP/IP协议栈、驱动程序设计以及虚拟化技术等。下面就详细地介绍一下我看的一些书籍,主要分成三大模块:(1)程序设计及软件架构类,(2)Linux/UNIX内核架构类,(3)网络技术以及TCP/IP协议类。

1程序设计以及软件架构类

(1)C++ 程序设计类

在这一部分中,阅读过的经典书籍有如下《C++ Primer》、 《C++ 程序设计语言》、 《effective C++》、 《more effective C++》、《C++ 标准程序库》、《STL 源码剖析》、《Boost编程指南》、《Inside the C++ object model》、《C专家编程》、《C与指针》、《C程序设计语言》、《泛型编程与STL》等。个人感觉如果想要学好一门编程语言的话,就得找一本比较好的指导书籍来学习,实践,我知道国内有一本关于C++写的比较好的书籍(谭浩强,那本),据说写的不错,只是我一般很少看国内的同志们的书,所以我就木有发言权了,我觉得应该也差不了多少,呵呵,在我看过的这些书中,首当其冲的要极力推荐的是《C++ Primer》,推荐购买它的特别版,个头大,内容足,估计有800多页的样子,很厚的一本,可想而知它里面的内容是如何的详细,我看了它的前面的16章,整体感觉很好,就是有些地方理解起来可能有点难,但是多读几次,理解应该没有什么问题;我之所以既看了C++ Primer 又选择了C++程序设计语言,是因为那次在盛大实习生面试时,那个看似很牛逼的面试官,一开始就问我看没看C++ 程序设计语言这本书,于是乎,面试完后,在网上下载了电子书,看了它其中的部分章节,感觉写的很好很强大(毕竟是C++之父写的书,当然NB),我看的是中文版的电子书,内容虽说很好,但是那个翻译作者,看得我都很无语,哎,还亏他是北京大学的教授,竟把interface翻译界面,原本是类的接口,翻译成类的界面,当场就晕倒!!!!,所以我又下了它的英文版,大致地看了一些。行文思路比较好,就是有点晦涩,不适合初学者,所以我建议看第一本《C++ PRIMER》,至于我列举的后面几本书,感觉写的也是超级经典的,像《effective c++》和《more effective C++》写的相当的好,但是只针对具有一定的C++基础的同志们,对于初学者不是很适合,同样也不适合木有做过C++方面的项目的同志们,说白了这本书是写给正在做C++方面的项目的IT民工的。如果你觉得看了这两本还不过瘾的话,那我推荐你看《Inside the C++ Object mode》(与<C++ PRIMER> 同一作者),保证让你爽到极致,这本书不是很厚,但是里面的东西都是C++底层实现原理的介绍,《EC++》和《MEC++》参考了这本书。对于看了C++ Primer 的同志们,我极力建议你们看看STL,如果学有余力的还可以看看Boost,STL就是C++标准模块库的简称,里面有大量的现有的算法,你完全可以在项目需要的时候直接调用,现在有很多的IDE都默认包含了这个库(在Windows 下我推荐使用VS2010;VS2008和VS2010比起来那差的不是一个两个档次,并且VS2010提供了对于现在比较流行的云计算的开发框架的支持,可以说VS2010使得C++在编程世界里,赢得了尊严,但是在Linux的GCC下要安装一个简单加载包就行了,这个相比安装GCC要来的容易,如果在Linux下做开发的话,我建议用G++,理由不解释,因为说了也都是一些什么性能,执行速度呀,对于语言的支持度神马的优势,木有意思,这个取决于你自己了,如果你觉得用CC比用GCC更过瘾的话,也是毫无问题的。对于想要学习STL的同志们,我也列举了三本书,我只看了这三本书,我觉得已经足够了,呵呵,《C++ 标准程序库》(侯老大写的),里面主要是介绍了一些基本的STL(容器,迭代器,以及在这些上的算法)基本用法,很给力的,对于以前毫无STL方面知识的同志们,都可以读懂这本书的,并且可以使你学以致用,真的很棒,推荐之!!!!!!!!,如果你还想在STL的道路上走的更远的话,我推荐你读侯老大的第二本书《STL源码剖析》,这本书里讲的是STL的各种容器,算法的设计实现,看第一遍时,你可能感觉鸭梨有点大,但是不打紧的,多看几遍就会深叹STL设计的美妙和华丽,呵呵,就好比一杯青竹系的龙井茶,需要慢慢品。至于《泛型编程和stl》这本书,我只是略读了一下,整体感觉一般,如果你有时间的话,可以读读。如果同志还想更多了解一些关于非标准的程序库的话(“准标准”程序库),我推荐看Boost,Boost可以看做成STL的扩展,其中包含了一些没有加进标准(STL)中去的的模块库,里面大约包含了99中模块库(涉及到很多的方面的),也是很值得深入研究的,说个题外话,这次我在网易实习,就用到了大量的STL知识,所以我可以很负责地告诉你,STL真的很重要,原因不解释,等你会用了你自然会知道,呵呵。至于我所列举的C语言系列,大多都是比较经典的,并且不是很厚,但是也得花时间慢慢学,比如《C语言程序设计》就是鼎鼎大名的UNIX之父(里奇大牛)写的,这本书写的更偏重于系统实现这一层面,写的比较的深,主要是针对UNIX层面上的C,不过真的很经典,呵呵,希望有时间的同志们能够读读,古人有云:深潭者,必有蛟龙也。《C语言程序设计》就是一座深潭,呵呵。至于其他的C语言的书,我也是看了一部分,感觉很好很强大,至于篇幅原因在此就不一一列举了,望见谅。

(2)系统编程类

在这部分里,阅读过的经典书籍有如下:《UNIX环境高级编程》(简称:APUE)、《UNIX 系统编程》、《SOLARIS系统编程》、 《Linux系统编程》、 《Windows 核心编程》、 《Linux 程序设计》、 《Linux设备驱动程序》、 《精通Linux驱动程序开发》 、《Linux 那些事之我是USB》等。我觉得读书不在多,而是在于一个过程,在这个过程中要慢慢地深入下去,慢慢地品和理解,我读的第一本系统编程书籍就是有大名鼎鼎的W.Richard Stevens 写的《APUE》,这本书是公认的经典中的经典,这本书我也是看来三遍来着,但是其中仍然有一些迷惑的地方,比如信号那章,本来系统里面的信号是系统开发中比较棘手的东东。这本书里面涉及了大量的系统API介绍,感觉很好,并且配有部分的示例程序,只要具备C基础的同志们都可以一睹为快的,对于其中的有些不理解的地方,我觉得你完全可以先放放,等你读完了之后,你会找到一些答案来揭开你的迷惑的;至于你还有不能理解的地方,我建议你可以看另外一本书《UNIX系统编程》(Robbins)写的,这本书比起《APUE》来讲更接近教学,里面有大量的实例程序,估计是<APUE>的两倍还有多,并且这本书的最大的亮点是:跟人感觉很亲近,行文给人感觉很好,让人读完后有种释怀的感觉,并且每章课后都有一些系统小项目可以练手的,整体感觉不错,这本书也是我爱不释手的为数不多的书之一。还有一点我需要提及的是<APUE>这本书的译者老尤,有时候我也感觉的有点无语,你们懂得,呵呵。如果你的时间不是很充足的话,我建议你看另外一本书《Linux系统编程》这本书讲的就是一些常见的Linux系统的系统调用API,比较实用,呵呵,另外这本书的作者也是比较有名(LOVE),他的《Linux内核设计与实现》也是首屈一指的。至于其他的书,我推荐给你的书是《Windows 核心编程》,这本书写的也是相当的经典,无论你具备不具备Window程序设计基础知识,你都能从这本书中学到很多很多的知识,真的很棒,你可以从中了解到平时使用Windows系统的一些常见的功能是如何实现的,并且你也可以从这本书中,写自己的各种管理器(比如:内存管理器,进程查看器,系统监视器,互斥锁检测器等等),总之一个字:Perfect。

至于有些兄弟想搞驱动程序开发,那我推荐你看《Linux设备驱动程序》,这本书讲了很多的驱动程序的写法,从字符设备说起,再到块设备,总之,从这本书中,你会得到你想要的东西,并且看完这本书,如果你对LINUX内核感兴趣的话,你会发现LINUX里面大部分的代码是关于驱动程序的,所以这本书可以为你以后想看Linux内核代码铺平道路。看完了这本书,如果你想从具体的驱动程序入手的话,我推荐你看《LINUX 那些事儿之我是USB》这本书是国人写的,说说句实话写的真的不错,作者通过诙谐的笔法,将USB驱动程序讲的偏僻入里,真是让人拍案叫好,不要以为我在做广告,等你真正读进去了之后,你会有和我一样的感觉,不行你读读,呵呵。至于其他的书,我也就没有什么好推荐,大多都和上面介绍的差不多,在此就不多讲解了,大家根据自己的喜欢有选择的看吧,至于那本《Solaris 系统编程》这本书的风格和《apue》差不多,只是其中的系统API的参数有点出入的,毕竟一个主要是针对Sun公司的Sun OS系统(Solaris),一个是针对AT&T公司的Unix系统,但是大的出入倒是木有发现,呵呵。

(3)软件设计以及架构类

在这一部分中,阅读过的经典书籍有如下:《设计模式-可复用面向对象软件基础》、《大话设计模式》、《研磨设计模式》、《企业应用架构模式》、《重构》、《代码大全》等,俗话说的好:工欲善其事,必先利其器。要想成为一名NB的系统研发工程师,光有扎实的系统知识和编程知识还不够,还得具备良好的系统整体设计能力和良好的编程风格,在这部分中我读的书也是不多的,主要是项目上要用的,所以我就看了一些,其中我觉得写的很不错的,也是举世公认的精品——《设计模式》(GOF),其中总结和归纳了大约28个左右的设计模式,每一个设计模式都讲的很精辟和生动,可能第一次你会看得云里雾里的,所以我推荐你先看看《大话设计模式》这本书,这本书讲生动易懂,很符合我们的学习方式,通过实例一步一步指引你向每一个设计模式上靠,每一个设计模式都对应一个小故事,现在我还在感叹作者是如何找到这样的一些小故事的,两个字:蛋疼,呵呵呵。这本书其实是作为阅读《设计模式》的缓冲器,呵呵,先来热热身。至于《企业应用架构模式》可能这本书现阶段离我们有点远,它主要是从企业应用的角度,一个大的系统架构的角度来阐述架构模式,将了很多的各种各样的应用模型,从这些应用模型中,你可以充分的了解到对于一个企业来讲,该如何构建一个架构好,复用性强,可靠性高的系统。有时间的话,我推荐你读读。《重构》,《代码大全》这两本书,你是必须要读的,因为这两本书是你进行系统开发规范的风向标,你必须从中学会如何将自己写的代码规范做的更好,二者两本书就是你借鉴的标尺,这两本书的名声我也不提了,我想每一个搞IT的民工来讲,都是耳熟能详的,呵呵。

2.Linux/UNIX/Windows内核架构类

在这一部分中,阅读过的经典书籍有如下:《深入理解Linux内核》、《深入Linux内核架构》、《LINUX内核源代码情景分析》、《边干边学Linux内核指导》 、《Linux内核设计与实现》、 《Linux内核设计的艺术》、《深入理解Windows系统》(部分)、《Windows内核原理与实现》(部分)等。在这部分中我看的第一本书是《深入理解Linux内核》(第二版),但是当我看了差不多一半的样子,我发现网上这本书的第三版早就出来了,所以果断的换了,因为第二版是基于Linux2.4内核写的,而第三版是基于Linux2.6版本写的,这两个内核的版本差别真的很大,有些地方甚至发现完全改写了,有些地方已经删除,所以我去淘宝上掏了一本,慢慢研读起来,初次看起来可能有点困难,尤其是在读内存管理和文件系统这两部分,有点吃力,如是我就从图书馆借了一本关于内核源码的书,也就是《LINUX 内核源代码情景分析》,结合着来看,发现其中的一些以前困惑的地方还是能看懂,呵呵,所以我建议如果像看内核的同志们,手头上得有两本书,至于这两本书是哪两本,那就得看你了,具体的内容就是(一本系统架构,一本源代码)。

如果有兄弟喜欢一本一本的来看的话,也行的,只要先跳过那些看不懂得地方标上记号,就行了,也许在看到后面的时候,会发现以前迷惑的地方现在不在迷惑了。我建议如果真的学习Linux内核的话,我建议你看这本,国人写的书,内容不错,图文并茂,是少有的国人经典书籍——《Linux内核设计的艺术》(这本书是基于Linux 0.11版本的,不过不打紧的,其实Linux的整体的架构是固定的,只是功能增强了而已,Linux0.11版本的内核和现在2.6版本的内核整个的程序流程基本是相同的,毕竟2.6的祖先就是0.11,你能说你长的不像你的祖先(人类,少扯monkey,你长的才像monkey)?呵呵,这本书讲的从系统的启动到系统的进入怠速状态以及文件系统的整个设计布局到工作流程,进程、线程、网络以及IPC等知识点进行了全面的剖析,讲的真的很棒,他能帮你理解Linux的整个架构,是你看其他Linux书籍的先驱,呵呵,如果手头再有一本赵博士的《Linux内核代码完全注释》那就“万事俱备,只欠你持之以恒的东风了”,总之学习内核,要的就是那份执着和坚韧,加油!!!!!

至于最后的两本书都是关于Windows内核的,我只是看了其中的部分章节,整体感觉很好,能够帮我加深对Windows进程,线程,内存管理,同步机制,APC,LPC,信号量等知识的理解,并且现在Windows 也公开了部分版本的源码,如果想要学习Windows内核的同志们,可以去网上下windows kernel resource 源码进行学习和研究,并不一定要全部读,有选择的读也是一种学习方式哦,总之,持之以恒才是王道!!!!!!!

3. 网络技术以及TCP/IP协议类

在这一部分中,阅读过的经典书籍有如下:《TCP/IP 详解》(卷一,卷二,卷三)、《UNIX网络编程》(卷一,卷二)、《TCP/IP 进行网际互联》(卷一,卷二,卷三)、《Linux网络编程》、《深入理解Linux网络技术内幕》、《Linux 内核源码剖析-TCP/IP实现》、《追踪LINUX TCP/IP代码运行——基于2.6内核》等。这部分是我的最爱,呵呵,一开始我也是从这部分看得,到后来一发不可收拾,呵呵,给我感触最深的还得算是W.Richard Stevens的经典著作,虽说他的书写的年代离我们已经很远很远了,说不定有的同志还木有出生,呵呵,但是他的书确实给我了很深的影响,不愧是一代先驱呀,只可惜因年早逝,他的六本书都是IT界公认的精品(《TCP/IP 详解》(卷一,卷二,卷三)、《UNIX网络编程》(卷一,卷二),《APUE》),我看他的TCP/IP详解看得是英文版的,只是因为我对这本书的翻译有点无语,老尤啊,老尤。。。。,对于想学习TCP/IP协议的同志们这套书是必须读的,虽说这本书的源代码是基于4.3BSD的,并且年代久远(1995左右的),但是这本书的思想确实很经典,充分地讲解了TCP/IP的工作原理,里面的难度可能是组播这一章,建议去看看谢希仁写得《计算机网络》或者国外的一本书也是叫做《计算机网络》书。卷二的英文版页数可能有点吓人,很厚很厚的一本书(1064页),比普通砖还要厚很多,是那种能砸的死人程度,不过里面的确实隐藏了很多的宝贝,说句实在话,如果有的兄弟想在MM面前装逼的话,而苦于找不到什么好的书籍,我推荐你这本(TCP/IP 卷二),既帮你挣足面子,又帮你在MM心目中奠定了不可磨灭的高大威武的形象,呵呵,说笑了,这个方法哥木有试过,不过我可以试试,哈哈,只是哥已经看过了,感觉还是很不错的,所以极力推荐想学习协议的同志们看哦,他的另外两卷讲的就比较的基础了,都是一些比较常用的协议以及应用实例,就只有卷二讲的是TCP/IP实现,所以在看TCP/IP卷二的兄弟们,要有耐心,就把它当做你心目中的MM,慢慢品,保证你能看完。

关于《UNIX网络编程》(卷一,卷二)这两卷书,我也是极力推荐的,这两本书也是我的珍藏,呵呵,卷一,我看了2遍,卷二嘛,具体的遍书记不起了,里面的一些案例我都经过手动敲过一遍,并且也改正了几处错误,我感觉卷一讲的很是基础的,主要是SOCKET API介绍,并且通过实例的不断延伸来讲解各种网络套接字编程的知识,其实不要因为说的是UNIX网络编程,就认为这本书就是讲UNIX的,这就大错而特错了,它不光讲述UNIX,其实他的很多的东西无论在什么样的系统上,都是通用的,所以我建议那些想搞网络的同胞们,有时间一定的看看这本书,至于具体的细节的东西,大家酌情挑选了,呵呵呵,它的卷二那必须是一本旷世经典了,我看的次数都记不大清了,总之很多很多次了,英文版就看了不下3次。经典的书就是要多读,细读的,卷二之所以经典是因为讲的是进程间的通信技术(IPC),包括了多线程的同步,互斥,信号量,消息队列,管道,共享存储区,RPC,Door(针对Solaris系统的),并且里面的知识点真的很重要,现在分布式计算,云计算搞得如此的火,其中涉及到大一大块就是多线程的知识,所以有志向学习多线程的同志们,这本书我极力推荐给你们。《深入理解Linux网络技术内幕》这本书讲的就主要是网络技术了,从底层到应用,都是按点按点给你讲解,其中囊括了网络知识的方方面面,网络设备驱动,网络设备终端,网络设备数据传输,以及各种协议,各种路由算法等,内容真的很丰富,很全面,虽然这本书讲的很全面,对于网络初学者我不推荐,因为其中的很多的知识点讲的很深,所以对于初学者来讲,首先要看懂W.Richard Stevens的书籍,然后试着来读读这本书,如果这本书能读懂的话,你可以再看看我列举的一本书,同样是国人写的《Linux 内核源码剖析-TCP/IP实现》这本书其实没有什么需要过多的说,讲的就是真的LINUX内核TCP/IP协议栈的实现代码,这本书的最大的不足就是:图片少,全部是代码罗列。所以这也是考验你阅读代码的能力了,至于这个不足我已经给这位作者说起过,至于最后一本书,我也木有什么好讲的,也全是代码,这两本全是代码的书(《Linux 内核源码剖析-TCP/IP实现》,《追踪LINUX TCP/IP代码运行——基于2.6内核》)读一本就行了,可能有人要说了,Stevens的书不是已经讲解过TCP/IP实现么,为什么还有读其他的代码书呢,你真天真,TCP/IP代码是不断在改变的,你想想一本95年左右所写TCP/IP内容的书,能和今天的相比么?之所以要读是因为不仅要知道过去,同样也要知道现在,只有这样才能预言未来,你们说呢,呵呵呵,至于其他的书,你们有时间就看看吧,书读多点对你们以后有好处的,但是限于时间的原因,就不过多的写下去了,不然的话,实验室的活得熬夜干了,呵呵呵

写了这么多,可能其中还是有一些书籍我木有提及到,可能太多了,我只能抽部分来讲了,呵呵,看了这么多的书,给我的感觉就是:读书得考虑读这本书我需要知道什么,我为什么读这本书,以及我读完这本书之后,我能得到什么。当你准备读本书时,请时刻记住这三问题,当读完之后,你再回过头来想,你会发现你得到的比你想要知道的还要多,至于你信不信,我反正是信了,最后送大家一句话:书山有路勤为径,学海无涯苦作舟!!!!

如果有什么问题的话,可以给我留言,呵呵

更多推荐

读书综述

本文发布于:2024-02-28 09:45:58,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1768799.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!