《App Inventor开发集锦》截稿
历时两年的《App Inventor开发集锦》终于可以画上一个句号了,在原有book2.17coding.net在线版的基础上,又增添了三章内容,并撰写了前言,在此特摘录前言部分以飨读者,在线版也将于近日完成增补工作。
本书共19章,包含13个完整的应用,在应用的类型上,覆盖了游戏、教学、工具、信息管理以及网络应用等。针对每个具体的应用,从功能描述开始,有针对性地剖析技术要点及难点,然后进行用户界面的设计以及代码的编写,最后,对代码进行整理回顾,对相关的技术及方法进行归纳,以期使开发者从具体的编程实例中抽象出一般性的规律。
一、为什么要写一本实例的书
这与我个人学习编程的经历有关。2002年秋天,由于个人原因,38岁的我从一家国企的销售管理岗位上退下来,回到家中,一个迫切的愿望,就是开发一款销售管理软件,将自己多年销售管理的实战经验,与从业期间所接受的职业培训的相关内容整合起来,以工具软件的形式提供给销售人员。销售人员在使用软件管理业务的同时,也潜移默化地学会了用户管理、时间管理、项目管理,等等,我深信工具(软件)可以起到教育的作用。对于刚刚开始学习编程的我来说,这是一个不小的挑战,不知道从哪里下手,也不知道该去读什么书。在书店里寻来寻去,希望能够找到一本类型相近的完整案例讲解的书,但却没能找到。对这类书的渴求在我的心里留下了一个巨大的空洞,于是多年之后,当我自己开始写编程的书时,很自然地选择了以案例为主的方式。2016年出版的《俄罗斯方块开发笔记》是我的第一本原创书,记述了俄罗斯方块游戏开发的完整过程。
二、编程这件事儿
在以往的教育体制中,要等到大学阶段才开始接受编程教育,不过近年来编程教育已经开始下移,向中小学渗透。随着图形化开发工具的普及,越来越多的非大学生开始尝试编写自己的应用程序,不过有更多的人至今仍徘徊在编程技术的门外,心中充满疑惑。经常有读者提问,要具备怎样的基础才能学习编程,我给出的回答是只需具备两个条件:(1) 会使用“如果…则…否则”造句;(2) 会用四则运算解简单的应用题。也就是说,小学高年级学生就可以开始学习编程了。
如果你能安心地阅读本书中的前几章,你会发现我的话并不夸张。程序是一种非常确定的语言,比起我们日常交流使用的自然语言,它的词汇量很少,语法简单但是很严格。学会这种语言的前提是,会用自然语言进行思考,所要学习的是,将自然语言翻译为程序语言。
我们都熟知一个事实,大多数人从小学就开始学英语,掌握大量的词汇及语法知识,可是,当你真正面对一个外国人时,却很难顺畅地交流。相反,对于生长在英语环境中的人来说,不必接受特别的教育,就会使用这门语言,这是为什么?我想说的是,语言必须经常使用(而非学习)才能真正熟练掌握。英语如此,程序语言也是如此。
语言的学习从模仿开始,当掌握了必要的词汇及语法知识后,就可以随心所愿地表达自己的思想了。本书所提供的例子,就是一些可供模仿的样板,它教会你如何描述一个应用,如何解决实际问题,以及如何从具体案例中总结出共通的经验。
三、最好的老师在哪里
当你的心中涌起了某种冲动,想动手做点什么的时候,这种冲动无比的珍贵,它是你最好的老师,它给了你方向和动力。冲动之后,你开始思考,甚至跃跃欲试,不过也许会有一丝畏难情绪,因为在那些未曾经历的过程中,会有很多难题需要解决,你甚至会怀疑自己是否有勇气克服它们,于是拖延开始了。别担心,这是我们的通病,我的奶奶曾经教诲我的父亲:眼是懒蛋,手是好汉!一旦开始动手,那些看似玄妙的难题,便随着我们孜孜不倦的潜心钻研而一一化解了。