【那些年,小弟我们一起读过的书】-学院派码农-经验分享(小弟我们学校一不错的童鞋的经验分享-求版主置顶)

【那些年,我们一起读过的书】--学院派码农--经验分享(我们学校一不错的童鞋的经验分享-求版主置顶)
本期导读:你是否还在为如何学习编程语言痛苦不堪?你是否还在为看哪本编程的书纠结不已?你是否还没有找到合适的学习网站?本期我们特意邀请了黄超学长给我们推荐了一些平台和开发方面的书目,另外还推荐了一些你所不知的资讯网站,千万不要错过!!!

 

 

 

  漫漫邮子路“邮子书荐”(一)

 

 

 

学院派码农

 

   

﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋

 

引言

 

  很害怕说的不好,写的不对,误人子弟,那就罪过了。由于平时主要是用C/C++做一些图像和视频方面的处理,所以下面列的也主要是C/C++方面的内容。

 

  我们这个行业虽然技术更新非常快,但是普遍认为基本功才是最重要的。CPU体系结构、汇编、C/C++、操作系统、数据结构和算法、计算机网络,永远都是程序员的护生法宝,就如同少林寺的《易筋经》;学会了《易筋经》,几乎可以无所不能,任你创造武功。我们想想操作系统、编译器、虚拟机都是怎么开发的就知道这些知识的重要性了。先推荐一本书《深入理解计算机系统》,这本书是需要不断研究的一本经典,每次看都会有新的收获。这本书对计算机软硬件体系结构进行了深入浅出的介绍,涵盖的内容较多,值得反复研究。

 

  对于编码、程序最好还是深挖,更多的要去了解底层、了解程序背后的东西。要了解编译器在背后为我们做了什么,链接器又做了什么,程序在加载的时候是怎么一个过程,程序在执行的时候CPU、高速缓存、内存、操作系统是怎么样协作工作让程序顺畅的跑起来的。下面列出一些主题和书目,都是个人的一些想法和偏好,看完这些收获确实很大,但是其中还有很多不理解的,可能还有理解不正确的,还需要再钻研,也许需要在项目中或者到工作中才会有更深刻的体会和认知。下面我会就C语言、C++、Linux、Windows、数据结构、算法方面推荐一些我认为值得看得书,并分享一下自己在编程时的一些感受,希望能对家有所帮助。

 

  书目推荐篇

 

 C语言
 

  相信C语言都是学过的,基本的概念语法什么的应该都是懂的,这里就直接推荐书了。

 

《C程序设计语言(第2版新版)》:这本应该时刻放在手边,经常翻,超级大师的作品,字字珠玑,深刻透彻。这本书可以作为了解C语言思想的书籍,看过之后会对C有很大的了解。写的很精练,但是内容涵盖又非常的广,感觉是多一页不多,少一页不少的那种。由于是C语言设计者写的,所以里面会提到函数的设计思路。

 

《C和指针》、《C陷阱与缺陷》、《C专家编程》:三本一起来,暂且称其为C语言(进阶书)三杰。如果你想成为一个严肃的程序员,这三本必须读。起点有点高,但看某些内容时颇有顿悟之感。C语言的精髓是指针,而这三本书对指针和数组,还有函数这些问题分析的相当透彻。C语言之所以强大,以及其自由性,很大部分体现在其灵活的指针运用上。因此,说指针是C语言的灵魂,一点都不为过。要想学好C语言,那么指针是必须熟练掌握的。

 

《C语言深度解剖》:这个是已出版的书,作者之前在网上放了电子版的,叫《C语言深度剖析》,比较深入的研究了C语言。 其实这本书中,很多都是《C专家编程》、《C和指针》、《C陷阱与缺陷》中的内容,作者用自己的理解写出来,让人更容易理解和接受,而且对于知识点的讲解都配有相关例子。但是书中有一些错误需要自己辨别。而且所有的分析都基于VC6.0,太依赖特定的编译器了,所以里面说到的结论对不对还需要我们自己深思。总的来说还是一本值得看的书。

 

《高级质量程序设计指南》:林锐的书,顺便也可以了解一下林锐是何许人也。其实这本书讲C++的东西更多一点,比较强调编程规范、编程习惯等方面的问题。提的东西比较广、很重要,可惜讲的不太深,看完这本书以后建议找更多的读物来深入理解。据说有些公司的面试笔试题就选上面的,所以找工作的看看会很有帮助的。

 

C++
 

  如果没有学过C++,那么先找本傻瓜一点的教材翻起来,《C++Primer》。

 

《C++Primer》:一本久负盛名的C++经典教程,这本书几乎包含了有关C++的所有基础知识,包括一些基础的语法,常见的错误解析和最为基础的编程案例以及一些在C++中很经典的实例,这些知识能够使初学者很容易地掌握有关的知识,以最快的速度进入C++学习的“门槛”。但是内容相当多,要全部消化不容易,可以作为工具书放在手头翻。

 

  另外,如果大家想对C++有更深入的了解的话,建议大家看看下面几本书。

 

《Effective C++》、《More Effective C++》:对C++中各类知识点的总结,主要都是实际编程中的一些经验。

 

《C++对象模型》:第一代C++编译器开发主管所写,看这本书,他为你讲述了编译器在处理各种语法时在“后台”所做的事。对C++有较深入了解的同学会在读后有恍然大悟之感,侯捷翻译,质量还是不错的。但内容较深,涉及到标准和编译器的东西比较多,很多东西标准没有明确定义,留给厂商一些自由发挥的空间,对于这些我们不能想当然,要自己去辨别哪些是和编译器相关的。作者所使用的编译器较老,现代编译器是不是还是这样实现,需要自己上机练习,结合汇编代码看。

 

《C++反汇编与逆向分析技术揭秘》:这个对程序调试还是很有帮助的。

 

Linux

 

  至于Linux,由于在现在的学习中用的比较少,了解的也不是很深,就推荐几本网络上公认的好书吧。

 

《鸟哥的Linux私房菜》:相信这个应该是最好的教材了吧,作者完全顾及了初学者的感受,它懂得从哪里讲,以及如何讲才能让所有人都看得懂。从硬件讲起,为安装做铺垫,然后讲到文件的操作,编排得非常有序,内容也非常全了。

 

  另外大家可以看一下《Unix环境高级编程》、《Unix网络编程卷一、卷二》。要是有兴趣还可以研究研究Linux内核,对于理解操作系统,C/C++的学习会有很大的帮助。

 

Windows
 

《Windows核心编程》:原书名为Programming Applications for Microsoft Windows,但是这个Windows核心编程貌似是夸大了一点啊。这不是一本Windows编程的入门读物,而是进阶读物。没有它,你也可以写出各种Windows程序。但是有了它,你的视野一下子就打开了。可以认为是操作系统的延伸,从OS理论到OS实现。由于WINDOWS代码是不可见的,而这本书已经尽最大努力让你在API层上窥探一些系统底层的一些知识。对于Windows平台下的开发,这个最好认真研读。

 

《Windows程序设计(上下册)》:也是经典,当然不一定要所有内容都搞透,用的时候翻就行了。

 

  不过Windows下写程序最好的东西应该还是MSDN,电脑上装个安装版的,不懂的时候就到里面搜,肯定能找到你要的东西,同时还能练英文。

 

数据结构、算法
 

《算法导论》:这个要啃下来不容易,数学的东西比较多;

 

《数据结构与算法分析:C++描述》

 

《编程之美:微软技术面试心得》