MicroBlocks 是一种免费/自在的、类似于 Scratch 的图形化编程言语,支撑许多具有教育特点的微操控器主板,如 micro:bit、ESP32/ESP8266、树莓派 Pico 等,欢迎运用 MicroBlocks 来学习物理核算/硬件编程。
MicroBlocks 中文主页 现已正式上线!
MicroBlocks 简介
The challenge is not building it but understanding it — Bret Victor 《Seeing Spaces》
让学习者专心于处理问题而不是操心系统机制 – John Maloney
MicroBlocks 是硬件编程(物理核算)范畴的 Scratch, 它是第一个具有 Scratch 临界质量的硬件编程渠道,可以协助数以千万的新手真正入门。
MicroBlocks 企图处理什么问题呢? 或许说当前的硬件编程范畴存在哪些问题?
硬件编程太难入门了
入门太困难了! 我在给老杨的礼物 里记录了咱们所受的苦:
我跟老杨便决定好好学习单片机编程(或许叫它硬件编程/物理核算),那时我现已有一些软件编程经历,但只是初学者。很快咱们就发现,学习单片机太难了!可怕得像一场灾难。
翻了后一页,就忘了前一页的内容,由于每一页都有很多细节,底子记不住。也不知道哪些重要哪些不重要,作者只是一股脑都告述你。玲琅满目的新名词,看起来完全不像中文,读起来像生造词。每一个概念又牵扯出一大堆其他概念,如同永远没有尽头。咱们这本看不懂,就看那本,但都差不多。
…
多年后,我在阅览《Mindstorms》时, 几乎感动的落泪, 这是一个何等慈善好心的心灵,为初学者少受些磨难,对教育界宣战,“要改动的是学校的教育机制,而不是孩子”。Seymour Parpert 所打击的核算机教育里的那些灾难性主意/做法,我大多都亲历过,虽然这本书在我上学时,现已出版了 30 年(40 年后才有中文版), 但整个核算机教育范畴如同闻所未闻似的(今日根本仍然如此)。 可想而知,干流核算机教育范畴到处都是事故现场(今日根本仍然如此)。
当我遇到 MicroBlocks,
我突然意识到,这可能我十年前跟老杨一直寻觅的东西。十年过去,它总算出现了。如果咱们在上学时遇到它,能用它来做多少风趣的东西呀!
Arduino 与 MicroPython
正在阅览文章的你可能是一个有经历的 Maker(创客),觉得 Arduino 现已很好地处理了入门困难的问题,它让业余爱好者也可以很好地玩转硬件。的确,Arduino 是硬件编程范畴的重大进步,让这个范畴不再那么令人生畏。在 Arduino 之后,MicroPython 又进一步降低了门槛。
可能是门槛实在太高,即便降了不少,对于没有任何经历的编程新手,仍然令人生畏。
图形化硬件编程
跟着 Maker/STEM/少儿编程 在教育范畴引发越来越多的重视,更多的人企图进一步降低编程的门槛,让新手不只能进行软件编程,也能成为 Maker,对实际世界的硬件进行编程,进而制造各种风趣的小发明。
Scratch 在协助新手入门编程方面取得了巨大成功, 截至今日(2022.11.22),单是 MIT Scratch 社区就现已有 9958 万的用户,年龄段分布从 4 岁(22 万)到 80 岁(1.2 万)。
他们在社区里一共创作了 1 亿 1708 万个程序项目!
也许是受到 Scratch 的鼓舞,人们想把 Scratch 的成功经历移植到硬件编程范畴,他们的主意是,运用图形积木来操控硬件!
这便是今日数以百计的公司(Google 、微软和乐高…)和高校(CMU、MIT、UC Berkeley…)正在做的事情。
可是,只是将代码图形化是不行的。
图形化编程环境经过削减编程过程的语法错误来协助学习,一些研讨标明,学习语法的困难只在前期阶段会遇到,学习编程的一个更大应战是,学习者需求可以正确预测源代码的更改对程序运行行为的影响。
MicroBlocks: 处理真正的应战
这个更大应战正是 MicroBlocks 企图处理的大问题。
MicroBlocks 经过供给具有活性(liveness)的编程环境,缩短了反馈循环,从而鼓励学习者经过「试错」进行试验和编程。这些改善极大提升了编程的 “可理解性”。
MicroBlocks 相较于其他编程渠道具体优胜在哪些地方? 我在比较图形化硬件编程渠道做了详尽讨论。
我曾经在硬件编程上吃了太多的苦, 这正是我如此热衷于分享 MicroBlocks 的原因: 不希望新手们再去忍受那些不必要的苦楚!
从MicroBlocks开始你的硬件编程之旅吧!