C++基础
C语言中文网
《C++ PAORGRAMMING LANGUAGE》
《C++ primer》讲述标准C++语法
《数据结构》
《EFFECT C++》《MORE EFFECT C++》
《Inside the C++ Object Model》。看完这个妈妈再也不担心面试官问我多态虚函数什么的啦。
《高质量C/C++编程》内存与指针关系
《More Effective C++》《STL源码剖析》《C++标准库》《C++程序设计语言》买了,翻过一些,没有时间细看。
界面编程
如果走微软路线,那你下来学MFC好了,如果要走开源路线, 那开源跨平台的界面库多得是。通用的并且简单的就是 wxWidget 了, 官方网站为 www.wxwidgets.org/ 。你下载后看具体的例子, 把里面的例子程序敲到你的 visual studio 里面, 去调试, 看运行的结果, 你也可以试着去修改例子, 添加按钮,响应按钮事件等。走到这一步, 恭喜你,可以照葫芦画瓢的搞个小应用程序了, 还带界面。
《Windows程序设计》
孙鑫《VC++深入详解》
侯捷《深入浅出MFC》
《VC++技术内幕第四版》不是第五版,也不是第六版,介绍VC++和MFC类库。
可以做简单的东西。
高级
《现代操作系统》。Modern Operating System。重点关注进程和线程、死锁等概念。《程序员的自我修养——链接、装载与库》。见过一个本科学弟看完这本书后在自己简历中写精通语言底层的链接、装载等,窃以为还没到那个地步。
《深入理解计算机系统》。CSAPP。中文书名很奇怪。
《鸟哥的Linux私房菜》。至少知道如何装linux,如何打开shell写个echo hello world。
《Unix环境高级编程》。APUE。看完MOS后看看,要实际敲代码。
《Linux命令行与shell脚本编程大全》。用了脚本语言你才能知道妈蛋C/C++真是烦。
《Win32多线程编程》
《windows核心编程第五版》 /《深入理解linux内核》
COM编程、并行程序设计、ATL等
库的使用
C++标准库仅仅提供了一些很基本的功能,所以我们经常会引入一些第三方库。最著名的恐怕就是被称为准标准库的boost库,它提供了我们编程中用到的各方面的技术,文本处理、算法、网络、多线程、图像处理等等,几乎无所不包。其它也有一些专著于某一方面的库,比如ACE是网络通信方面的,TinyXML是解析xml的,OGRE是图形渲染方面的。
网络编程
从《UNIX网络编程》这本书入手吧,这本书可以教会你网络套接字的底层原理,把上面的例子好好学习,自己动手写一个回应服务器。写一个服务器端,在写一个客户端。服务器端请务必学会select这个简单的多路复用模型,这样你才能慢慢的深入里面poll,epoll,IOCP之类的模型。
设计模式
深入研究apache源代码修炼
年对一个C/C++程序来说是一个从量变到质变的过程.开源的代码就是你像高手学习的最佳途径,开源代码是高手留下的练功秘诀, 你看了后你会突然感觉茅塞顿开, 感觉自己的水平差人家太远了。我为何要推荐apache的源码呢?
apache的源码是高手中的高手写的,执行效率和程序架构堪称一绝。里面的很多思想是所有程序都通用的,搞懂了, 很多模块你也可以直接拿来使用。apache对内存池的使用, 对线程池的使用, 对模块结构的封装,非常具有实际意义。要是你能把apache的源码吃个透彻,每一个细节都搞明白了为何人家要这么实现,我可以给你说,“恭喜你 , 你离传说中的高手已经不远了。”
仔细看看STL源码,Boost源码, 你就知道泛型编程有多么的博大精深了。修炼C++, 可以从用C++封装的MFC, wxWidget入手, 看高手如何通过C++语言, 封装这样庞大的UI库,里面应用了很多的C++机制, 最典型的就是多态机制, 还有很多的设计模式应用可以研究。
其他
《黑客与画家》。当散文随笔看。
《Unix编程艺术》。在不同阶段看有不同感悟。
《代码大全》。翻翻看,学生阶段不看完全可以,不过有助于提高逼格。期待在工作后有更多感悟。
《浪潮之巅》、《数学之美》。当小说看,开阔视野。
《人月神话》。10个女人花1个月的时间是不可能生出一个孩子滴。