c++ Linux windows学习路线

以下推荐的书籍大多有电子版。对于技术类书籍,电子版并不会带来一个好的阅读体验。如果喜欢,最好找纸版(图书馆是个好去处),电子版更适合作为一个参考书籍常备电脑。

C++入门

《C++ Primer》

我的C++入门读物是《C++大学教程》,这本书800多页,由于学习时间长,一个学期学这么一本书,时间上的富裕,让我有充分的时间来吸收。书中80%的代码我都敲到PC上运行过;后来再看《C++primer》的时候,也就一个星期的功夫翻完了。都是入门读物,介绍的也都全面。刚接触C++的朋友,至少应该将这方面的书好好过一遍。

语言技巧,性能优化

《 Effective C++》
《 C++必知必会》
《 More Effective C++》
有了语言基础之后,接着就是细节上的深入,进一步领会C++的精髓。《 Effective C++》可以看作是一本C++ 疑难解惑手册;对于C++语言层次深入一点的东西,容易出错的知识点,在这边书上可找到满意解答;适合多次品味。
《 C++必知必会》《 More Effective C++》则作为对Effective C++没有讲完的补充,可看作前者看完后意犹未尽时使用;顺便说下,这三本书都不厚,小册子,每本也就几天的功夫就可以搞定;

底层硬货

《 C专家编程》
《 C和指针》
C++源于C,对于指针、对于各种地址的偏移计算,对于大端小端的深刻剖析,还得靠一些硬通货来解析;这两本书虽说不厚,但读起来确实费劲,信息量很足,很多都是在平时C++使用中没有意识到的知识点,却又都是重要的点。让人有知其所以然的快感;
涉及到底层的东西,都是用来验证编程功底是否扎实。要想彻底掌握C++底层的东西,还是得看看专家编程,很好的两本书,指针等讲的很透彻。

STL

《 C++标准程序库》
《 泛型编程与STL》
《 STL源码剖析》
《 C++标准程序库》是属于百科全书类型,讲解基础,但语言平淡(是以参考手册的角度来写的),没有勇气将其全部翻完,捡感兴趣的和自己很缺乏的部分看了看(里面关于智能指针方面的论述,还不错);
《 泛型编程与STL》里面对萃取机制及各泛型的概念论述非常透彻,前6章为主要篇章,不可跳过。后面的可在实践中编码练习或查找。
后面章节可在看完之后做为手册使用,对STL中的常用算法和容器进行了归类讲解,并给出了相当数量的示例。
《 STL源码剖析》每一个推荐深入STL的文章应该都少不了这本书。下面几个问题可以考查一下是否需要看看:
1.STL中DQueue的实现机制(数据结构式如何组织的,其迭代器的插入和删除过程中的实现) 2.是否熟悉红黑树,能否叙述其插入和删除过程,如何调整。
3.萃取器的几种实现

Boost

《 超越c标准库——boost程序库导论》
当标准库无法再满足你的时候,就轮到Boost出场了。编程,讲究两个效率,一是开发效率,二是运行效率。与其它编译型语言相比(java、C#等),C++属于后者,运行效率不错,但开发效率着实低。除了C++更底层的原因外,另一方面的原因就是标准库提供的功能不足。没有太多的工具,想实现什么都得自己来一遍,重复的造轮子的工作在程序员中不断上演;
Boost库是对C++标准库的扩展,让我们在开发的过程中有更多的工具可以选择。正则表达式、智能指针等工具都是非常有用的工具,而函数对象,Lambda则让我们在编写C++的代码中更为优雅;
这里提供的一本书是Boost的入门经典。它的目的就是让你对boost产生兴趣。等有了兴趣之后,就直接上boost的官网吧,需要什么尽管拿。

设计模式

《 设计模式》
《 设计模式精解》
《 道法自然》
《 设计模式》是该领域的圣经,未全看完。虽说经典,但一页一页的翻完,还真要点耐性。不像老外写书的风格,这本书看的很累(这也是一本参考手册)。我认为在对大部分模式都有一定的了解后再来看这本书,会找到很多兴趣点。
《 设计模式精解》我的设计模式之路是从这本书入门的,通过几个实例来解释模式的用法,以及为什么要用模式(这个可能更重要),不过全书也就讲了10来个模式,意犹未尽。对设计模式感兴趣、初学者推荐;
《 道法自然》是国人写的很不错的一本书,用他们自己写的一个框架系统作为实例,贯穿全文,讲解各种模式的用法。看过后,体会到模式在大项目,特别是这种框架系统中的应用真是太到位了。同时,熟悉MFC的朋友会在本书中收获更多的东西,MFC也是一个框架系统,通过本书的讲解,可以体会到MFC的内部设计以及为何如此设计(书中就专门讲到MFC中的设计思想),同时,在讲单件模式的时候,还带出了MFC中theApp的作用(为什么要在MFC中安排一个theApp全局变量?这是我看到的唯一一本书解释了这个问题的);

算法篇

《 编程珠玑》
讲解数据结构和算法技巧的压轴好书。

Windows

在Windows平台下主要说的是VC编程(使用MFC),以下将对VC开发的相关图书介绍;对于ATL等,涉及不多,不做评论;

 

《Windows程序设计》

这是一本绝版的图书,算是Windows平台下编程指南图书的鼻祖。网络传言甚好,由于年代久远,一般不好下载了,在这里给出下载地址。方便朋友;

本书每章的例子都是使用的Windows下的原始API开发的,一个基本窗口的显示也需要自己动手编写接受消息的循环以及消息翻译的逻辑;即使是使用MFC开发的朋友,这本书的作用也很明显,它能让你自行解剖MFC框架程序,明明白白的看透MFC是如何为我们做底层封装,如何实现消息链传递(结合《深入浅出MFC》,整个流程就相当透彻了);

 

《Visual C++技术内幕》

本书名称上看似高深,但并不非内幕系图书;可以做为项目开发的一本工具书,实践应用。全但不深,是VC方面的基础书籍;内容中对于VS操作的插图讲解很多,浅显易懂;


《深入浅出 MFC 第二版》

本书是MFC的经典读本,相信搞VC开发的很多人都看过,接着又忘了。是否该再来一遍,自测一下: 1.MFC中的生死循环(就是整个从程序开始运行到结束,主要经过的函数流程) 2.MFC中使用消息映射机制来分发消息,考虑与使用虚函数相比 有何优缺点? 3.MFC中用到的模式有哪些?

虽然微软的VC.net已经推出有好些年了,但纯VC的开发程序仍然在国内流行。比如建筑、工程测量方面的软件大部分还是VC开发(工具甚至还有VC6.0)。这本书是97年出版的,直到今天,对于需要掌握MFC的朋友来说,它仍然是不二之选;


《Windows核心编程(第5版)》

对于一般GUI程序的开发,看看VC技术内幕就可以动手;但涉及到进程间通信,涉及到多线程、互斥、信号量,不看这本书,就太可惜了。讲解全面而深入,Windows系统的各种核心对象都涉及到了。强烈推荐;

两句话:

Windows平台下的经典;

Windows开发必备;


VC知识库:

这是我不得不提的一个网站。VC知识库制作了一个源代码ISO光盘和在线杂志(提供chm包离线下载),分门别类的将各种程序、各种技术文章分类,制作到一个chm文件中,对VC的朋友来说,有很大的参考价值。在我开发Windows程序的几年中,我会经常查阅VC知识库的代码仓库和在线杂志(有源码);

比如,对于数据库访问,如果之前从来都没做过,都想有几篇手把手的文章,要是能再来个实例,那就最好。类似这样的需求,vc知识库的在线杂志可以完美满足;


Linux/Unix篇

Linux服务器端的魅力对于同时把玩过Windows和linux服务器的人来说,体会会非常深刻;相比与Windows,其管理操作方便很多,也强大很多。Windows平台下,DOS、批处理,功能还很弱,多数时刻还是得通过远程桌面来管理各种程序;

Linux则不一样,所有的程序都是在黑屏下,操作顺滑流畅,散发五指快弹魅力;


《鸟哥的Linux私房菜 基础学习篇(第二版)》

对于从未接触过Linux提供的同学来说,本书算是一个福音,以轻松诙谐的语言说清了常用的系统命令用法及语境; 对Linux零基础的同学,推荐阅读;

我看过的比较全面的讲解Linux基础的书是《LPI LINUX认证权威指南》,写的比较硬,但知识点扎实,作为需要全面梳理一遍linux基础知识的同学,还是可以好好看看,当然了,比较枯燥,如果不是有考试的动力,一般也看不动。


《Linux程序设计》

写的中规中矩,linux下编程入门指导书,讲解全面,但不深入;

这本书能告诉你在linux上如何编译一个程序,如何使用gdb,但是,它不会告诉你信号量如何使用;

看完必然不解渴,当然得来一剂《unix环境高级编程》。


《UNIX编程艺术》

个人认为最精彩的是前3章,将Unix的历史和渊源完美展现在读者眼前; 本书从头到尾就是在宣传Unix的文化,阐明了我们常用工具的历史及设计思想; 当你在vi和emacs的选择上有困惑时,在python和perl间的选择困惑时,可以参考本书,你会得到一个中肯的建议。


《unix环境高级编程》

对于巨著,我一向神往,国外的作者一般都能把理论和概念讲得透彻而生动; 对于本书,我的观点是:想说爱你不容易;确为经典好书,但那密密麻麻的排版格式,那一行行艰深的文字,让我一次次裹足不前。 每当有技术难点,都能在Stevens系列中找到答案。是该静下心来,好好读完它,然后常驻案边;


《UNIX网络编程 卷2》

该书的另一名称:Unix系统IPC编程圣经 在工作中,需要用到进程间通信,以及想掌握IPC知识的,本书不可或缺;对于共享内存的讲解方面,也非常透彻;

你可能感兴趣的:(C/C++)