关于栏目
苹果、谷歌每年一次大更新的新系统都值得关注。「具透」会挖掘、详解新系统的各个功能细节,并会以长期更新形式,让你对它们有更深入全面的了解。
从今年的 WWDC 到 8 号凌晨的 iPhone 发布会上,苹果都拿出时间专门介绍了他们针对教育市场的新尝试——学习 Swisft 语言1的应用——Swift Playgrounds,可见不止鲍尔默,库克也深知开发者和教育市场对应用生态的重要性。
显然 Swift Playgrounds 的目标用户不是那些有经验的开发者,而是「平凡」的你——对编程毫无经验甚至有点恐惧。别担心,Swift Playgrounds 正是为你而来,将你带入陌生而又新奇代码世界。
正式开始我们的 Swift Playgrounds 的冒险之旅前,我们要先搞清楚它是什么。 Swift Playgrounds 并不只是类似于 Tapcoding ,这类面向初学者的教授 Swift 语言的应用。对于开发者而言,它可以调用真正的 iOS SDK 中的上千个 API,来写出真正用于工程的代码;同时它也是开放的,任何人都可以成为「作者」,用 Xcode 来自己写出 Swift 课程。它是如此的强大与丰富,以致于难以在一篇文章里全面的介绍,而所以本篇着重介绍它最基础也是最重要的使命——教你写代码。
我不是要做全职开发者,我需要学编程吗?
我想看大部分人看完开头,都会不由自主的思考这个问题——我需要学编程吗?
今年的 WWDC 上,台下的开发者们欢呼最热烈的一次,大概要数结尾阶段播放的采访短片。围绕着「最初开始编程的动力」的主题,采访对象却是我们会天天会遇到的中学生、妈妈们和公益活动的组织者,他们共同的身份就是开发者。其中有一句深得我心:
我只是一个人,看到了一个问题,并创造出了一个解决方案。
而科技作家 Douglas Rushkoff 认为:
在未来,面对着一个高度程序化的世界,如果你不能开发软件,那么你将变成软件。就是这么简单:要么编程,要么被编程。
每天我们都会遇到很多问题,而通过编程这种工具来解决自己遇到的实际问题就是其中一种方案。所以说我们非专业的学习编程,不是真的要以此为职业,而是学习一种处理问题的工具。同时我们都知道,熟悉乘法的人会比只会加法更高效的计算。同样的,学习编程更多的是学习其中的高效的思维模式,比如循环、递归等等在生活中也常见的现象。
最后,正如小时候的我们喜欢敲敲打打做一些手工,写代码本身就有一种造物的乐趣。
「有趣地学」才是正确的打开方式
前面做了足够多的心理建设,下面我们终于要开始领略 Swift Playgrounds 的乐趣所在。
初入编程乐园
Swift Playgrounds 目前分为两大类——「课程」和「挑战」。「课程」目前分基础和进阶两部分,都是给零基础的学习者准备的。而这个应用的最大特点就是游戏化的学习过程。
类似于书本的章节关系,在「课程」中 (无论基础还是进阶) 都是按照主题分为「章」,每一章内有若干「小节」。和普通的教科书不同的是,Swift Playgrounds 像 iOS 游戏那样,将对编程的介绍融入到关卡当中。
以最基础的第一章为例,开始的第一节,用有趣的文字和动画来解释要学习的概念。之后就像游戏鳄鱼小顽皮爱洗澡一样,你控制名叫 Byte 2的角色3,根据界面左上的文字提示,在左下写相应的代码来控制 Byte 的行动,向前移动三格,收集到宝石即可过关
对于任何有过 iOS 游戏经验的人来说,Swift Playgrounds 没有任何门槛而言,就像玩游戏一样来过关就可以了。而在这过程中,不知不觉就会非常直观的体会到编程的基础概念。
为 iPad 而优化
如果说有趣和零门槛是吸引你学 Swift Playgrounds 的初始动力,那么苹果特地对 iPad 进行的优化,会让你爱上在 iPad 上使用 Swift Playgrounds。
1. 特别适配的键盘。键盘的字母区都可以通过拖拽按键的方式来输入编程符号。最好用的当然还是键盘上方的通过快捷点击输入命令,其实它也类似于自动补全功能,输入一部分就可匹配出相应的命令。这样的改进虽说比不上熟练的开发者的输入速度,但是对于初学者来说大大减轻了输入命令时的恐惧,将其变成几次轻松的点击。
2. 在编辑代码块时自动调整代码。对于已经输好的代码,我们可以直观的利用触摸屏的特性去拖动代码块的顺序,还可以根据固定的格式填写代码。省去了代码缩进这个对于初学者容易犯错的场景。当然一定程度也避免了括号不配对的尴尬。
为什么 Swift Playgrounds 简单到小朋友都能学会?
编程课程可以说是互联网教育中分量非常重的一块内容,各个水平、技术方向的内容都很齐全,那为什么编程没有普及到普通人甚至小朋友的范围呢?或者说,Swift Playgrounds 对比之前的课程有什么独特优势吗?我想「直观」、「深刻」和「实践」三个词可以总结为 Swift Playgrounds 的作为后起之秀的优势。
摆脱黑乎乎的窗口,来场交互式的学习
如果你之前有过其他语言学习的经历,我想你学会的第一个语句,一定是输出「Hello,World!」这个语句,这是为了给初学者增强自信,但是难免显得乏味。
而 Swift Playgrounds 一开始就是交互式的学习场景——通过命令控制 Byte 的行动,直观的看到自己命令的效果,相比千篇一律的「Hello,World!」,无疑是前者成就感更强。
而用游戏的形式,一开始不让学习者接触到枯燥的基本语法。而是通过编写代码组合的方式,让学习者在脑中直观的建立起代码与最终呈现的联系,可以说能最大限度保留住了学习者的学习热情。
有趣又严肃,你学的是编程的思想。
一般来说,学习一门新的编程语言大致会分为四个部分:
- 数据成分
- 运算成分
- 控制成分
- 传输成分
很多教科书和网络课程,也会大致按照这个分类来编排内容。这种结构型学习的好处是基础会打的非常牢靠,就像修建金字塔一样,逐层往上,适合专业学生的学习。但是缺点对于初学者来说是很难忍受的——你在享受到编程的乐趣之前可能已经被枯燥的知识细节吓跑,比如缕清各运算符之间的优先级。
而 Swift Playgrounds 是一种目的为导向的学习,通过不断解决小问题来理解知识,而且将编程思想的介绍放在非常高的优先级上。最好的例证是在开头几章就讲「函数」、「循环」等,注重让初学者体会编程的意义——减少重复性的人工操作——和根本的编程思维——把问题逐步分解。而应该当做前几课讲的数据成分却放在了「进阶」的部分。
不一定说这种内容编排是最好的,但是我认为是最适合初学者的。对于初学者来说,告诉他为什么这么写,远比怎么写出来更重要。
实践出真知,学习不能袖手旁观
编程作为一门工科学科,势必需要学习者大量练习,才能真正理解一些看起来很基础的概念。
用游戏的方式来学习编程并不是单纯的吸引你来玩,因为本身编程内在的难度不会因为外在的形式而降低,但是用游戏的方式可以让你更形象的体会到编程中各种概念,从而降低了上手的难度和对概念的恐惧。
之前提到过Swift Playgrounds 分为两大类——「课程」和「挑战」。完成了基础的「课程」后,Swift Playgrounds 内准备了一些示范性的工具,供你尝试你的编程技巧。没有正确答案,有无限的可能性供你探索,这也就是为什么它叫 Playgrounds (游乐园)的原因吧。
你的乐园,也是你的起点
本文的大部分篇幅都在讲述 Swift Playgrounds 的意义,相反对其本身的描述却比较少,那是因为它本身太容易上手了,我的上百字描述,可能远比不上你实际体验一分钟。
如果你是一名想自己动手解决问题,却苦于之前没有机会坚持下来学习一门编程语言,我想这是一次好机会。Swift 本身作为苹果自己的开发语言,其强大的功能和可能性自不用说,Swift Playgrounds 又把学习的成本降到尽可能的低。
如果你已经是一位有经验的开发者,Swift Playgrounds 也有很多可玩性,比如写自己的 Swift 课程或者实验各类 iOS SDK 的特性,别把它当做一个给小朋友的玩具了。
总之,它会成为所有带有好奇心和动手能力的人的乐园。
关于 iOS 10 的更多内容:
- 《好的 iOS 体验,从用好通知开始:iOS 10 通知详解》
- 《iMessage App Store 详解》
- 《iOS 10 支持拦截骚扰电话了,这些事情你应该知道》
- 《关于 iOS 10 新 iMessage 的一切》
- 《刚刚升级 iOS 10?这份指南带你快速上手新系统》
- 《升级 iOS 10 之前你要注意的几件事》
原文可获取应用下载链接:具透丨苹果带你用最有趣的方式学编程:iOS 10 Swift Playgrounds 详解
喜欢少数派?欢迎关注我们的微博:@少数派sspai ,微信公众号: sspaime
少数派( http://sspai.com )