1 why要学习C/C++/object-c?
最近想写点有用的东西,发现自己最拿手的java用起来真是笨手笨脚的。
碰到好多实现起来巨繁琐的问题,比如操作底层库,和OS framework交互,做个用户体验好点的本地图形程序等等,这些都是java的软肋。其实,我一直对底层颇感兴趣,工作中也只能接触一下JVM,但VM毕竟是VM,始终与底层失之交臂。
Linux、Mysql、Memcached、JVM、ACE... ... 很多基础服务都是用C/C++实现的,要像了解他们原理、能看懂代码、可以修改bug、增加新功能模块开发嵌入式、中小型项目C/C++项目,维护C/C++项目... ...
加深对系统底层的理解
2 How学习C/C++?
下文是我整理的一些C++图书列表,按顺序阅读,可涵盖入门到精通。
《The C programming language》必读
《C++ Primer》,号称是一本可以让你从C或JAVA程序员转为一个真正的C++程序员的入门参考书,必读。
《The C++ programming language》,C++之父,人称B教主著作,在看过C++ primer后,应该可以跳章选读。
《Think in c++》,网上说此书的中文版翻译质量奇差,推荐看影印版,选读。
《Effective c++》,类似 Effective java,讲的是最佳实践,程序员必读。
《More effective c++》,上书的补充。
《The C++ standard library》,会写C,不会用标准库怎么行。这就跟java程序员不会用java.util包一样,必读。
《Effective STL》,STL库的最佳实践。Effective C++作者又一力作,必读。
《The annotated STL source》,STL源码分析,这本书应该算是深入/精通类了,选读。
《Generic programming and STL》,号称C++编程里,就是跟模板,泛型打交道,那么精通泛型是势在必行。
《C++ Template》,C++模板编程,代码复用的经验之道,必读。
《Exceptional C++》,跟Effective C++类似,属于最佳实践和难题解析,书中列出了许多应用场景和实例代码供读者揣摩,选读。
《More Exceptional C++》,上书的补充。
《Exceptional C++ Style》,上上书的补充
《Inside The C++ Object Model》,有了上面这些书做铺垫,那么终于可以读此神书了。它会带你游览C++对象模型的底层实现机制。读完此书,任何C++代码看起来如同行云流水,必读。
3 优秀的C/C++开源项目(阅读代码)
OS: Linux kernel LVS
DB: Mysql
Complier: JVM
Framework: OpenSip
Net: ACE(Java Mina、Netty)、
Cache: Memcached、Redis、
Library: STL(java util package)、Boost、Qt(UI)、
部分转载请注明原文链接: