前言

朋友是我们为自己选择的亲人。本书献给我的朋友 Rômulo、Léo、Moto 与 Chris,他们不断敦促我“完成这部该死的作品”。

前言

每个人都应该学习计算机编程,因为它教会你如何思考。

——史蒂夫 • 乔布斯

计算机以前所未有的力量改变了世界,一门新学科随之兴起,这就是计算机科学。它揭示了如何利用计算机解决问题,帮助我们充分发挥计算机的潜能。在这门学科的指引下,我们取得了难以置信的成就。

计算机科学无处不在,但学校传授的仍然是枯燥的理论,不少程序员甚至从未研究过它。然而,计算机科学对于实现高效的程序设计至关重要。我的一些朋友很难聘用到优秀的程序员——计算机虽然功能强大,可以驾驭它的人却不多。

我希望通过这本书推动读者高效地使用计算机。本书将以简明扼要的形式介绍计算机科学的知识,尽量少涉及学术概念。但愿计算机科学能在读者心中扎根,并提高读者编写代码的水平。

图 1 “计算机问题”(取自 https://xkcd.com/

目标读者

对于希望采用高效方法解决问题的读者,本书将是不二之选。编程经验并非必需,如果读者曾经写过代码,也了解 forwhile 这样的基本编程语句,阅读本书将不会遇到任何障碍。不熟悉计算机科学的读者可以通过 Codecademy1 进行学习,其在线课程提供一周的免费试听服务。而对具备计算机科学经验的读者来说,本书能有效地巩固所学知识。

1许多平台都提供不错的在线课程,涵盖 Web 开发、数据处理、人工智能、深度学习等多个领域。lynda.com、Udacity 都是北美较为知名的在线教育平台。——译者注

计算机科学并非只和学者有关

这是一部关于计算思维的作品,适合所有人阅读。读者将学习如何把问题转换为可计算的系统,并在日常生活中应用计算思维:预取和缓存能简化打包过程,而并行有助于提高烹饪速度。另外,读者的代码会变得很棒!

愿原力与你同在。2

2《星球大战》中绝地武士在分别时表示“再见”的祝福语,后引申为现实世界中粉丝之间的祝福语。——译者注

目录