在未来,面对着一个高度程序化的世界,如果你不能开发软件,那么你将变成软件。就是这么简单:要么编程,要么被编程。——道格拉斯·洛西科夫
我为什么也要学编程
在今年的 WWDC 大会上,苹果发布了一款名叫《Swift Playgrounds》的全新 iPad 应用,Swift Playgrounds 直接翻译成中文意思,就是“Swift 的游乐园”。苹果推出这款软件的目的是通过游戏的方式帮助用户学习如何使用苹果的编程语言 Swift 来写代码。
WWDC 2014,苹果宣布所有的 iOS 设备都将开始使用一个新的编程语言叫做 Swift。Swift 被称作“快速、现代、安全、可交互的”编程语言,这门语言具有更容易学,编程更有成效的特性。
一条最常见的初学编程指令:
在 Swift 之前,iOS 程序基本上是用 Objective-C(OC)写的,这门语言(OC)已经使用了超过 20 年,并且也是 Mac 和 iOS 设备最基本的编程语言。大多数人觉得 OC 太难学了,语法看起来也很怪异,以至于这门代码吓跑了不少刚开始学习 iOS 编程的人。
相比之下,Swift 是一款易学易用的编程语言,而且它还是第一套具有与脚本语言同样的表现力和趣味性的系统编程语言。Swift 的设计以安全为出发点,语法和标准库也非常简洁,让编程的流程大大缩短、简化,以避免各种常见的编程错误类别。苹果的想法是用 Swift 诱惑更多的 web 开发者来开发移动软件,实际上如你所见,不断增长的开发者大军证明了 Swift 编程语言的成功。2015 年 12 月 4 日,苹果公司宣布 Swift 编程语言开放源代码。
看完这一大堆你也许要问,我又不是开发者,跟编程工作也一点都不沾边,为什么还需要懂这些?《Swift Playgrounds》被苹果定义为教育软件,面向所有中小学校开放,每一个孩子在未来的软件时代都可能成为开发者的一员,或者开发者队伍的一部分,而我们这一代人想要跟上节奏,或者想要尽可能地培养后代与未来接轨,看懂一些计算机语言,编程知识非常必要。
再退一步说,编程并不是多么高不可攀的事,编程思维不过就是一句话——看到问题,然后创造一个方案来解决问题。编程的过程不仅是动手过程,更是一个系统地解决问题的过程,学习一些编程知识有助于我们养成高效、实际的思维模式。
我是小白 这里是小白的乐园
即便是大学的时候选修过某些听起来完全懵逼的编程课,如今想必大多数非从事相关工作的人,都没有什么编程经验,说到底我们和坐在小书桌上的孩童差不多,在编程方面都是新得不能再新的小白。所幸 Swift 本身就具备对初学者相当友好的特性,而《Swift Playgrounds》更是被打造成一个小白的游乐场,它不像教科书那样一上来就用一堆概念、名词把你砸晕,而是通过大量“所见即所得”的小游戏,让你一步一步了解 Swift 编程步骤。
《Swift Playgrounds》适用于 iOS 10 系统的 iPad 设备,下载应用之后你会看到它的界面类似于 App Store 或者 iBook,有自己独立的课程更新机制和分类。目前《Swift Playgrounds》分为「课程」和「挑战」两大类,「课程」目前有基础和进阶两部分,都是给零基础的学习者准备的。「挑战」则类似于让学生课余自主动手的“课后作业”。
和我们正常上课一样,在《Swift Playgrounds》的课程中按照主题分为「章」,每一章内有若干「小节」。和普通的教科书不同的是,每一个小节都结合一个 iOS 小游戏来上课,我们将一边看课程内容,一边通过写代码去完成这个小游戏,这个过程中,你已经不知不觉地完成创造游戏和玩游戏两种角色,参与度非常高。
以第一章的第一节课为例,这节课里我们要操控一个名为 Byte 的角色(Byte 就是“字节”),根据界面左上的提示,让 Byte 前进并收集到宝石。
在这里我们可以看出 Swift 简洁的语法和流程,没有任何门槛。而且《Swift Playgrounds》直接将代码标准库给出,不需要输入英文字母这种繁琐的工作,只要点击最下方选择对应的代码就可以了,这对初学者来说无疑能节省大量的精力和时间,我们很容易理解为什么要这样写代码,而不是机械地抄一段代码去完成这段演示。
极度简化与循序渐进
《Swift Playgrounds》之所以好学习是因为它专门为 iPad 和各种年龄层次的零基础的人群做了大量优化:首先在输入方面,它的默认方式是让你“选用”代码而不是自己敲代码,除了界面最下方会始终给出常用命令之外,它也提供代码自动补全功能,输入一部分就可以匹配出相应的后续命令,对初学者来说大大减轻了自己手动输入命令的恐惧。
其次优化过的键盘完全可以适应编程需要,无论是赋值语法即时弹出的数字小键盘还是拉出完整键盘后的各类符号都体现出了极大的便捷性,即便是完全手动写代码,也不必来回切换键盘。另外删除、回车、撤销、重写等功能按钮也非常清晰,可以通过画面下方的按钮图标完成,也可以在按住某一句命令后弹出对应选项进行再操作。
最后是它充分发挥了触摸屏的特性,可以直接拖动整句命令或者整个代码块。我们在编程过程中难免出现逻辑顺序的错误,比如把某条命令写在了不正确的地方,这时候软件会出现错误提示,并告诉你应该如何去更正这样的错误,直接了当的删除、拖动等修改方式,省去了代码缩进这个对于初学者容易犯错的场景,让你学习起来更有效率。
既然是编程学习课,那么《Swift Playgrounds》当然也符合课程教育规律,以小节为单位的课程安排非常合理,而且涉及的基本概念也是由简到难,命令、功能、循环、参数、状态码、变量、初始化和 Bug 修复,你对课程的接受程度如实地反应到右侧的小游戏中,完成游戏,说明你已经学会,而完不成,则说明你的理解有误,这对自学者来说是一项极好的结果考评。
让人觉得更出色的是《Swift Playgrounds》作为目的导向教学,虽然步骤不多,说明的文字简短,但整个教学完全不存在“偷工减料”或者“教你走捷径”这样的思路,而是让初学者有更多机会做大量动手练习,修改大量的 BUG,更自由地发挥自己的思维,这样的教学方法即便是放在现代化教学中也是一个很棒的典范,能看出苹果在教育方面确实下了很大的功夫。
最平凡人的编程起点
《Swift Playgrounds》的上手十分简单,简单到本篇评测都没有必要去详细介绍应该如何使用,如何操作,因为实际体验远远胜过长篇大论,它的学习成本很低很低,不过因为软件暂时没有中文语言支持,所以看懂基础英文还是需要的,编程语言本身最起码也得掌握常用的英文指令,对成年人来说尽管有些苦恼,却应该自己去克服。
对小孩子来说,全英文课程会让他们理解不了课堂说明,以至于不知道自己应该完成什么任务,怎样完成任务,需要有家长或老师在一旁讲解,当然如果你是一位 10 岁左右孩子的家长,那么这是一个很好的亲子学习机会,在带领孩子理解课程的同时,你也能够更深刻体会 Swift 编程概念。
如果未来苹果能针对《Swift Playgrounds》进行多语言化,应该会更利于它的普及。
Swift 本身作为苹果自己的开发语言已经拥有强大的功能和可能性,《Swift Playgrounds》进入学校教育不仅是在推动编程普及,也是在帮助苹果培养下一代开发者。像你我这种自认为已经“错过成为一名开发者”时机的平凡人,它可以用以入门、用以亲子教育、用以锻炼手脑能力、用以更好地理解 iOS 游戏是怎样被设计制作出来的。
多一项技能永远不会有错,不管你曾经想要学习开发、学习编程的念头有多么渺茫,但只要想过,那在接触过《Swift Playgrounds》之后的心情就一定是欣喜的,不如从这里再开始,好好地学上一课吧。