编程少年1+1访谈


缘起

去年12月,CodeLab正式决定于每周二、周四下午以及周六全天对外免费开放,静待少年朋友们的到来。年后受疫情影响,开放活动现仍处于暂停状态。惊喜的是,一位来自北京某初中的少年朋友Hanson,在以Scratch与Python为关键词进行网上搜索时,发现了种瓜围绕CodeLab Adapter所做的系列工作,由此开始了活跃的联系。就这样意外地,CodeLab在线上等到了少年朋友的到来。

可喜的是,少年不止一位,Hanson还有一位同样热衷编程的小伙伴——在梦里。他们自发创建了博客,并在其上活跃地写作与分享。他们对编程自发的热情主动学习的能力,令我们欣喜又振奋,忍不住想对他们了解更多,于是有了下面的访谈。

少年登场

Hanson

我是Hanson,目前在北京,是在梦里的同学。从小时候就开始接触编程了,也会关注其他的技术。我的兴趣很广泛。今年了解到了CodeLab。

在梦里

  • 13
  • 目前生活在北京
  • 普普通通的初二学生一枚
  • 其实没什么编程技术,只是感兴趣
  • 在梦里只是化名
  • 学校里成绩平平,在网络教学时逍遥法外有了更多时间,便和Hanson发现了CodeLab
  • 性别?你猜吧,你会猜中的

访谈记录

Q1. 你有没有属于自己的电脑和手机?如果没有自己专属的,那么在家里或校内,课外想用电脑的时候能不能任意使用呢,还是要经过父母或老师的同意、有使用时间及时长的限制?

Hanson: 有电脑和手机。手机的管理比较严格。电脑目前的管制算是比较松的(现在需要用电脑上网课),但是以前会比较严一些。只要早点睡觉,多锻炼身体就可以。

在梦里: 有,电脑⼿机,电脑是⽗⺟2012年的⽼机器,性能都还可以吧,不过最为我诟病的是它没有显卡!真的没有办法搞动画或者游戏,时间相对⾃由吧,可以任意使⽤。

Q2. 对于下面列出的条目,如果你玩过或有所了解,可以分别写写你的感受或经历或评价吗?(也可以在后面添加其他你想分享或评论的条目)

Scratch

Hanson: 简单易学,友好但是有一定的限制。不过作为入门的编程语言算是很好的了。最近才知道另外一个类似的Blockly。它们有根本性的区别,但是使用起来有些相似。都可以做一些简单的应用、游戏等等。

在梦里: 很⼩时候就有玩了,我都忘了那是什么时候,⼤概是离线版只有scratch1的时代吧,这点和Hanson差不多,由于有⼀次电脑坏了,许多⽂件都没了。。。希望有更多的scratch插件。

Python

Hanson: 里面有很多前人留下的轮子方便我们的使用。语法也算比较简单的。最开始的学习是听我爸爸说这种编程语言很有前景,我现在也发现它不像Java那么庞大而严肃。很早我就开始学习使用Python,有使用过游戏化编程的Code.org,也会通过别人的博客自学。

在梦里: 最初是看了⼩甲⻥在⽹易公开课上的课程,然后买了他的书⾃学,⾃认为没有学的多么深,常常是⾃⼰要⽤某个语法时还要去找。。。

Arduino

Hanson: 和Micro:bit相比,也许设计理念没那么先进。使用的是C进行编程。最终什么也没学到(C以前也接触过,没有兴趣)。它和Lego的Ev3有一些区别:乐高是积木化的硬件+积木化(图形化)编程,而它是需要螺丝和板子搭建的使用C的编程。但是...功能似乎区别不大。

在梦里: 不了解,大概是一种单片机?可以接一些外设?可编程但是局限于某种语言?不过好像没有什么算力,所以不如树莓派?好吧我还是不了解,不过如果以上的猜测属实,那么好像也没什么。

Micro:bit

Hanson: 使用过Arduino,Micro:bit不太清楚欸。好像是一种机器人。现在新的机器人像雨后春笋般出现,也会有一些积极的改变吧。

在梦里: 不了解,是⼀种灵活的单⽚机?

Raspberry Pi树莓派

Hanson: 听说过并且觉得很好玩。没买过

在梦里: 由于芯⽚是博通的,我爸公司的。。。所以以前有⼀个3b+(这是什么⻤逻辑),惊奇于电脑也可以做的那么⼩,做了⼀个⼩机器⼈(类似cozmo),后来因为两个引脚短路所以坏了。

Lego Mindstorms Ev3

Hanson: 小时候玩过,可以动手搭建又可以编程。可以完成一些比较复杂的任务。但是我始终没有做到完全脱离图纸,而是靠想象来制作机器人。随着一点点长大,用于拼插玩具的时间消失了(写一些软件的时间成本不像从头开始搭建硬件那么费时间),于是就没有碰过EV3了。

在梦里: 从⼆三年级开始玩吧,主要是做⼀些硬件,可以看看我的这篇文章,我想说的都在⾥⾯。

Toio

Hanson: 看起来很好玩的样子,不太了解。

在梦里: sony也开始做机器⼈啦!没玩过。。。⼩⼩的,很灵活,做什么都可以,我觉得会取代很多类似EV3的东⻄。

Cozmo

Hanson: 曾经不知道这些很好玩的硬件,看了一些视频,了解了一下,是一种很可爱的机器人。它原本的编程语言好像太简单了,CodeLab Adapter扩展了Cozmo。

在梦里: 就是anki的⼩机器⼈对吧,没有玩过,我感觉单个硬件的价格过⾼便没有了可玩性,也许更会考虑toio吧。

Teachable Machine/Machine Learning for Kids

Hanson: 我不是很熟悉这些,但是我认为这些项目可以让不太清楚算法的人们(如我),也体验到机器学习与人工智能。希望可以简单地体验到这些。同时我也认为光是会Scratch或者Python中使用到这些库或者调用API对于(原意)想“深度学习”是不太足够的。

在梦里: Teachable Machine我最近在研究,对于我真的真的真的太神奇了!我一直想要了解机器学习,或说是图像识别的东西,也看了那复杂到劝退的tensor flow的文档却一直没有发现这个平台,不仅是建立模型、演示方便,使用也方便。我现在就在用这个操作树莓派上的摄像头,处理一些手势什么的。这个世界太需要像Teachable Machine这种东西了,把技术的门槛降到最低。

Machine Learning for Kids,这就是我想要的哈哈哈哈哈哈哈哈哈哈哈哈哈哈。这个世界明明已经把机器学习用在了各种地方,但是还是没有一个真正的“新手教程”,我认为这个问题得分四步:

  • 感受:感受机器学习的强大
  • 了解:了解其基本的运作机制
  • 学习(这步可以不做): 了解实现方法
  • 运用: 将其带入生活,解决问题和思考问题 (有趣的是:我没有做第三步,也在“运用”,再次感谢Teachable Machine)

Q3. 如果以计算机或者编程为主题,能不能列出你的关键词,你熟悉的、喜欢的、常用的都可以列在内,可以是编程语言、软件、硬件、课程、书籍、工具、人名等等

Hanson: Lego EV3、Scratch、CODE.org、Python、小甲鱼学python《编码》(这本书相较于大众的科普书来说比较严肃一些,但让我真正理解了计算机的架构,以至于我可以做一个8位计算机。是一本很好的书,可以配合Logisim进行一些实践。)

在梦里: Lego Ev3、树莓派、《深度学习入门:基于Python的理论与实现》《零基础入门学习python》(我所了解的python几乎就是这两本书)、scratch、python、CodeLab、机器学习

Q4. 对AI的兴趣是何时产生的?有用AI做过什么东西吗?

Hanson: 想学习一些关于机器学习之类的内容,但是发现现在的数学基础完全不足以支持。所以先学习好数学和简单的算法吧。现在又接触到一些很简单的API接口或是简单的体验人工智能的项目如Teachable Machine。

在梦里: 没有!兴趣的话——我会下围棋,主要是16年的alpha go把我震撼了,我⼀直很想了解AI,但是⼀直没能了解,感觉没有⼀个好的平台和教程。

Q5. 接触CodeLab之后,对于计算机或编程的认识有发生什么变化吗?比如具体地,作为Scratcher,在接触到 CodeLab 做的事情之后,有何反应?

Hanson: 在网上搜索Scratch和Python联系的内容时看到了Codelab Adapter的介绍,就欣然尝试了它。它可以让尚未接触编程的人了解编程,体验到它的乐趣;也可以让学过编程的人接触到一个全新的世界。Neverland和其中的Dynamicland对于我来说是极具吸引力的,现在也想在开学后的学校搭建一个简单的Neverland。虽然说现在用它的还不多,但我期望着它的蓬勃发展。

在梦里: 很惊奇,是Hanson告诉我的,很早就想过要把scratch放到现实⽣活中,虽然官⽅的有⼀些类似ev3、micro:bit的扩展,但是没想到有那么全⾯,我⻢上做了⼀个摇头(控制的)版的2048,还有⼀些和树莓派连接的东⻄。

Q6. 你对编程的浓厚兴趣是否和家庭环境有关?⽐如爸爸妈妈是不是擅⻓或喜欢编程,所以对你有直接影响?

Hanson: 不是。我的家长有在这方面工作的,所以也了解一些,会引导我的一些兴趣。比如Scratch和Python一开始都是我爸爸介绍给我的,但后来我的Scratch和Python水平都比他要高很多了。

在梦里: 有⼀定关系,我爸以前是⼀个⼯程师好像是有关蓝⽛芯⽚的,现在在做量化投资,⽤的是java,所以算是有⼀定的影响,不过貌似我也没怎么咨询他关于编程的问题,⼀直是⾃学的。

Q7. 编程的过程中,有没有对别的领域产生兴趣或是有了更深的认识?(如动画、游戏制作,写作,数学,思维等等)

Hanson: 因为最开始用Scratch编程就是在做游戏,所以像游戏制作什么的肯定是有兴趣的。但是动画没有(也许是因为我美术太差了,但是Scratch的确可以做一些动画)。数学想去学习一下算法。对于思维方式的提升是有的。我会想到用编程的方法解决一些问题,也对科技这些有了一些新的认识。

在梦里: 有的。。。吧,主要是关于思维⽅⾯吧,从此遇到⼀个问题后多了⼀种解决、思考的⽅式,总不会是⼀件坏事。

Q8. 由兴趣驱动的编程学习,对于你学习其他内容有怎样的影响呢?

Hanson: 不会遇到学起来很烦的问题,也不会觉得是被逼着去学的。总是有兴趣去探索去折腾。

在梦里: emm,虽然这是Hanson说的,但我也算是⼀样适⽤,影响的话我想Hanson的回答会⽐较深刻。

Q9. 你怎么看Scratch社区,有在Scratch或其他⽹上社区内结识⼀些伙伴吗?有没有在社区中与他⼈交流,如评论他⼈的作品或是回答问题或是向他⼈求助?如果有的话,能不能谈谈感受,如果没有的话,能不能谈谈原因?

Hanson: 虽然我很喜欢开源文化,但我在Scratch社区里面不算很活跃:MIT的社区因为英语的问题交流不多,而国内的社区环境又比较令人不适(种种情况比如打广告)。期待着CodeLab社区的上线,也希望CodeLab社区的社区氛围更加美好,开源文化更浓。

在梦里: scratch社区很棒啊,要是每个知道scratch的⼈都可以⽤CodeLab就好了,我也会常常remix他们的项⽬,但交流还是⽐较少的,我认识的⼈中也就Hanson和⼏个同学会编程,交流的话主要和Hanson交流。

Q10. 目前你认为比较好的、自己常用的信息渠道有什么?另外关于信息和资源搜索,有没有什么心得?

Hanson: 信息渠道...没有什么好的渠道。常看的有几大博客CSDN博客园菜鸟教程等。官方文档什么的。

在梦里: Hanson最近是在做爬⾍吧(我为什么会想到这个。。。)⽐较好的就会查官⽅的⽂档,看不懂就去类似stackoverflow.com,或是直接Google,没有什么⼩众的渠道,GitHub也是个好东⻄。没有什么⼼得,主要是要把⼴告去掉(我真的受不了⼴告,我是⽤的chrome,加个插件adguard,就是把⼴告从请求的⽹⻚中删掉的⼀个插件,还可以⾃定义拦截内容)。

Q11. 对于缺少编程经验或是尚未体会到编程乐趣的朋友,有没有什么想说的?

Hanson: 还是认为学编程不一定要报课程,尤其是要小心打着“人工智能、大数据、区块链”旗号的课程。对于编程的入门和体验,Scratch或者是Blockly这种图形化编程无疑是比较好的选择。Python可能比较适合当Scratch不能满足你时或者想更进一步地学习时进行学习。对于编程,我的个人感受是比较复杂的。它是一种工具,一方面它又是一门科学或者艺术(随你怎么想)。它可以很抽象,用于数学或者后台;它也可以比较形象,如游戏网络甚至是空间编程。

在梦里: 看看scratch,先别急着看python;看看算法,先别急着看实现效果;看看Teachable Machine,先别看机器学习原理。慢慢就可以体会到其中乐趣,慢慢的螺旋式上升,随着自己的兴趣,而不是一贯的追寻体系本身的完整。按照Hanson的话说:兴趣驱动;我再加一句:没有兴趣培养兴趣。

Q12. 读完《童年的齿轮》,有什么感想吗?

Hanson: 谢谢@liuqing推荐的《童年的齿轮》,反复读了几遍。其中提到的认知层面和情感层面的“同化”,就像是罗素的《西方哲学史》中:一个蠢人,会将自己所看到的,解释为自己所理解的(我没看过这本书,但是看到@wenjie的博客中提到了这种说法,感觉很有启示性)。但是联想到自己的童年,虽然我也很喜欢探究问题比如齿轮,却没有发现什么内在的联系。也许是我的思想高度不够吧。

在梦里: 首先非常感谢赠书。说真的,我也许并没有我“童年的齿轮”,但我想,拥有一个“齿轮”是一个很有趣的事。我想,一个工具,像是齿轮或是计算机,可以用来“同化”无数其他的东西,甚至产生情感。一旦找到一个要钻研、了解的东西,从此成为一种思维方式,甚至情感支柱,所有的知识都从一个“缘起”的开端开始出现,是“思维模型发芽的土壤”,逐渐成为了一种知识结构,将未知转化为已知,这看似简单的过程,正是思考所需要的。

Q13. 对CodeLab有什么期待吗?具体或笼统、当下或未来,畅所欲言。

Hanson: 很喜欢Neverland和Adapter,期待Dynamicland和社区。继续这样发展下去吧!悄悄地说,希望你们在以后可以来北京开展几次活动。

在梦里: 希望来北京(小声);希望有和Dynamicland的合作;希望继续做下去吧,有一个更大的团队;希望有更多志同道合的同道中人。