一个深圳同事问我学面向对象设计,需要看什么书好。当时给了他一些建议,他感觉还是不满意,我就应承他写一篇blog,
说说这个问题。
其实我的C++和Java也学得不好,写程序常常需要看帮助,结构化设计和面向对象设计,也理解不深刻。不过在公司混,技术并不是唯一的东西,你可以发现一些人技术平平,但混得有滋有味,这里面“混”的精髓我就不必说了。
言归正传,我学习一门技术一般分两个阶段:
一是入门阶段。随便买本国内某某教授亲自写的,出版社很垃圾的破书看看,比如《精通VC++6.0》、《21天学会MFC》,这些书很容易看懂,让你来个“Hello
world!", 高兴一把。
二是慢慢深入阶段。这时候最好买国外技术发源地那些大牛自己写的书,或者和大牛是同事或邻居的牛人写的书,由国内比较好的专业翻译人员翻译,当然你看英文快过中文,直接看英文版不错。要注意就是这些书不是你第一次看就能全部看懂的,可能需要几遍,或者一年之后等你经验和知识达到那个程度了,才能领悟书中的知识点。
下面列出我看过,还没有弄丢,放到我书架上的书吧。
《C语言程序设计》:谭浩强,大学教科书
《C程序设计语言》:经典K&C
《程序设计实践》:K&R,经典的C方面编程实践
《编程珠玑》:至今没看完,没看懂。如果你看完看懂,做完做对习题了,去微软等大公司不是难事。
《C语言大全》:C编程的好字典。
《深入浅出MFC》:VC++方面的经典啊,当年就靠它和MSDN混饭吃。
《C++大学教程》:入门书籍中也算好的了。
《C++程序设计语言》:C++之父Bjarne Stoustrup,
搞C++的不看也得买回来充充门面,我认真看过3篇。
《C++ Primer》(3rd):Stanley B.Lippman,
第3版经典啊,第4版看了就气不顺。
《深度探索C++对象模型》:Stanley B.Lippman,
毕竟是搞C++编译器的大牛啊。
《Effective C++》和《More Effective
C++》:不看你怎么敢说会写C++程序哦。
《C++高效编程:内存与性能优化》:
《大规模C++程序设计》:
《C++并行与分布式编程》:
《C++网络编程》(上下):
《Unix环境高级编程》:Ricard
Stevens,UNIX编程的圣经啊
《TCP/IP详解》(共三本):Ricard Stevens,UNIX编程的圣经啊
《Unix网络编程》(上下):Ricard Stevens,UNIX编程的圣经啊
《Unix编程艺术》:象我一样曾经从VC++转到UNIX平台的,要洗脑啊。
《设计模式》:GoF ,不必介绍了。
《程序员修炼之道》:
《代码大全》(2):现在我嫌他太罗唆,拿来教育小弟还是不错的。
《Java编程思想》:Java入门经典。
《Java与模式》:经典。
《重构》:Martin
Flower
《深入Java虚拟机》:
《Spring in Action》:
《Webwork in Action》:
-------JAVA方面我一般是学习和使用Apache, Resin, webwork,
hibernate, spring, jboss,公司都是用开源的东西,这些书看得多。
<<敏捷软件开发》
《C#高级编程》:当JAVA一样学,反正语法差不多。
--------NotNET看得少,曾经一个小项目用到。
还有数据结构、操作系统、汇编和编译原理、数据库、JAVA、C#、UML等方面的书,看过的应该有三四十本吧,有些已经送人了,根本记不得了,其中有很多好书,就不一一罗列了。