序
经常被问到一个问题:当初你为什么会去学编程?因为我很喜欢玩游戏。每一个喜欢玩游戏的人,都梦想着可以通过修改游戏的程序使游戏中的自己变得非常强大,而这需要学习编程。其实每一个人都曾有过创造游戏的梦想,那我们为什么不把这种梦想变成学习的动力呢?我就是这样踏上编程之路的。
牛人肯· 汤普逊(Kenneth Lane Thompson)自己编写了一个叫作“星际旅行(Star Travel)”的游戏。而汤普逊为了能更顺畅地玩这个游戏,竟然自己动手用汇编写了UNIX操作系统。后来他觉得用汇编写UNIX操作系统非常麻烦、非常辛苦,于是和另一个牛人丹尼斯·里奇一起创造了C语言。没想到吧,C语言竟然是一个牛人为玩自己写的游戏而创造的。其实这在计算机界很正常,程序员们往往就是因为某个游戏或者软件的现有功能不能满足自己的需求,才开发出了更加优秀的游戏和软件。本书中超萌、超简洁的“啊哈C”编程软件也是这样来的。
经常被问到第二个问题:为什么普通人需要关心编程呢?因为当下程序员几乎主宰了整个世界,控制着你我生活的方方面面。我们住的房子、穿的衣服、吃的东西、用的各种电子产品,以及我们去ATM取钱、坐电梯、开汽车、坐飞机、坐火车……你坐火车时有没有想过,一条铁轨上同时运行的那么多列火车是如何调度的才没有导致它们相撞呢。这个时代很难想象还有什么不是通过计算机程序控制的。如果想理解这个时代,就必须得理解计算机编程,编程会让我们以一种全新的方式来看世界。当然,在学习编程的过程中还可以提高我们的逻辑推理能力、批判性思维和动手解决问题的能力。与计算机展开的逻辑较量一定会让你觉得很有意思。
还经常被问到第三个问题:什么样的人可以自学编程,学习编程需要什么基础?答案是你只需小学四年级以上,并且可以熟练运用鼠标和键盘就可以。你若不信,那就从这本书开始吧。
编程很容易让我们实现梦想。如果我们觉得某个游戏玩得不爽,或者某个软件不够好用,想自己做一个。没问题,现在就可以!而唯一的投入就是一台计算机。实现梦想从未变得如此简单过。编程世界里每天都上演着传奇,一大批热爱编程并且满怀梦想的人正在充满激情地奋斗着。
编程将会改变我们的思维,教给我们如何思考,会编程的人总想改变点什么。正如乔布斯所说“I think everybody in this country should learn how to program a computer, should learn a computer language, because it teaches you how to think.”