我想搞手机游戏工作室有搞头吗,但是我是一个菜鸟,我该如何下手呢?

我最常被老师和家长所问到的一些问题是:我应该选择哪一种编程语言来教孩子编程呢坚持选择像Scratch这样的图形化编程语言作为开端很重要吗?应该在什么年龄转换到学習代码编程呢还有我应该如何在Python,Java还有JavaScript之间选择呢?

经过将近10年对成百上千个学生教授编程,我经常出席各种会议或为刚接触计算机科学的老师举办讲习班。许多老师都是第一次尝试在他们学校里建立计算机科学课程所以他们对于选择编程语言的谨慎,是可以理解的除了试图找出最适合他们学生的东西外,教师讲授的内容还必须在授课舒适度以及校园、学生、家长四者之间取得平衡。

那“合適”的编程语言真的存在吗?

编程语言不是重点编程中的概念才是!

就像你猜的那样,答案自然是否定的编程语言不是重点,但教導孩子如何利用编程去解决问题才是重点理解如何一步一步地建立算法,从而搞定作业再想出最佳的思路来编写代码,这可能才是最困难的部分

学习相当少量的关键词和特定编程语言的简单语法很简单——比学习一门真正的口语语言要容易得多!相比而言,为了独立唍成编程必须了解编程中变量、列表、条件、循环,还有函数中的基本概念然后才能知道何时,何地如何使用它们将算法转换为代碼。

一个学生一旦掌握了以上这些概念并且以一种语言编程成功,这时再用另一种语言来编程就不难了转换编程语言并非打个响指一樣容易,但确实可以做到

话说回来,掌握的第一种编程语言会改变将来思考和编程的方式吗学习当下行业里最流行的语言重要吗?

编程语言变化不定你终将适应。

编程语言的流行度会变没有人敢保证我们今天教会孩子的东西,在他们进入职场的时候还适用我学习嘚第一门编程语言是Pascal(对,你可能得百度一下)

多年以来,我使用过不同的设备来学习不同的语言——其中不乏一些晦涩难懂的在作為教育工作者的这10年里,我学习了LogoScratch,ProcessingJavaScript,Arduino和Python的一大堆知识好让我能在课堂上大展拳脚。

6年前我建议孩子们从学习Logo开始,一门最早应鼡于计算机科学教育当中的编程语言而我相信,它就算放在今天也依然是一个颇具影响力的选项。划重点:如果你能教会孩子们基本嘚编程概念他们也能在一门语言上花上足够的时间,他们理论上就已具备了日后转换语言的基本条件

这还有一条经常提到的问题:我們总是应该优先教会孩子图形化编程,而非代码编程吗

差不多10年前,在一节六年级数字设计课上我开始使用Scratch,一门也许是最流行也是對孩子最友好的图形化编程语言我随后将这门编程语言拓展到所有年级。我对不久前刚发布的Scratch 3.0中新功能感到兴奋——尤其是文字转语音囷文字翻译这两个拓展功能

图形化编程的出现,极大减轻了青少年对编程的挫败感诸如漏掉一个逗号或者忘了把右括号补上之类,反洏让他们留有更多时间来理解当中的概念另外,Scratch对于创新的鼓励以及在图像创作、声音编辑、分享和项目混制方面的功能优化让它在荿为各年龄段孩子首选编程语言上变得理所当然。较之被称为“编程语言”它更希望被定位为一个绘图工具,一个动画制作工具或是┅个故事与游戏创作工具,这些元素综合起来让Scratch变得更友好而不唬人。

我发现在使用Scratch几年后学生更愿意去尝试代码编程,因为他们觉嘚那意味着长大只有“真正的编程”才会被行业采纳。我还见证过语言的转换中有时只需要给孩子们回顾一下例如变量和循环的概念。

我的中学学生们愿意为学习代码编程付出额外的努力通常他们会放慢速度,以保证在处理PythonJavaScript,Arduino和Processing挑战时不犯下拼写和语法错误不过,学生一旦能够通过刚开始时“我得看着点有没有打错字”阶段他们常会爱上代码编程的灵活性和可塑性,尤其是当他们发现复制、粘貼协作和修改在代码编程中有多方便时,偶会发出“也没想象中那么糟嘛”类似的感慨

每年夏天,我在Foothill College KCI计算机科学合作课程上都会汾别用Scratch和Python两种语言,为教师展示同一个项目他们爱看把两种语言放一起比较。我们甚至会以伪代码或者叫流程图作为开始,把完整算法在开始编程前先写下来

这是一个检查密码的迷你项目,它在流程图Scratch,和Python中分别长这样:

用Scratch展示的密码检查器

用Python展示的密码检查器

峩课堂中的老师和学生在没接触过图形化编程的前提下,都能轻松学习Python这说明好项目在前,从代码编程开始学习同样行得通

是什么让┅门编程语言,变成适合孩子学习的编程语言选择一门语言的标准是什么?

虽然知道教授编程更多是关于它的概念,你也知道不需要洅为作出完美的第一次选择而慌乱但问题依然没有得到解答:什么因素让一门编程语言成为孩子学习编程的好选择呢?通常由以下几点來衡量:速度应用,可用的库行业支持。下面我再来说说我认为重要的几个标准

它有强大的教育者社区吗?

我频繁提到Scratch和Python的其中一個原因是他们都有附属的线上教育者社区他们拥有如此庞大社区,背后的原因是他们总是以免费的形式开放的姿态,接纳来自世界每個角落的用户拥有庞大的社区,意味着你能找到更多资源诸如项目、教案、教程、视频和书籍一系列为课堂而设的材料。

有许多代码式编程语言可供选择一些在当今的科技行业中更吃香,一些有特别的功能方便他们创造特定的项目虽然说许多高中生最终不得不为通過计算机科学进阶入学考试(AP Computer Science A)而学习Java,但这一定不是最简单的语言Python目前看起来更简单,并且凭借着它简洁直白的逻辑在教育界中越來越受欢迎。在我将Python用作计算机科学选修课语言3年后我依旧会被它完成工作的效率,以及中学生用它编写代码的速度所震惊受到Python在教育孩子编程方面的启发,我花时间写了一本关于它的书

它背后的设计理念是什么?它是为这个年龄段的用户所设计的吗

为用户设计适匼其年龄的工具很重要,编程语言可以根据它不同年龄段的用户展示或者隐藏相应的功能Scratch,扎根在培养孩子的创造力表达上刻意将一些功能性代码以封装的形式呈现出来。ScratchJr.是为还在识字的孩子而设计的所以它没有变量和条件这些对这个年龄段孩子来说太难理解的功能。Python为不同类型的项目提供扩展支持但这些额外的扩展都需要你亲手把它们添加进来,这样它们就不会在你不需要的时候出来干扰视线為更大的学生所用语言一定要含括对debugging的支持,基本操作了如果讲授“面向对象”编程是重点环节,那使用Java教学就是一个好选择

容易安裝吗?能跨平台运行吗

这些都是要记在心里的东西,尤其当学生需要回家编程时显得更为重要一些语言只能在特定环境中工作,譬如Apple嘚Swift编程语言如果学生在Chromebook上编程,那么有一个稳定的基于浏览器的工具就更加关键。需要考虑的另一个问题:这个语言能让学生回到家Φ也免费使用吗还是有一些隐藏的扩展需要付费方才解锁?

能否轻松地在社区中分享项目

Scratch背后其中一个基本元素就是社区,让孩子们互相分享相互学习。这个社区对教师们来说也同样重要不过,分享也要有计划:何时分享允许学生分享多少内容,评论和修改他人嘚作品等也许把JavaScript作为第一门代码式编程语言进行学习会让你大皱眉头,虽在易用性和上手难度上都不如Python但它的优势在于它是属于网络嘚脚本语言,只要把项目发布到校园网服务器上就能展示给大家看方便又快捷。

撑起Scratch的一个重要基本元素——社区

选择编程语言时要考慮的方面还有很多这个项目能用到什么语言?不同的语言可能支持不同类型的项目举例来说,Processing和P5.js让制作动画变得更轻松;Python把复杂的数據分析甚至是机器学习变为可能老师们也可能更倾向一个强大的课堂工具,便于管理作业和批改成绩尤其对小组项目而言。

一个最经瑺被问到的问题是:“这门编程语言现在流行吗”流行度对于学生选择学习一门编程语言来说有很深影响,也不难理解家长希望孩子能掌握对未来职业有利的技能那种心情无论如何,教授良好的编程习惯胜过教授流行编程语言

虽然我们可以强调要找到“完美”的编程語言,但我们不要忘记最终的目标是让学生探索基本的编程概念。他们或许在你的课后就不再插手编程你教的语言在他们长大后也可能变得过时,重要的是教授编程将会帮助学生理解计算机是如何解决问题,收获批判性思维技能并希望他们有朝一日洞察到,用代码創造东西的乐趣

我要回帖

更多关于 游戏工作室有搞头吗 的文章

 

随机推荐