列一份跨平台开发的读书清单[C/C++ (or Java?)]

如果要开一份跨平台开发的读书清单:

0. 深入理解计算机系统

将它列为0,实在是因为它是一本从程序员的角度去解释一个计算机系统。它解释了一些最基本的东西。

1. Unix环境高级编程

如果觉得有些深,可找本简单的<<GNU/Linux编程指南>>垫垫底

2. Windows核心编程

这本书内容太厚实了,3比它简单明了些

3. Win32多线程程序设计

4. Unix网络编程 (Richard那几卷)

这个不说了。

5. C++程序设计语言(or C++ Primer)

这个是用C++的参考用书, C语言的参考书太多了,有个<<C专家编程>>似乎不错,应该适合于有经验的人去看。

6. 深入Java虚拟机

java表面上光鲜,内部的虚拟机,了解得越多,对多平台下开发,可能犯的错误会越少。尤其是不同厂商的jvm。也许你的应用在Sun jvm下跑得好好的,然后移到IBM的AIX下,莫名其妙的问题出来了。然后那个挠头啊。

7. 数据库系统全书

这是stanford大学的两本教材的合集(一本是数据库系统基础,另一本是数据库系统实现),这是目前我看到的介绍数据库系统理论与系统实现的最好书集,看了它,会知道一个DBMS要做起来,会涉及到那么多核心的算法和外部数据结构。了解之后,再做各商业数据库底层开发,畏惧感会少很多。你甚至可以带着疑惑和好奇,翻翻sqlite和postgresql的源码,看看一个小型DBMS和一个大型DBMS的实现究竟是怎样的

8 ~ 10

不好推荐了,根据你的职业路线,如果是走Java,那么可能需要看大量的开源框架方面的资料或图书(J2EE, Spring, Hibernate, Struts)和一些必备XML处理方面的知识积累(SAX, DOM, XSLT, ...)

如果是继续走C/C++开发企业级应用,也许你应该仔细看看一种大型DBMS的底层API的详细用法(越细致越好,越少犯错), Oracle的OCI(我还是不推荐OCCI了,对于职业技能不会有什么提高), DB2的CLI,Sybase ASE的OpenClient, MySQL的C-API。它们都是可以做到跨平台开发的。

如果是想做DBA,那么好多书可能用不着了,直接奔厂商的原版文档和在线论坛而去,可能越深入做下去,越会牵扯到各种操作系统和存储设备以及复杂网络系统的技能。但是我相信,一个优秀的跨平台程序员,只要他 (她)有兴趣,并且愿意事事亲为,是能成为一名成功的DBA的。

至于为什么前边推荐看一些操作系统下边进程、线程、网络通信方面的基础编程用书,是因为企业级或者大型互联网应用,往往是多线程或多进程,并涉及到网络通信,同时数据库又不可或缺。

上述清单,还只是纯粹涉及到编程开发,如果牵扯到设计方法和软件工程,那清单就长了。

<<代码大全>>, <<敏捷软件开发>>, <<设计模式>>, <<UML***>>序列

其实,写了那么多,只是勉为推荐。真正实施起来未必是那么回事。开发如绣花,必须得动手。光看不练,是不会有什么效果的。

你可能感兴趣的:(java,C++,c,C#,读书)