如果要开一份跨平台开发的读书清单:
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***>>序列
其实,写了那么多,只是勉为推荐。真正实施起来未必是那么回事。开发如绣花,必须得动手。光看不练,是不会有什么效果的。
分享到:
相关推荐
总的来说,"C/C++与Java互通AES加密解密"是一个挑战性的任务,需要对加密算法、数据类型转换、内存管理以及跨平台通信有深入的理解。通过这个实践,开发者可以提升自己的编程技巧,并对数据安全有更深刻的认识。
JNI开发Java和C/C++互相传递List集合, 可以参考: Java从C/C++获取List集合对象:https://blog.csdn.net/niuba123456/article/details/80994166 Java传递List集合对象到C/C++ ...
最近需要和银行pos做数据通讯,银行端算法为java实现的 AES/ECB/PKCS5PADDING我也改不了, c/c++这边实现ECB算法本来就少,PKCS5PADDING的更是没有,索性自己动手。工作原因c和java都得熟悉,因此把java端和c/c++...
该项目为基于C/C++/Java跨平台的Android蓝牙媒体服务器设计源码,共计83个文件,涵盖25个C文件、24个头文件、14个Java源文件、9个XML布局文件、2个PNG资源文件、1个Git忽略文件、1个项目配置文件、1个音频文件以及1...
本书《C/C++编写跨平台程序:实践篇》主要面向已经具备一定C/C++基础的读者群体,旨在教授如何使用C/C++这一强大的编程语言来编写可以在多个操作系统上运行的跨平台程序。跨平台编程不仅需要对语言有深入理解,还要...
《C/C++程序员Java编程》是一本专门为已经熟悉C或C++语言的程序员...通过阅读《C/C++程序员Java编程》,程序员不仅能掌握Java语言的基本知识,还能了解到Java平台的优势和开发流程,从而顺利完成从C/C++到Java的过渡。
在Android开发中,NDK(Native Development Kit)是一个重要的工具集,它允许开发者使用C/C++语言编写高性能、低级别的代码。本教程将基于Eclipse IDE来探讨如何进行NDK开发,包括Java与C/C++之间的互调用。 首先,...
**JNI(Java Native Interface)** 是Java平台的一部分,它允许Java代码与其他语言写的代码进行交互,尤其是C和C++。JNI是Java与本地代码之间沟通的桥梁,使得Java应用程序能够调用本地库中的方法,同时也支持从本地...
最近需要和银行pos做数据通讯,银行端算法为java实现的 AES/ECB/PKCS5PADDING我也改不了, c/c++这边实现ECB算法本来就少,PKCS5PADDING的更是没有,索性自己动手。工作原因c和java都得熟悉,因此把java端和c/c++...
我在网上找了很多的平台,也找了好多...里面有:海底世界,黄金矿工,拼图游戏,桌球,迷你高尔夫,弹弹堂,拍飞虫,打飞碟,坦克大战,太空战机,这里有最全的文档信息,c/c++/java,教程,以及案例和综合实训等内容。
7. **跨平台**:虽然Dev-C++最初是为Windows操作系统设计的,但通过使用MinGW(Minimalist GNU for Windows)或者Mingw-w64,它也可以在其他平台上运行,实现一定程度的跨平台开发。 8. **开源与社区支持**:由于...
在Android开发中,JNI(Java Native Interface)是一个关键的技术,它允许Java代码和其他语言(如C/C++)的代码进行交互。本项目演示了如何在Android应用中使用JNI,实现C/C++与Java的双向调用。以下是关于这个主题...
C/C++是两种广泛使用的编程语言,特别是在系统级编程、游戏开发和高性能计算等领域。C++是C语言的扩展,引入了面向对象编程的概念。在编程过程中,理解并有效地使用库函数是至关重要的,因为它们提供了标准功能,...
Code::Blocks 是一个开放源码的全功能的跨平台 C/C++ 集成开发环境,支持 Windows、GNU/Linux、Mac OS X 以及其他类 UNIX 平台。它具有灵活而强大的配置功能,支持多种语言和文件类型,包括 C/C++、AngelScript、...
### 编程及C/C++初学者 FAQ #### 一、引言 本文档旨在帮助初学者快速上手C/C++编程语言,并解答在学习过程中可能遇到的各种常见问题。通过集中整理与解答这些问题,帮助读者更好地理解编程的基本概念,顺利运行...
"蓝桥杯历年C/C++/JAVA真题"是一份集合了历年来蓝桥杯大赛中C、C++和Java编程语言竞赛试题的资源。蓝桥杯大赛是中国颇具影响力的计算机编程竞赛之一,旨在促进大学生的创新能力和工程实践能力,尤其在软件和信息技术...
“C++笔试题”共计31套,“面试必备”(面试常见问题的应对、面试技巧等),“面试题汇总”(C++笔试题、Java笔试题、高质量C++C编程指南、软件测试),“c++面试宝典”,“面试题”共计10套。非常全,非常好的面试...
Eclipse 是一个开源的、跨平台的集成开发环境(IDE),最初主要被设计用于Java语言开发,但后来通过插件扩展,支持了包括C/C++在内的多种编程语言。本压缩包提供的是“最新版的 Eclipse for C/C++”,这意味着它专为...