第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、当你确定需要一样工具时,你是否需要的是榔头?

这不是你能拍脑门决定的事情,你需要创造一样最适合的,最方便创造的东西出来帮你。这个时候榔头不一定是第一选择!主要要看你的场景和你能利用的东西。

……等等,我们还可以想象的更加细致。

发现没?这都是抽象的,甚至可以想出一些超越平时认知的方法,去实验某一些不同的“可能性”。

那么这些,我们就放到后面的课程里面,慢慢体会。


那么短暂停留之后干嘛呢?

当然,你就可以选择一些真正的编程语言来学习啦。

Python

应用需求极大,并且超级广泛。

这个语言甚至已经超过了人们对于中文的需求度,被称为人工智能时代的全球用语。

老丁可以很负责的说,在未来几年,这个编程语言会成为一种生活技能。或许你现在不信,就像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,有什么区别?的更多相关文章

  1. linux主要的发行版及其区别和联系

    1. 主要发行版 linux主要发行版有3类: (1).Debian (2).Slackware (3).Redhat (1)Debian Ubuntu 针对桌面和服务器 knopix 以安全著称 ( ...

  2. Linux的发行版,不同发行版之间的联系和区别

    Linux 主要作为Linux发行版(通常被称为"distro")的一部分而使用.这些发行版由个人,松散组织的团队,以及商业机构和志愿者组织编写.它们通常包括了其他的系统软件和应用 ...

  3. 介绍 Scratch 3.0:扩展编码创造力

    在过去十年中,全世界数百万儿童使用Scratch编写自己的互动游戏,故事,动画等. 这种磅礴的创造力激励我们继续扩展和改进Scratch,让世界各地的孩子都有新的机会用新技术创造性地表达自己. 今天, ...

  4. tensorflow函数解析:Session.run和Tensor.eval的区别

    tensorflow函数解析:Session.run和Tensor.eval 翻译 2017年04月20日 15:05:50 标签: tensorflow / 机器学习 / 深度学习 / python ...

  5. Scratch 少儿编程之旅(四)— Scratch入门动画《小猫捉蝴蝶》(中)

    本期内容概括: 了解Scratch的更多操作,用[无限循环]来更改“小猫”角色的代码: 添加[碰到边缘就反弹]积木块指令: 更改角色的旋转模式和造型,让”小猫”走路更生动: 两种[循环]语句的区别: ...

  6. scratch少儿编程第一季——01、初识图形化界面编程的神器

    各位小伙伴大家好: 说到2018年互联教育的热门事件,那就不得不提Scratch. 相信各位不关注信息技术领域的各位家长也都听说过这个东西. 对于小学阶段想要接触编程或信息技术学生来说,Scratch ...

  7. 少儿编程 | 01.Scratch 3.0简介

    欢迎参加这套Scratch3.0少儿编程课程的学习.本系列课程将通过视频和图文的方式进行(视频制作中,后续会发布).如果喜欢本系列课程,欢迎点击订阅关注或者转发. 这是本系列课程的第一课,主要是给家长 ...

  8. 【Scratch】编程?一节课就教会你!其实我们不用一个个学习如何使用代码。

    第199篇文章 老丁的课程 在很多教程里面,大家都喜欢把模块拿出来一个个讲述其功能. 这样做的好处是,可以把每个代码模块的功能讲的很清楚.但最最讨厌的问题也随之而来…… 举个例子,当你学习英语的时候, ...

  9. Scratch 3.0,新在哪里?

    大家期待已久的Scratch 3.0,已经上线一段时间了. 学生们可轻松通过连接WeDo2.0和EV3机器人 进行scratch编程学习啦! 或许有些朋友还不太了解Scratch,没关系,小乐今天就为 ...

随机推荐

  1. 数据结构Java版之查找算法(三)

    关于查找算法,这里只进行两个算法的说明.包括 顺序查找 和 折半查找. 顺序查找: 顺序查找常用于未排序的数据中.查找速度较慢,只能应用于较小的数据量. public int sequentialSe ...

  2. C++ <Algorithm>小小总结

    <algorithm>是C++标准程序库中的一个头文件,定义了C++ STL标准中的基础性的算法(均为函数模板).<algorithm>定义了设计用于元素范围的函数集合.任何对 ...

  3. vim 操作命令大全(转)

    1. 关于Vim vim是我最喜欢的编辑器,也是Linux下第二强大的编辑器. 虽然emacs是公认的世界第一,我认为使用emacs并没有使用vi进行编辑来得高效. 如果是初学vi,运行一下vimtu ...

  4. Vue的axios如何全局注册

    最近用 Vue 写项目的时候,用到 axios ,因为 axios 不能用 Vue.use() ,所以在每个 .vue 文件中使用 axios 时就需要 import , .vue 文件少的话还好说, ...

  5. OpenJudge数据结构与算法-计算点的距离并排序

    /*================================================================== 距离排序 总时间限制: 1000ms 内存限制: 65536k ...

  6. app 爬虫

    https://mp.weixin.qq.com/s/ClYYfpvylQGlYYHDFBuKpA 唯品会舆情监控系统 姚彬炎 唯技术 2月26日  

  7. SVN分支创建与合并

    SVN分支 一个branch是某个development line(通常是主线也即trunk)的一个拷贝,branch存在的意义在于,在不干扰trunk的情况下,和trunk并行开发,待开发结束后合并 ...

  8. 使用PHP实现查找附近的人

    https://zhuanlan.zhihu.com/p/31380780 LBS(基于位置的服务) 查找附近的人有个更大的专有名词叫做LBS(基于位置的服务),LBS是指是指通过电信移动运营商的无线 ...

  9. VS版本 与 VC版本 的对应关系

    Visual Studio 6 : vc6Visual Studio 2003 : vc7Visual Studio 2005 : vc8Visual Studio 2008 : vc9Visual ...

  10. 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 ...