Programming is to build

Paracraft的编程学习是从搭建开始的。很多人会纳闷,为什么学习编程要从搭建开始?我们的回答很简单,编程就是搭建!

编程其实就是用很多的指令搭建出一个很大的软件出来,就像在Paracraft里用方块搭建出一个大的建筑出来一样。大家看这段条块式编程的截图,就很形象的可以看出来许多的指令搭建出来一段程序。另一幅截图里则搭建出了两段代码,如同Paracraft世界里搭建了两个建筑一样。


图1:指令的搭建


图2:两个程序的搭建

熟悉Paracraft的小朋友都知道,如果有什么经常需要使用的建筑模块或者角色,可以使用方块进行建模,生成可以重复使用的BMAX模型。比如说建筑里的斗拱,或者屋顶的瓦片,可以用方块搭建出来可以复用的模型。房间里的桌椅也是一样,我们可以用方块搭建出来桌子或者椅子,然后重复的放置在不同的房间里。这跟编程里把重复使用的功能模块包装成指令或者函数是一样的,需要能够识别和提取通用的功能,并进行抽象建模生成可以重复使用的模块,这样的抽象建模能力正是编程里的核心能力。


图3:使用Paracraft制作的动物Bmax模型


图4:学生使用Paracraft方块搭建的坦克Bmax模型

指令的封装,也是一种模块化。其中有些指令是更底层的,被上层的指令反复调用。这就需要学生具有很强的抽象提取能力。而学生也可以去创造新的指令,可以是更底层的可以被很普遍的调用的通用指令,也可以是上层的更方便的做某些事情的指令。这些不正是搭建吗?

而这些底层的指令则代表了对那个层次的理解,或者说那个层次的抽象模型。就好像斗拱屋瓦等代表了对中国建筑的理解一样,或者说是中国建筑的抽象模型。你可以看到,从外在形式到内在实质,编程不就是搭建吗?


图5:使用Paracraft搭建的中国特色建筑

当孩子们需要去搭建一个相当大型的场景的时候,就需要学会如何拆解,如何抓住主要特征,如何迭代的分层的去完成,如何再组合不同的模块构成完整的作品,这些都是软件编程里的核心能力。

孩子们之所以热爱Paracraft,正是因为他们热爱搭建,通过搭建去创造复杂的生命。看看孩子们创造的各种过山车或者跑酷游戏,或者充满各种机关和故事的解密游戏,或者他们回忆校园生活的再现宏伟的校园建筑且饱含深情的动画电影,等等,无不是充满生命的作品。


图5:一个9岁孩子搭建的跑酷游戏


图6:一个9岁孩子搭建的跑酷游戏

而软件编程,正是创造生命。同物理世界的很多东西不同,没有哪个软件不是在创新。因为如果哪个软件不是在创新的话,我们可以直接复制之前的同样功能的软件即可。软件的复制/再生产的成本是0。所以软件一定是在创新的,不会重复的造轮子,程序员无时不刻不在创造新的生命,或者探索和思考可以创造什么样的生命,对他人有用的生命。所以创造完整的作品对于程序员来说,有着至关重要的意义。

Paracraft,正是以创造生命作品为核心,哪怕是年龄很小的孩子,也都有可以去创作的作品,并且在Paracraft里,孩子们可以创造完整的作品。随着技能的增长,他们可以逐渐创造更加复杂和有挑战性的作品。在创造复杂性和有挑战性作品方面,Paracraft可以说是没有上限的。

软件编程是通过搭建的方式去创造复杂的生命作品。 这就是我们对编程的理解。在软件行业里,我们发现优秀程序员应有的素质是普遍缺乏的,这些素质,简单的讲,其实就是搭建创造生命作品的能力,比如如何做抽象建模,如何拆解,如何抓住特征,如何分层,如何迭代,这些都需要很强的空间感知能力和与复杂空间交互的能力。这些素质的欠缺,正是我们传统的编程教育的狭隘片面造成的。传统的编程教育缺乏对软件编程的核心本质的理解。Paracraft编程教育,正是要解决这个问题,实现真正完整的编程教育。正如Alan Kay所说,认为软件编程就是逻辑是普通人对编程的严重误解。

所以,编程就是搭建!一切从搭建开始!

This entry was posted in selflearning, Software, Software Education, Uncategorized. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *


4 + nine =