【Scratch】它跟Mindstorms,有什么区别?
第197篇文章
老丁的课程
在正式开始这套课程之前,依照老丁的习惯,还是要给大家白话下东西,该怎么学?
本节课,来讲讲我对于学习这个软件(包括和EV3配合起来)的一些看法。同时,也给小朋友们一些编程学习规划上的建议。
还是那句话!理解!
你对于一个事物的理解,是决定你能走多远的关键!
首先哦,我可能要说一句不太能被别人认同的话,但还是要说:
虽然Scratch学起来简单,也很好玩,但如果真的有一些小朋友要学习编程的话,在这个上面停留的时间,还是越少越好。
这里解释一下,不然又有人要误读了。本文就事论事,没有一点点批判Scratch的意思,而且,扪心自问,我很喜欢这个社区。
我指的少,不是因为Scratch不好,而是简单易学,也很容易能够上手到一定程度。如果按照Scratch的研发目标“让孩子能够体验到编程的乐趣”来说,这点上就足够了。
而我们要学习的本身其实是Scratch带来的操作,和对于一些方法的理解。
当然,这句话对于很多把Scratch做成几年课程的朋友,可能是不公平的,所以说明一下哈,所以这只是我个人的观点。
我认为,Scratch用来作一些启蒙接触,挺好的。但这个软件我们可以理解为是一个多媒体编辑器。你并不能完全把它理解为是一种编程。相反,如果单纯说编程的话,我认为mindstorms,更加配得上“编程”两个字。
为什么这样说?
可能我在之后的课程里面一步步会给大家证明这一点。
mindstorms,是一种逻辑上的锻炼,逻辑不清,可能根本无法做出一个“正常”的程序。Scratch的优势是,它的操作更加方便,你能够很容易的做出一个属于自己的动画短片,小游戏等等。要知道,这些在mindstorms是一件很累人的事情……(你可以看看本号内关于贪吃蛇的一套课程)
正是因为scratch编程的操作太方便,很容易通过拖拽等等方式去完成一些必要的内部逻辑的关联,操作画面也挺好看。所以往往会把小朋友的注意力给吸引掉,也容易忽略掉编程中重要的编程思想和编程的“抽象性”。
注意,编程是一个抽象的工作!这点很重要。
我们有编程思维的人,往往能够把一些想象中的事情给梳理和分析气你给出,从而得到一些解决方案。这一步很关键很关键,也是我们学习编程后,能够锻炼到的很重要的一个潜在能力!
这也就是为什么一些常年使用mindstorms编程的朋友,上手Scratch如此之快,并且能够迅速精通的原因。因为长期的mindstorms使用中,把内功给修炼到位了,有了心法,换个招式,只是一种熟练工啦~
再说明一下,老丁很喜欢Scratch,只是我个人觉得,很多人在做这样的课程里面,太过于注重案例本身了。案例千千万,但这都是鱼,而不是渔。编程思想应该是每个人的,所以,我们要培养的其实是思想,而不是操作本身。
综上所述,我认为,Scratch可以作为一种锻炼和练习的工具,帮助理解一些编程思想,但学的其实不是编程,也不是如何做一个游戏玩玩。关键是,如何用它的各种功能处理一些问题。你学习Mindstorms和LOGO语言也是一样的。编程思想,才是关键!
说到解决问题,这一点又可以白话一下了。
其实解决问题并不难,难的是“提出问题”,“找到问题”。
我们市面上大多数的编程教育,都在教如何解决问题。这就是我不愿意看到的。
有一块木板,木板上有根钉子,要把钉子弄进去。怎么做?
Scratch就像是一把榔头,直接敲不就行了?
Mindstorms就像是你先要确定用榔头,然后你的解决方案是做好这把榔头,再敲进去。(有很重要的流程设计要求)
而代码类的编程,就像是有一堆物体,你先要确定你是否一定需要一把榔头?明白吗?
方便,不是一切,也并不是求真态度下的追求。
上面这个问题的本身,其实包含了很多问题。
1、你用什么方法让钉子进去?
砸进去?拍进去?或者你可能不需要任何东西,把木板倒过来往地上敲,一样能把钉子敲进去,根本不需要其他任何东西的辅助,地面可能就是你最大的帮手。
2、当你确定需要一样工具时,你是否需要的是榔头?
这不是你能拍脑门决定的事情,你需要创造一样最适合的,最方便创造的东西出来帮你。这个时候榔头不一定是第一选择!主要要看你的场景和你能利用的东西。
……等等,我们还可以想象的更加细致。
发现没?这都是抽象的,甚至可以想出一些超越平时认知的方法,去实验某一些不同的“可能性”。
那么这些,我们就放到后面的课程里面,慢慢体会。
那么短暂停留之后干嘛呢?
当然,你就可以选择一些真正的编程语言来学习啦。
应用需求极大,并且超级广泛。
这个语言甚至已经超过了人们对于中文的需求度,被称为人工智能时代的全球用语。
老丁可以很负责的说,在未来几年,这个编程语言会成为一种生活技能。或许你现在不信,就像2012年左右,我对一些朋友说乐高机器人会火一样没人信,甚至有人问我,玩具也能拿来做教育产品?
这里我也再做出一个预言:未来几年,Python会成为最热门的IT技能敲门砖,一定会低龄化;哲学也会成为一项青少儿必修课,以应对信息传递越来越快的成长价值观和人生观的个体认知基石。
请收藏这篇文章,我们2~3年后来看看我的语言成真没有。
C++:
精通C++的工程师无疑是贴上了IT界的牛人标签。
这个语言可能是当今语言中,最灵活、最复杂、最难学的语言。
会当凌绝顶一览众山小,学会了这个东西,再看其他语言,都是小菜一碟!如果你还具备产品思维,那么……
C++用在操作系统、游戏、数据处理、医疗数据、教育数据、金融!等等几乎所有你能想到的跟数据有关的领域,岂止于大数据!那是巨数据!
如果小朋友有机会参加:
Intel科技奖软件作品的竞选(MIT这样的学校几乎是保送的感觉);
世界顶级noip,NOP大赛(卡耐基梅隆我来啦!);
信息奥赛(清华北大?我考虑一下哈……哪个离家近点呢……);
……
这,都是必备技能。
JavaScript:
这个玩意用来做网页动效的,也就是我们俗称的JS语言,我们网页上看到的这些动效啥的,都是由这个来完成的。这玩意一般就被我们叫做“前端”。
诶?编辑网页不是用HTML5嘛,要学JS干嘛?
这样解释一下,HTML5其实是指HTML语言在2014年的第五次重大改版。一般我们讨论这个重大改版要涉及3个语言。
HTML,就像是人的骨骼,器官,是一个网页的结构;
CSS,就像是人的皮肤,是一个能看到样子,换句话说,这两样加起来,就做成了一个“植物网(人)”;
JS,就是灵魂,这个网页对于人们浏览他的各种反应,可以思考,可以换装,等等等等……
明白了?还是不明白对吧。那就是了,学了你就明白了!
总之,你学会了这个,就可以自己做出一个自己的网页,相当于生了一个自己的孩子一样。这孩子怎么打扮,怎么成长,都可以由你来控制和喂养。
说不定高中开始做的网页,到了大学,当你真正认知了这个社会,这个市场,它就变成了你未来人生一辈子的事业!
以上这些,就是老丁对于Scratch学习的一些学习目标浅谈和未来的规划建议。
当然,兴趣是一切的开始!即便你以后不做IT工作,也可以学会很多编程思维。就从这里出发吧!
【Scratch】它跟Mindstorms,有什么区别?的更多相关文章
- linux主要的发行版及其区别和联系
1. 主要发行版 linux主要发行版有3类: (1).Debian (2).Slackware (3).Redhat (1)Debian Ubuntu 针对桌面和服务器 knopix 以安全著称 ( ...
- Linux的发行版,不同发行版之间的联系和区别
Linux 主要作为Linux发行版(通常被称为"distro")的一部分而使用.这些发行版由个人,松散组织的团队,以及商业机构和志愿者组织编写.它们通常包括了其他的系统软件和应用 ...
- 介绍 Scratch 3.0:扩展编码创造力
在过去十年中,全世界数百万儿童使用Scratch编写自己的互动游戏,故事,动画等. 这种磅礴的创造力激励我们继续扩展和改进Scratch,让世界各地的孩子都有新的机会用新技术创造性地表达自己. 今天, ...
- tensorflow函数解析:Session.run和Tensor.eval的区别
tensorflow函数解析:Session.run和Tensor.eval 翻译 2017年04月20日 15:05:50 标签: tensorflow / 机器学习 / 深度学习 / python ...
- Scratch 少儿编程之旅(四)— Scratch入门动画《小猫捉蝴蝶》(中)
本期内容概括: 了解Scratch的更多操作,用[无限循环]来更改“小猫”角色的代码: 添加[碰到边缘就反弹]积木块指令: 更改角色的旋转模式和造型,让”小猫”走路更生动: 两种[循环]语句的区别: ...
- scratch少儿编程第一季——01、初识图形化界面编程的神器
各位小伙伴大家好: 说到2018年互联教育的热门事件,那就不得不提Scratch. 相信各位不关注信息技术领域的各位家长也都听说过这个东西. 对于小学阶段想要接触编程或信息技术学生来说,Scratch ...
- 少儿编程 | 01.Scratch 3.0简介
欢迎参加这套Scratch3.0少儿编程课程的学习.本系列课程将通过视频和图文的方式进行(视频制作中,后续会发布).如果喜欢本系列课程,欢迎点击订阅关注或者转发. 这是本系列课程的第一课,主要是给家长 ...
- 【Scratch】编程?一节课就教会你!其实我们不用一个个学习如何使用代码。
第199篇文章 老丁的课程 在很多教程里面,大家都喜欢把模块拿出来一个个讲述其功能. 这样做的好处是,可以把每个代码模块的功能讲的很清楚.但最最讨厌的问题也随之而来…… 举个例子,当你学习英语的时候, ...
- Scratch 3.0,新在哪里?
大家期待已久的Scratch 3.0,已经上线一段时间了. 学生们可轻松通过连接WeDo2.0和EV3机器人 进行scratch编程学习啦! 或许有些朋友还不太了解Scratch,没关系,小乐今天就为 ...
随机推荐
- 数据结构Java版之查找算法(三)
关于查找算法,这里只进行两个算法的说明.包括 顺序查找 和 折半查找. 顺序查找: 顺序查找常用于未排序的数据中.查找速度较慢,只能应用于较小的数据量. public int sequentialSe ...
- C++ <Algorithm>小小总结
<algorithm>是C++标准程序库中的一个头文件,定义了C++ STL标准中的基础性的算法(均为函数模板).<algorithm>定义了设计用于元素范围的函数集合.任何对 ...
- vim 操作命令大全(转)
1. 关于Vim vim是我最喜欢的编辑器,也是Linux下第二强大的编辑器. 虽然emacs是公认的世界第一,我认为使用emacs并没有使用vi进行编辑来得高效. 如果是初学vi,运行一下vimtu ...
- Vue的axios如何全局注册
最近用 Vue 写项目的时候,用到 axios ,因为 axios 不能用 Vue.use() ,所以在每个 .vue 文件中使用 axios 时就需要 import , .vue 文件少的话还好说, ...
- OpenJudge数据结构与算法-计算点的距离并排序
/*================================================================== 距离排序 总时间限制: 1000ms 内存限制: 65536k ...
- app 爬虫
https://mp.weixin.qq.com/s/ClYYfpvylQGlYYHDFBuKpA 唯品会舆情监控系统 姚彬炎 唯技术 2月26日
- SVN分支创建与合并
SVN分支 一个branch是某个development line(通常是主线也即trunk)的一个拷贝,branch存在的意义在于,在不干扰trunk的情况下,和trunk并行开发,待开发结束后合并 ...
- 使用PHP实现查找附近的人
https://zhuanlan.zhihu.com/p/31380780 LBS(基于位置的服务) 查找附近的人有个更大的专有名词叫做LBS(基于位置的服务),LBS是指是指通过电信移动运营商的无线 ...
- VS版本 与 VC版本 的对应关系
Visual Studio 6 : vc6Visual Studio 2003 : vc7Visual Studio 2005 : vc8Visual Studio 2008 : vc9Visual ...
- LC 450. Delete Node in a BST
Given a root node reference of a BST and a key, delete the node with the given key in the BST. Retur ...