第2节 本书是讲什么的,写给谁看的
在写本书之前,我反复问了自己几个问题:这本书是讲什么的?这本书是写给谁看的?这本书和一般的编程入门书有什么区别?为什么要写这本书?选用哪一门编程语言入门呢?
第一个问题:这本书是讲什么的?
这是一本编程入门书。但是本书的重点并不是编程入门,而是向你展示逻辑思维和编程思维的魅力,让你像程序员一样思考。
第二个问题:这本书是写给谁看的?
编程类图书给大众的印象一直是枯燥并且难懂的。究竟什么样的人才能学习编程呢?大学生?高中生?初中生?……不会连小学生都可以吧?!没错,只要有小学四年级的水平,我想你一定可以学习编程,并且轻松读懂本书的全部内容。
如果你的情况恰好符合以下一点或几点,那么本书正是为你所写的。
(1)如果你想自己制作好玩的游戏,而不是沉迷于别人的游戏中。
(2)如果你曾对数学感兴趣,我想你一定会喜欢这本书。其实学习编程并不需要精通数学,本书不会出现很复杂的数学公式。即使数学不太好,甚至很糟糕,也完全可以阅读。
(3)如果你对逻辑感兴趣,你一定更会喜欢这本书。与计算机展开的逻辑较量一定会让你觉得非常有意思。因为计算机有时会显得不那么听话,你让它向东可它却偏偏向西,这时候就一定是你编写的程序出现了逻辑问题。而将你的思维清晰有条理地变成计算机程序,就如同一场你与计算机之间的逻辑对决。学习计算机编程能够很好地锻炼你的逻辑思维能力。
(4)如果你从小喜欢拆装玩具、改装小电器或是喜欢变废为宝,我想计算机编程会给你带来更多的创造机会。
(5)如果你正在读《高中数学必修三》的“算法”一章,那么你一定要阅读本书,去了解计算机编程和算法的本质。
(6)正在学习C语言的理工科或者文科的大学生们。
(7)准备学习编程的爱好者,或者准备以此为工作的人。
(8)哦,对了,还有就是看了很多编程书籍但是一直没有看懂的人,我想你一定可以轻松读懂本书。
(9)没有那么多原因,就是喜欢计算机。
第三个问题:为什么要写这本书呢?
正如前面所说,计算机是一门科学,如果你只是把它当成上网、聊天和玩游戏的工具,那就太可惜了,你将可能失去一个发现自己才能的机会。即使在计算机编程上有一些天赋,你也有可能失去这一机会。和其他人一样,你必须去主动发现自己的天赋和兴趣,就好比你从来没有吃过冰淇淋,就不可能知道自己喜欢吃冰淇淋。然而,如果学习了计算机编程,你就会发现计算机编程就如同玩游戏一样有趣,充满活力的思考过程就如同一场比赛令人兴奋。在感受到了计算机编程给你带来的乐趣后,你就再也不会沉迷于计算机游戏,计算机编程将成为你生活中不可缺少的一部分,成为你的一种爱好,成为你的一种学习动力。我想有更多人期待去了解计算机编程。
最后一个问题:选用哪一门编程语言入门呢?
学习编程的重点在于学习编程的逻辑和思维。本书选用较为简单的 C 语言。你可能要问为什么不选C++、C#、Java或者Python之类。因为我觉得相比之下C语言最为单纯,没有那么多乱七八糟的东西,非常简洁。即使以 C 语言为载体,我也尽量做到重点去讲解最有用的内容,而不是 C 语言的高深语法或者我至今都没有用过的“奇怪”语句。这样就有更多的时间去思考如何解决问题,去关注编程的逻辑和思维。
当然,说到底 C 语言仅仅是我们与计算机沟通的一门语言而已,相信你在阅读完本书之后,可以很轻松地上手任何一门语言,因为其本质都是一样的。根据TIOBE index的程序语言年度排名,2012年最流行的编程语言正是有着40年历史的C语言,它战胜了Java语言位居TIOBE index榜首,这或许也能说明C语言的重要性吧。以C语言为根本,将帮助你更好地去理解编程的思想,而不仅仅是学会编程。
另外我想告诉你,编程真的是一件非常有趣的事。你就像是一个指挥官,让计算机毫无怨言地为你工作。通过编程,你将体会到战胜困难和挑战后的快乐与满足。编程的世界充满无限的可能,只有想不到,没有做不到。当然在编程的时候也会遇到很多问题,我在书中也为你设置了绊脚石,希望你能够顺利地把它找出来。尽信书,不如无书。学习不但要细致,还要有思辨的能力,这样才会有创新,才能总结并创造出自己的东西。现在开始自己动手编程,不要放弃曾经的梦想,大胆地创造你的作品。
艾伦·凯曾经这样说道:“在自然科学中,是大自然给出一个世界,而我们去探索其中的法则。对于计算机来说,却是我们自己来构建法则,创造一个世界。”
当下,我们的学习不应该再忙碌于重复的计算、记忆等技能。阅读、逻辑推理和主动思考等技能将成为学习的重点。我们应该使用计算机来增强自己的智能,同时发挥人类独有的创造天赋,让我们的思维插上计算机的翅膀。
最后,我保证本书一定不是那种枯燥无味的编程入门书,并且在此之前你一定没有读过如此生动好玩的编程入门书。你可以在茶余饭后阅读本书,或许蹲在马桶上时也可以看得津津有味。现在就让我们一起走进计算机编程的神奇世界,探索和发现计算机编程的魔力吧!
[1] 1985年如果乔布斯没有被迫离开苹果,那这一功劳可能将归于苹果的麦金塔计算机。
[2] 被誉为“小乔布斯”的12岁少年托马斯是美国加利福尼亚州洛杉矶市南湾地区一所学校的6年级学生。当大多数孩子还处在玩计算机或手机游戏的时候,托马斯就已经是个能开发游戏程序的“软件工程师”了。托马斯不但为苹果公司的手机操作系统编写了两个游戏程序,还创办了一家软件开发公司。
[3] 吕凯风(VFK)在14岁时以初中生身份获得NOIP(提高组)一等奖,初三时以全省第一名的成绩入选湖北NOIP省队,高一时获得亚洲太平洋地区信息学奥林匹克竞赛(APIO2013)国际金牌,高二时获得NOIP全国第二名,现被保送到清华大学“姚班”。此外,他还独立创作了“对对棋”和“啊哈图”软件。“对对棋”的启发来源于他的班级同学在课间玩的一个游戏,“啊哈图”则是他在学习计算几何和图论知识时,为了方便解题和调试做的一个类似于“几何画板”的软件。