写一下这些年看过的书(2014.7.31更新)


之前答应了师弟要写一篇东西分享一下经验,但是却一直都没怎么动手。因为自己大学四年基本上都是摸着石头过河的感觉,也谈不上什么经验,所以也不知道自己可以写些什么。不过,后来受一位师兄的日志启发,觉得也可以分享一下自己看过的书,顺便作为一个读书的报告吧。

 

PS:水平有限,下面介绍的那些书完全是站着自己角度去写的,而且并不是都看完了,大部分只是看了其中的若干的章节,所以如有不妥的地方,请大家指正。

 

 

1、《C Primer Plus 5th》

这本书很全面地介绍了C语言的方方面面,基本上囊括了C语言基本语法知识的所有内容,且在细节上也讲得足够详细,很多基本的C语言容易产生迷惑的地方都能在这本书找到解释。此外,在最后一个章节,还介绍一点点数据结构和面对对象编程的知识,个人感觉,这本书用作C语言的入门书籍实在没有比它更合适的了。

不过,就个人感觉来说,如果对编程一丁点概念都没有的话,看这本书可能会有点吃力,因为这本书的编排,在前面的章节介绍中也会涉及到后面章节的知识。我第一次看的时候,也是对编程没有任何了解,当时看的时候觉得非常难读,看了几十页之后就看不下去了,转而在图书馆借了一本薄薄的C语言书。在大概看了下那本书,对C语言有了一个朦胧的认识之后,再去看《C Primer Plus》5th,马上就有感觉了。

这本书是我正式学习C语言真正意义上的第一本书,也是最喜欢的一本书之一,以码道中友的话来形容看这本书的感觉就是“每一次看的时候都有新的认识”。

 

2、《数据结构》

我看的是用作学校教材那本的数据结构,很多人都看过了,也没什么好说的。个人感觉里面写的比较乱,书上伪代码看上去也略为蛋痛,不算一本好的数据结构书籍。另外,如果是非科班出身的同学,看数据结构书籍时最好先大概了解离散数学的知识,会有帮助的。

 

3、《Windows程序设计 5th》

肤浅地说一下,这书就是介绍用Win32API进行Windows编程的。这本书的第一部分“基础知识”主要是介绍如何用Win32 API关于方面GUI编程的知识,鼠标 、键盘、对话框、控件之类的内容,比较重要的是消息机制那部分。之后第二部分是“关于图的那些事“,主要是打印机、位图、调色板、字体之类的内容,这部分很厚,另外开一本书都足够了,我直接跳过没看→_→。最后一部分则是“高级主题”,主要内容多线程、动态链接库、网络、声音之类的内容,这部分内容都是简单地介绍了一下,作为以后深入了解的基础,内容不多,大概就100页左右。

这本书作为学习Windows编程的入门是一个不错的选择(前提是C语言要扎实),里面在大量的实例代码,在学MFC之前最好先看看这本书,先了解一下Windows的消息机制,这样子就不会一下子觉得MFC太难接受了。另外,如果不想买实体书的话,可以去看电子版的,这本书的电子版是相当的清晰。我当时买的正版的收藏版,打了折之后居然还要98,而且这本书我有超过一半的内容(图的那部分)没看,甚是浪费。不过,我好像记得这本书是可以为分上下册买的,这样的话,只买上册就足够了,下册的话看电子版的。

 

 

4、《C++ Primer Plus 5th》

这本书比较适合没有什么编程基础的人去看,写得中规中矩,介绍的内容比较浅显易懂,前9章的编排与《C PrimerPlus》有点相似,如果有C语言基础的话,前面的章节大概看看就可以了。另外,初学C++的话,我比较推荐这本,而不是《C++ Primer 4th》,这本也出到第6版了。

 

 

5、《汇编语言 2nd》

这本是王爽的汇编语言,相信很多人都看过,书上讲述的内容非常通俗易懂,内容主要包括一些基本的指令的使用,很适合于对汇编的初步了解。

 

 

6、《C++ Primer 4th》

学C++必看书籍(虽然我也不知道为什么(─.─|||)),内容包括基本的语法知识,容器,面向对象编程部分和泛型编程部分,以及一些高级的语法特性。PS:本书已经出到第5版了

如果是初学C++,个人不推荐看这本书,不知道是自己基础不行还是翻译问题,个人和几个朋友对此书的内容一度感到十分晦涩,在看过其他的C++书籍后再看此书,感觉才好了一点

 

 

7、《现代操作系统》

书前半部分主要内容是操作系统的一些基本知识,进程、内存管理、文件系统等,后半部分主要是实例研究,我又没看<( ̄︶ ̄)>。里面介绍得挺详细的,对理解书籍的某些概念有帮助,另外,笔试/面试中,操作系统也是经常要考核的东东。

 

 

8、《Windows核心编程  5th》

相对于《Windows程序设计》,这本书比较侧重于讲述Windows的运行机制,主要内容包括进程、线程、内存管理、动态链接库、结构化异常处理等,算是一本进阶读物,最好有一定基础再去阅读。非科班的同学,最好先去找一些操作系统方面的书,了解一下进程、线程、虚拟内存等相关概念,不然的话可能会看到云里雾里。

 

 

9、《Visual C++6.0开发指南》

一本关于MFC的工具书,内容很多,每一章节都会讲述MFC类库一个东东并且附带一个简单的小实例,适合用于MFC入门【图书馆有得借】。

 

 

10、《算法导论 2nd》

看这本书的时候,感觉相比起《数据结构》那本书,这本书写得清晰明了得多,伪代码、配图什么的真的是没话说,快排、插排、堆等几个常用算法和数据结构也解释得非常好,推荐看这本书的。另外关于推论证明部分,一开始看得时候觉得很难看明白,后来耐心认真地看下去,发现还是能看懂一部分的。不过,因为本身是个算法渣,后面很多都只是粗略浏览一下,没办法看下去了。

 

 

11、《Effective C++ 3rd》

正如书名所提及到的,这本书的主要内容就是改善程序与设计的55个具体的做法。感觉阅读这本书需要有一定程度C++使用经验,不然就算条款中提到某个需要改善的地方,自己也没发现问题的所在,我看的时候就是这种感觉,所以也没理解多少,看的时候迷迷糊糊的感觉。另外,有些挺有意思的条款,如条款13:以对象管理资源,条款25:考虑写出一个不抛异常的swap函数等,都是挺实用的技巧,而且也是笔试/面试中常见的问题。

 

 

12、《计算机网络 》第5版

学校的教材,介绍网络的基础知识,写得不错,感觉看得很舒服。

 

 

13、《TCP/IP详解  卷1:协议 》

原理性的书籍,主要介绍TCP/IP协议族的各个协议。简单地浏览了一下其中的章节,有点晦涩,不太好懂,看完之后没啥感觉,不过拓展一下知识面也好。

 

 

14、《Windows网络编程》

我看的不是那个外国人写的《Windows网络编程技术》,而是一个叫黄超的人写的,不过两者还真有点关系(─.─|||。这本书主要介绍WinSockAPI的,内容一般般,就是错误奇多,有些章节竟然在两个不同的地方重复出现了,代码和文字有时候也对不上 == 。除此之外,这本书完全就是在抄袭外国人写的那本《Windows网络编程技术》,有些章节竟然一模一样,连错误也是= =。所以如果想学习Windows网络编程的话,直接看《Unix网络编程卷1》或者《Windows网络与通信程序设计》吧,反正接口差不了多少的,加上百度/google和MSDN就差不多了。

 

 

15、《Windows网络与通信程序设计》

这本书介绍的内容感觉挺偏门,偏底层的,我主要挑了WinSock API以及各种服务器模型那部分来看,服务器模型那几个例子的源码,值得一看的,特别是IOCP那个。

 

 

16、《Linux鸟哥的私房菜 3rd》基础学习篇

看了部分,书上主要介绍Linux以及系统管理方面的知识,语言挺幽默风趣的,内容也不难懂,初次接触Linux推荐看这书。

 

 

17、《Unix/Linux编程实践教程》

这本书只看了前面的几章,有意思的是这些章节是通过让读者去实现例如who、cp、ls等命令,来解释*nix的工作原理,让读者理解*nix编程。

 

 

17、《Unix环境高级编程 2nd》

这本书被誉为Unix编程的圣经,有多好就不用说了。我个人的感觉就是和《Windows核心编程 5th》类似的书籍,但是比那本写得较细致,主要内容是介绍Unix文件管理、进程、线程、I/O、网络、进程间通信等,阅读之前最好先了解一下*nix的API。

 

 

18、《Unix网络编程  第1卷:套接口API》

网络编程方面的神书,内容太多,只看了部分socket编程,写得很详细,结合《TCP/IP协议详解:卷一》的相关章节来看,效果更佳。

 

 

19、《Effective STL》

《Effective  C++》作者另外的一本书,内容与《Effective  C++》类似,主要讲述STL的使用技巧,以及应该注意的地方。因为我本身STL用得不多,看的时候有点晕,感觉看这书也是需要一定STL的使用经验,不然提到了问题的所在,自己也没感觉。有一次面试的时候,被问到STL中某个的常用写法,恰好中了其中一条条款,但是硬是没想起来,被虐出翔出来。面试完之后才醒起此前有看过,就是因为本身没什么体会,所以印象不深刻。

 

 

20、《C++ GUI Qt4 编程》

工具书,用作Qt入门,只看了部分。话说,相比起MFC,个人感觉Qt实在好用太多了,而且它那个“消息-槽”的机制也很好理解,程序的框架,执行流程也很清晰,没MFC用起来那么迷惑。不过,就是做出来的东西有点大→_→,还有就是经常有些莫名其妙的错误。

 

 

21、《Python核心编程 2nd》

这本书无论是纸质还是内容感觉都一般般。纸质,很薄,完全看不出有600多页,而且封面不是胶质那种纸。刚买回来的时候,舍友看见那纸质还问我是不是盗版书,(─.─|||。

  感觉这书结构有点混乱,没有把握重点来说,而且不知道为什么老是拿现在的Python和过去的版本作比较,作为一个初学者,感觉这样会让读者感觉到很乱。另外书中有很多地方都只是随便说说,甚至还觉得有些内容连皮毛也没有说到,感觉有些概念的连一个正确的基本定义都没有写出来。而有些地方明明是比较深入的内容,却又不作一点解释,直接拿出来就用,让人看得很不爽。还有,书上有错的地方奇多,入手需谨慎。

 

 

22、《深度探索C++对象模型》

只看了部分章节,觉得内容有点晦涩,难以消化,感觉内容主要是在比较底层的角度来讲述C++的对象模型的实现,想了解C++虚函数以及内存模型的同学可以看看,但是觉得阅读此书需要一定的C++功底。另外,C++虚函数在面试基本上都是必问的内容,所以你懂的。

 

 

23、《COM原理与应用》

只看了第1部分,感觉还好理解,纯粹为了了解COM是啥,COM的思想以及其实现方式。看看《深度探索C++对象模型》第三、第四章,会对理解COM的接口结构有帮助。

 

 

24、《大话设计模式 》

以情景故事的方式来介绍设计模式,语言幽默,通俗易懂,想简单了解一下设计模式的话可以看这个,不过最好先熟悉面向对象的三个基本特征。另外这本书的例子是基于C#的。

 

 

25、《设计模式:可复用面向对象软件的基础》

相对于《大话设计模式》,这本书的语言和板书就比较正式且严谨,因此看上去可能没那么吸引人,但是内容绝对是经典。书中将23种模式分为创建型、结构型、行为型三大类,并且每一个模式都严格遵循某种格式来叙述。这本书的例子是基于C++,好像还有点Smalltalk。

这也是我喜欢的一本书之一,在看的时候,深感“这才是面向对象”,觉得设计模式简直就是一门艺术~

 

 

26、《STL源码剖析》

SGI STL源代码的剖析,解析其内部的机制,主要介绍了STL的六大组件:容器(containers)、算法(algorithms)、迭代器(iterators)、仿函数(functors)、配接器(adapters)、配置器(allocators)。书上有大量的代码和配图辅助理解,如果想了解STL内部的实现,但是又不想亲自翻开那难读的库代码时,强烈推荐此书!

这本也是我喜欢的书之一,在看的时候,各种惊叹,特别是看到二级空间配置器的设计,萃取机制的实现以及dequeue设计与实现等的时候。另外,因为是算法渣,即使配上文字描述和图片自己也理解不了,所以算法那部分我只看了快排,二分等几个常用的算法,其余都跳过,有需要再看。

 

 

27、《高质量程序设计指南---C/C++语言  3rd》

这本书感觉就是C/C++语法书籍的补充与总结,里面很多内容都是C/C++语言中一些比较重要,但是又容易忽略的内容,比较内存管理、函数隐藏/覆盖/重写、指针,补知识漏洞的话,推荐看看。

 

 

28、《深入理解计算机系统 2nd》

这是我最喜欢的一本书,这本书可以看作是操作系统和计算机组成原理知识的结合,主要从实现角度来讲述系统结构方面知识,书中附带很多C以及汇编的描述。内容从最底层的信息的位级表示开始,到程序的机器级表示,然后再到处理器层面等等,最后再到系统上运行的程序以及程序间的通信,来让读者一步步慢慢地去理解整个系统结构,循序渐进。PS:书上的内容是基于Unix系统的,而汇编则是采用AT & T汇编格式,与Intel汇编格式有点不同。

我个人的一个体会就是,如果非科班出身的同学去搞计算机,一个很大的劣势就是知识体系结构不完整,经常学着学着就碰壁,总觉得好像哪里学少了些先修的知识,但是却又不知道从哪补起。看看这本书的话,能够在一定程度上补补缺失的各方面知识(当然没有别人单独一门课学得扎实(┬_┬))。所以如果非科班的同学想去了解一下体系方面结构的知识却又不想单独一个个知识点来补的话,强烈推荐去看这本书,绝对不会令你失望的。另外,去看这本书的话,感觉需要一定的基础和功底,我大二上学期的时候就买了,因为基础不够,看的时候一度觉得十分晦涩,总觉得买错书了,结果硬着头皮看了前两章,卒(─.─|||!后来慢慢地去补了各方面的内容,一直放到大三下学期,才看得下去,真正意识到这是本不可多得的好书!

 

 

29、《Learning  Core  Audio》

主要内容是介绍Mac OS X 和iOS提供应用程序处理音频的一组软件框架 Core Audio,相当于对Apple这部分文档的总结与归纳。我主要看的是CoreAudio在Mas OS  X的部分,内容介绍的比较详细,从比较底层的Audio Unit到上层的Audio Queue和Audio Graph都有介绍,例子、配图什么的也很到位,如果是搞Mac OS X和iSO音频方面的应用,推荐一读。(这是我唯一一本看过的全英书籍→_→,当时看得那个蛋痛啊,又不得不看,不过后来就习惯了,所以说学好英语还是有一定帮助的)

 

 

30、《剑指Offer》

以笔试/面试算法题内容为主的书籍,总共有50题。里面的题目感觉都不错,而且每个题目通常都带有几种解法,让读者从不同的角度来思考,去解题。应聘前推荐拿这本书来练练兵。

 

 

31、《编程之美》

看了部分,与《剑指Offer》类似的书籍,题目难度有分星星等级,但是个人感觉里面的题目难度都要比Offer那本难出不少,而且解题的思路跳跃度有点大,很多时候转不过来,感觉比较适合思维活跃,脑子好使的人阅读。

 

 

32、《程序员的自我修养---链接、装载与库》

现在还在看,看了一半不到,大学期间看的最后一本书。第一次看到这个书名的时候,莫名地想起了周星驰的某部电影→_→。看到书名就应该猜到内容是讲什么的了,主要是从偏底层,偏实现的角度去讲述程序的链接、加载,运行,以及内存与运行时库的一些知识,看得不多,不作太多评价,有兴趣了解这方面的同学可以去看看。

 

 

-------------2014.7.31更新

33、《Game Programming Algorithms and Techniques》
      书中的内容主要是关于游戏编程中用到的一些比较常见的,脱离特定引擎的基础的知识,感觉是一本overview的书籍,写得浅显易懂,非常适合对游戏编程初学者。


   ----------------------------------------我是渣渣的分割线----------------------------------

毕业了,感觉平时都没啥时间和精力去看书了。

 

 



 

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页