正文
即使计算机专业的学生,学习编程也不容易。学校开设了很多理论课程,但学习理论的时候往往感觉比较枯燥,比如二进制、编码、数据结构和算法、设计模式、操作系统中的线程和文件系统知识等。而学习具体编程语言的时候,又侧重学习的是语法和API。学习计算机理论的重要目的是为了更好地编程,但学生却难以在理论和编程之间建立密切的联系。
这样,我的想法基本就确定了,用Java语言写一本帮助理解编程到底是怎么回事的书,尽量用通俗易懂的方式循序渐进地介绍编程中的主要概念、语法和类库,不仅介绍用法和应用,还剖析背后的实现原理,以与基础理论相结合,同时包含一些实用经验和教训,并解释一些更为高层的框架和库的基本原理,以与实践应用相结合,在此过程中,融合编程的一些通用思维逻辑。
我有能力写好吗?我并不是编程大师,但我想,可汗也不是每个领域的大师,但他讲授了很多领域的知识,的确帮助了很多人。过去十几年我一直从事编程方面的工作,也在不断学习和思考,我想,只要用心写,至少会给一些人带来一点帮助吧。
于是,我在2016年3月创建了微信公众号“老马说编程”,开始发布系列文章“计算机程序的思维逻辑”。每一篇文章对我都是一个挑战,每一个知识点我都花大量时间用心思考,反复琢磨,力求表达清晰透彻,做到最好。写作是一个痛苦和快乐交织的过程,最痛苦的就是满脑子都是相关的内容,但就是不知道该怎么表达的时候,而最快乐的就是写完一篇文章的时候。令人欣慰的是,这些文章受到了大量读者的极高评价,他们的溢美之词、自发分享和红包赞赏进一步增强了我写作的信心和动力。到2017年7月底,共写了95篇文章,关于Java编程的基本内容也就写完了。
在写作过程中,很多读者反馈希望文章可以尽快整理成书,以便阅读。2016年9月,机械工业出版社的高婧雅女士联系到了我,商讨出版的可能,在她的鼎力帮助和出版社的大力支持下,就有了大家看到的这本书。
本书特色
本书致力于帮助读者真正理解Java编程。对于每个语言特性和API,不仅介绍其概念和用法,还分析了为什么要有这个概念,实现原理是什么,背后的思维逻辑是什么;对于类库,分析了大量源码,使读者不仅知其然,还知其所以然,以透彻理解相关知识点。
本书虽然是Java语言描述,但以更为通用的编程逻辑为主,融入了很多通用的编程相关知识,如二进制、编码、数据结构和算法、设计模式、操作系统、编程思维等,使读者不仅能够学习Java语言,还可以提升整体的编程和计算机水平。
本书不仅注重实现原理,而且重视实用性。本书介绍了很多实践中常用的技术,包含不少实际开发中积累的经验和教训,使读者可以少走一些弯路。在实际开发中,我们经常使用一些高层的系统程序、框架和库,以提升开发效率,本书也介绍了如何利用基本API开发一些系统程序和框架,比如键值数据库、消息队列、序列化框架、DI(依赖注入)容器、AOP(面向切面编程)框架、热部署、模板引擎等,讲解这些内容的目的不是为了“重新发明轮子”,而是为了帮助读者更好地理解和应用高层的系统程序与框架。