第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语言为根本,将帮助你更好地去理解编程的思想,而不仅仅是学会编程。
还有我想告诉你编程真的是一件非常有趣的事。你就像是一个指挥官,让计算机毫无怨言地为你工作。通过编程,你将体会到战胜困难和挑战后的快乐与满足。编程的世界充满无限的可能,只有想不到,没有做不到。当然在编程的时候也会遇到很多问题,我在书中也为你设计了绊脚石,希望你能够顺利地把它找出来。尽信书,不如无书。学习不但要细致,还要有思辨的能力,这样才会有创新,才能总结并创造出自己的东西。现在开始自己动手编程,不要放弃曾经的梦想,大胆地创造你的作品。
艾伦·凯曾经这样说道:“在自然科学中,是大自然给出一个世界,而我们去探索其中的法则。对于计算机来说,却是我们自己来构建法则,创造一个世界。”
当下,我们的学习不应该再忙碌于重复的计算、记忆等技能。阅读、逻辑推理和主动思考等技能将成为学习的重点。我们应该使用计算机来增强自己的智能,同时发挥人类独有的创造天赋,让我们的思维插上计算机的翅膀。
最后,我保证本书一定不是那种枯燥无味的编程入门书,并且在此之前你一定没有读过如此生动好玩的编程入门书。你可以在茶余饭后阅读本书,或许蹲在马桶上时也可以看得津津有味。现在就让我们一起走进计算机编程的神奇世界,探索和发现计算机编程的魔力。