图形化编程,与世界的交互新方式
颖奇:非常感谢编程猫 CTO 孙悦接受我们的采访。能否先给大家介绍一下,编程猫有哪些领先于国内外其他同类型公司的技术特点?
孙悦:其实编程猫是一家技术公司。开始的两三年,我们基本上只有产研侧的人,现在公司还是有几百人规模的产研团队。其实编程教育行业基本上没有几家公司有技术,编程猫做了很多底层的东西。
编程猫的技术一共是这样几层,最底层叫做工具逻辑层。基本上是基于 Web 端的,或者说基于浏览器内核的编程工具。然后用这样的方式去做自己的编译器、编译环境和解释器,完成整个编程工具的底层的搭建,后面所有的工具都是基于这样一套体系去完成的。
再往上就是中间层,也是衔接层。衔接层主要是服务,是各个服务怎么能够去调动好这些工具、底层的那些基本平台。上层的服务就比较复杂了,会根据不同的业务场景去做服务,比如在线教育业务、公立学校业务、线下教育合作中心业务等等,每个模块有基于底层逻辑的不同的服务。服务再上层就是 API 了。API 会根据服务去拆,我们公司的整个技术架构其实是基于业务架构去搭建的,所以它自然而然呈现出服务化的态势。
颖奇:那么编程猫在未来五年到十年,在商业和技术上的发展方向是怎样的?
孙悦:先不说商业吧,我觉得商业这个事情是更高更快更强,没有尽头。但是技术这块其实蛮有意思,我们做底层工具的人都有个想法。K12 的人群,中国有适龄的 1.5 亿青少年。这部分人都学编程猫长大的话,我的工具就是全世界最大的编程语言。
颖奇:那你们会做出一个可能比 Python 更加高级的编程语言?
孙悦:我们会在这方面做尝试。首先我们觉得光图形化这一个部分就可以足够优化。绝大多数人可能根本不用学到代码编程,虽然现在大家把图形化当成小孩子的游戏,但是其实可以去看我们平台上所产生的很多作品,像刚刚我们做一个人脸识别的东西只要两三个积木就拼出来了。所以我们认为图形化是有巨大潜能的,光图形化这一块就已经可以超越现在所有的编程语言。
那图形化做不到什么?你不能当系统工程师,不能当安全工程师,不能当运维工程师,因为它达不到那么深的底层;但是你要做一个 APP、小程序,要做一个日常的东西,要控制物联网,是绝对够用的。所以我觉得如果我们的编程语言能让上亿的人使用,那就已经是全世界最大的编程语言了。
颖奇:它将来可能跟青少年教育关系不大了,而是大家日常去使用。
孙悦:是的,就是一个日常逻辑,跟你会写字是一样的。编程其实特别简单。我一直觉得把编程说玄妙的那些人都是程序员,因为他们日常解决的是工程问题,而不是编程的问题,编程的问题就特别简单。编程问题就是把事情描述出来的能力。我觉得每个人都具有这样的能力,只是能力好坏的问题。就像写作一样,其实每个人都会写字,但有的人可以妙笔生花,有的人可能只能写出不通顺的句子。
颖奇:也就是说图形化编程前期是一个让青少年更容易理解的学习方式,而后期是可以变成我们日常可用的、更方便的一种编程方法,使得大家更容易的用逻辑的方式与世界进行交流。编程可能是一个新的人与世界的交互界面,然后可以具象化落地成图形化的方式。可能还会有一些场景,比如 IoT,人和车、和家电等等就会有更多的交互方式,可能空调上面也没有那么多按钮了。
孙悦:是这样的,为什么现在需要一百种遥控器遥控不同的设备。明明都是一个逻辑,开和关,开关之后干什么,逻辑是一样的。反而我们给了不同设备不同的遥控器。如果 IoT 有一千个设备,难道要有一千种遥控器吗?我不如会一种编程语言,全部联通就好了,核心逻辑是一样的。
编程能力,未来的「通用」语言
颖奇:对于编程教育外界可能会有一个疑问,认为它更多是像一个认证教育。所以编程猫是在培养一小部分工程师,还是在培养大众的工程思维呢?
孙悦:其实这两种理解都不太对,类比学英文是想当翻译还是想培养外国思维呢?其实都不是的。我们认为编程就是一种能力,一种表达能力,就是你是否能够跟这个世界的很多其他东西发生交互的能力。它本质上就是一种语言,我们更认为它跟英语会很像。学英文是为了跟外国人、跟外界发生交流,那么学计算机语言或者说学编程,本质上就是和物联网、人工智能、计算机发生交互。
我们在教学环境里面,很后面的知识会介绍一点软件工程的内容,但实际上我们不认为孩子一定要当程序员。我们认为无论将来要从事什么职业的孩子都可以来学习编程,因为编程可以极大的帮助你的生活。就像一个英语很好的人,他在任何一个岗位上也都能发光发热。这才是我们觉得编程应该有的状态,而不是说培养程序员。
我们从来就没有认为过程序员这个职业应该是每个人都会做的,所以我们看外界媒体这样报道的时候会觉得这是一个巨大的误区。我们认为编程本质上就是跟学英语和学语文是一样的,它是一个万物的通识。
然后这里面一定会有一部分人走向程序员的岗位,就跟现在会有一部分人成为程序员是一样的,不会因为编程教育的普及,而使这部分人有多大的变化,可能能力会更上升一点。所以我们觉得这是个非专业性的教育,是一个偏通识和偏能力的教育。
颖奇:这些人上了大学或者走上社会的时候,他们可能会有更好的逻辑思维能力。用英语学习确实可以做一个非常好的类比。
孙悦:基本上是一样的。我们始终认为编程不是一个所谓的竞赛,我认为他就是类似英文。学会之后,你就开启了非常多的支线任务的可能性。你没有这个东西也可以活,但是可能你的生活就少了很多可能性。你自己想创业的时候,你有好点子的时候,会编程你就可以直接去做的。
颖奇:我觉得这对社会是有非常大的推进作用的。可能在未来几十年,整个社会都会因为这样的编程教育而受益。就像我们现在出国不需要跟旅行团,不需要带翻译,在国外有生活能力,也都是因为从小的英文教育。现在编程猫是让全社会有这样的编程能力,那未来的一些比如产品形态、社会关系形态,其实都会有所变化。您当时创业的时候,有没有想过公司会发展这么快,变得这么大?
孙悦:其实没有超出意料之外。因为我们自己是有偏见的,我们认为编程就是接下来中国教育或者世界教育范围内最大的一个事件。比如说中国以前是只有数理化,然后到八几年突然加了外语,加了外语之后,突然间就会看到一代人的生活状态,或者一个国家的面貌就会改变。然后再往下的一个时代,我觉得编程就是这样另一个语言,或者另一个学科,它应该被变成一个全民的学科。
颖奇:那么会不会有一些标志性的事件,比如说可能大家现在都不考奥数了,而另一个更好培养孩子逻辑的机会可能就是编程。会有这样的因素在吗?
孙悦:会有这样一些因素在。而另一个因素是,从17 年开始,国家就陆续的在出关于编程教育方面的政策。17 年几乎每几个月出一个新的政策,不断的在深化和落地这件事情,这是一个必然。
颖奇:我记得 1984 年的时候邓小平说了一句话「计算机的普及要从娃娃抓起」,但当时可能物理条件还并不完善。现在的物理条件也满足了,并且政府在推,就是一个大的趋势了。本身编程猫还是基于大势来做这件事的,是有非常好的社会效应的。那我比较好奇,是什么样的背景让您来决定做编程猫呢,您对编程是怎样的看法呢?
孙悦:我跟天驰是辍学创业的,在欧洲读书的时候就出去创业,本科我在国内读了两年多,就学这个领域,然后去了瑞典,再之后去美国工作,是做程序员。实际上我个人是觉得我的能力不止于写代码这件事情,我觉得写代码这件事情给了我很多能做其他事情的能力。比如现在我每天看数据,他们给我 Excel 表格,我都自己写 Python 去做一些相关性分析,因为我以前研究生学的是机器学习。包括我平时的一些思维方式。编程猫做一些数据决策的时候,为什么我们能够去做这样的决策,其实就是跟你的整个计算机思维有关,包括统计学的应用等等。
颖奇:就是把计算机思维高效的运用到日常工作生活中了。最后能否请您推荐一些您觉得在管理、行业认知、商业理解等方面比较有价值的书?
孙悦:我看的书大多是跟教育和认知相关的书,《概率论与统计学》这本书我挺喜欢翻的。第二个是我觉得可以去读一读皮亚杰的认知发展理论,不是一本书,但是这个理论有著作。
这段时间我还读了一本很好的书,叫《创新者的窘境》。这本书讲的东西其实对技术管理者尤其有帮助,就是什么时候是你的技术在错误的地方过剩的时候,我觉得这是技术管理者一定要去思考的。对于技术投入者来说,可能完成 93% 到94% 的时候是小成本,95% 到97% 的时候可能就是大成本了,要时刻关注地段颠覆。那么在做很多决策的时候,就一定要把那些东西放弃掉。
颖奇:这可能是很多 CTO 们都会面对的问题。今天有很多收获,非常感谢您的分享。