序二
十年了,这本书终于出版了!
2008年,那时的我还在软件公司做程序员。工作之余,我建了一个C语言交流的QQ群,群里陆陆续续加入很多大一、大二的学生,大家都抱怨“C语言太难学了”“学C语言真没意思,都是打印黑底白字的DOS程序”。刚接触程序设计的学生往往对编程兴趣盎然,希望能编写出炫酷的程序,但一个学期的C语言学下来,可能会被打击得体无完肤,彻底丧失对编程的兴趣。
从那时起,我开始思考如何让学习C语言变得有趣。经过准备,我录制了第一版的“C语言也能干大事”视频教程,讲解如何使用C语言调用Windows API编写Windows程序,其中包括计算器、音乐播放器几个例子。那是我第一次讲课,没有讲课经验,现在看来真是“惨不忍睹”。但由于内容新颖,教程瞬间引爆了C语言学习者社区,很多对C语言绝望的同学因为看了我的视频教程重拾对编程的兴趣,后来他们中很多人经过这十年的发展成为了公司的技术骨干。下面是当时的一些学生在微博上给我的留言,我感到很欣慰!
随着我讲课经验的不断提升,“C语言也能干大事”视频教程又陆续出了几个版本,讲解越来越细致,知识点也越来越完善。由于C语言是偏底层的语言,Java、Python等语言通过几行代码就可以实现的效果,C语言可能要用几十行甚至上百行代码才能完成,因此课程学起来难度仍然很高。
为了让更多人爱上编程、轻松学会编程,我开始回忆我当年学习编程的经历。1999年,当时我高一,父亲给我买了一台电脑学习机,就是可以插到电视机上类似红白游戏机的机器。利用一个暑假的时间,我无师自通学会了电脑学习机上的Basic游戏编程。
从最开始连打字都不会,到后来能够编写几百行的游戏程序,我没有受任何老师的指导,靠的就是自学电脑学习机上提供的Basic游戏编程语言:调用几个函数就能显示马里奥精灵,再调用一个函数就能让马里奥运动起来,再调用一个函数就能播放美妙的背景音乐……我就是在玩儿中掌握了变量、循环、判断、函数等复杂的编程概念。
“把这个游戏引擎移植到C语言环境中试试看!”这个念头一下子从我的脑中闪过!
说干就干!我用一天一夜开发了C语言游戏引擎(该游戏引擎在2018年获得了国家版权局颁发的《软件著作权登记证书》)。使用这个游戏引擎,初学者同样只要用简单的几行代码就可以编写炫酷的游戏,这样他们就可以像当年的我一样,在玩儿中学会编程。
游戏引擎开发出来后,我又录制了新版的“C语言也能干大事”视频教程。这套教程使用游戏引擎讲解C语言语法,通过让游戏人物转身讲解“参数”,通过让游戏人物走路讲解“循环”……游戏化的教学方法让更多人爱上了C语言。
教程上线后,我又马不停蹄地开始了这本书的编写工作。在讲课过程中,我大量地用口语化和形象化的方式表述,但落到纸面上,必须使用正式的书面用语。虽然在备课过程中,我编写了100多页的讲义,但要把讲义内容丰富、完善,变成一本书,是一个非常复杂的工作。在此,我要感谢如鹏教育的吕旭州同学,是他帮助我完成了书稿的整理工作。我对这本书寄予厚望,因此对稿件的要求非常高。从初稿完成到提交给出版社,我提出了很多改进意见,吕旭州同学都一一进行了修改,后来又在出版社更专业的修改建议下不断完善,直到定稿。
十年愿望终成真,希望这本书能够像十年前我的视频教程那样继续影响一代代的编程学习者。把“编程好玩,玩儿中学编程”的理念一直传递下去。
杨中科
2018年冬于北京