GMTC深圳站本周日开幕,14大专题全部上线,完整日程>> 了解详情
写点什么

许式伟:Go+ Together 丨 Go+ 1.0 发布会干货分享

  • 2021 年 10 月 19 日
  • 本文字数:10569 字

    阅读完需:约 35 分钟

许式伟:Go+ Together丨Go+ 1.0 发布会干货分享

10 月 15 日,七牛云主办的「Go+ Together!Go+ 1.0 发布会暨 Go+ 开发者基金会启动仪式」在上海隆重召开。


本次大会中,七牛云 CEO、Go+ 语言发明人许式伟与 Go+ 语言贡献者共同发布了 Go+ 1.0 版本,公布了 Go+ 发展路线图。许式伟以《Go+ Together》为题,分享了为什么需要 Go+、Go+ 的目标,以及 Go+ 未来发展的思路与方向。


以下为许式伟主题演讲的内容整理。



感谢大家来到 Go+ 1.0 发布的现场,对我来说,今天注定是一个非常难忘的日子。

 

去年我们首发了 Go+,今天我可以很自豪地说:Go+ 可以商用了,已经可以进入我们的生产环节!站在未来十年的角度来说,这是一件非常重要的事情。

 

为了今天,我其实也想了很久,最初准备分享的东西比今天的分享内容要多很多,但考虑到时间关系,还是忍痛删了很多。

 

今天我最想讲的东西,包括三个方面:

- 你和 Go+

- Go+ 想成为什么

- Go+ 怎么发展



我知道今天有非常多的非技术朋友,不是我们所谓的编程语言的常规受众,但还是非常感谢大家来参加这一历史性的时刻。我想分享的第一部分内容,便是 Go+ 和我们在场的每一位哪怕非技术人员的朋友也是息息相关的。

   

分享的第二点,便是 Go+ 到底想成为什么,我们的目标是什么?这个世界上编程语言已经有很多了,为什么这个世界还需要 Go+?这是一个许多人会问我们的问题,这也是在这样一个场合我希望能够解释清楚的话题。

 

第三点,我们明确目标以后,到底应该如何发展。Go+ 怎么样才能成为真正意义上的流行语言,我在朋友圈昨天给自己立了一个 flag —— 希望有一天  Go+ 能够超过 Go。这个理想我认为不会特别遥远,为什么我会有这样的看法,Go+ 到底靠什么样的魅力去发展,才能够超过 Go,这是我想分享的第三个话题。

一、你和 Go+



首先,我们来聊聊大家和 Go+ 的关系,为什么你会关心 Go+,以及编程语言和大家的关系。

 

在聊编程语言之前,我想先聊聊自动化的进程。人类的历程到现在已经有两千多年的历史,最早的是手动劳作阶段,没有任何自动化可以帮助我们提高效率。机械自动化是我们认知的第一个自动化进程,它的代表性事件是 1776 年蒸汽机的出现。



机械自动化背后的逻辑是「硬件即程序」。其实程序的概念就是自动化,而机械自动化时期最大的问题就是「出厂即巅峰」,一个机器从出厂的时候就明确了是什么功能,不能再进行后续的迭代改变。

 

编程语言的出现是我们可以改变自动化的程序,软件定义程序的一个重要标志性事件,是 1941 年电脑或者计算机概念的出现。

 

回顾历史,更重要的是为了展望未来。我们从今天看向未来的 10 年 50 年,自动化的进程还会如何演进?



我和很多朋友分享过我的判断和观点。


首先是未来的十年会发生什么?我认为大概率就是我们经常听到的一个词 —— 软件自动化吞噬一切。在今天之前我认为这还只是一个口号或者说方向,毕竟这个词其实出现得蛮久了,但软件真的吞噬一切了么?其实并没有,因为有太多的东西仍是机械自动化和手工劳作的方式。


此前软件自动化主要的范围是消费互联网,现在转头到产业互联网,所有的产业都将互联网化,而这个互联网化的过程本身就是软件自动化的进程。我觉得未来十年会完成软件自动化进程的全部,所有行业都会全面进入软件自动化的阶段。

 

第二步,我认为我们应该站在更远的维度来观察,来看 50 年后。我认为到时软件自动化会实现一次重要的进化。大家都在提大数据、人工智能,其实这就代表着软件自动化的下一个阶段,从代码驱动进化到数据驱动,从 IT 全面进化到 DT。

 

有了对未来的判断,其实对我们如何判断、理解编程语言这样一个基础领域的趋势发展,是非常有帮助的。而十年、五十年的发展趋势,跟我们到底有什么关系呢?



首先,既然所有的行业都会被软件自动化所吞噬,那么在座各位无论是医疗、教育或者其他领域的朋友,都和软件自动化会产生最直接的关联。尤其,我们的下一代更是如此。

 

现在人工智能很火,引起了一批小孩子学习 AI 的热潮,但从我今天的视角来看,学 AI 对他们有点儿早。如果他们在八岁到十岁这个年龄段的话,其实是他们开始学编程最好的时间。

为什么我会这么认为?我们先来看一下编程语言到底是什么。编程语言从最直接的逻辑来说,其实是一个表达工具,是驱使电脑按你的想法做事情的工具,也就是是表达你思想的东西,在这个维度里它和自然语言是非常相似的。

 

但它和自然语言不同的是,它是让电脑帮你干事情,实际上也就是实现软件自动化的手段。很多人对编程语言有恐惧,实际上它一点都不高深,如果你理解它背后的逻辑的话。



刚才的话题其实比较直白,相信很多人都可以理解。下面想和大家讨论一个非常核心的问题 —— 未来人类文明对代码的依赖到底有多大?对于这个话题我有着一些自己的看法。


首先,我会把知识看成两类: 

- 第一类:科学理论以及人文

- 第二类:工程技术

 

我认为:工程技术的知识密度远高于科学理论:一项科学理论,可能对应成千上万的工程技术应用。

 

科学理论是抽象的,比如说牛顿三定律,它可以用自然语言表达得很清楚。用文字表达基本上可以满足科学理论表达的需求。


但当我们去看工程技术,比如说我们要造原子弹,如果我们仍然用文字来记录工程技术,有一个问题就是它是不精确的。不同的人看到同一句话,含义的理解完全不一样。不精确的表达,产生的一个巨大问题——便是存在技术失传的可能性。但我们如果用编程语言来记录,是可以实现精确传承的,不会出现过了若干年后的人类看不懂这个技术。这是编程语言带来的很巨大的变化。



理解了这一点,那么接下来是我最想分享的一个观点 —— 编程语言是更高阶的文明密码。编程语言会成为人类文明的底层基础设施,因为它改变了人类记录工程技术的方式。这是一个很重要的理论。

 

如果不懂编程,你可能只能理解部分科学理论,但可以获取的知识范围可能只是所有知识的千分之一。因为占这个世界上绝大部分的、更大密度的知识来自于工程技术,也就是需要我们用编程语言去精确传承的东西。如果不懂编程,就意味着有可能是看不懂未来绝大部分的知识,某种意义上来说就是另外一种“文盲”。

 

从这个意义上来看,编程语言虽然在人类发展两千多年以后才出现,但却代表了更高阶的文明密码,它是传承人类知识体系的一个工具,这是我个人对编程语言的看法。站在这个维度来看,编程语言和我们所有人都有非常密切的关系。



下一个话题是,编程语言是不是很难掌握?


我前面其实回答了这个问题,但我还是想和大家分享,编程语言其实比自然语言好掌握得多。

 

编程语言会学习自然语言的一些表达方式,以便让大家更容易看懂,但同时编程语言不会完全抄袭自然语言,因为它不需要传承自然语言的复杂性。好的编程语言的语法规范都遵循更少、更精炼、更精确,比如像 Go 和 Go+,基本上一两周便可以学会。

 

大家可能觉得一两周学会一门语言好像挺夸张,但这实际上是我教育自己孩子的教学经验。专业知识是另一个话题,而一门编程语言的基础语法以及核心的表达能力,基本上两周便可以教会。编程语言其实比大部分人想象的要简单得多,因为它本质上只是一个表达思想的工具。

二、Go+ 想成为什么?



第二个大家可能感兴趣的话题,是 Go+ 想成为什么。


2020 年 7 月份发布 Go+ 的时候,大家都知道 Go+ 的 slogan 是「为数据科学而生」。但是前阵子我们把它换成了「for engineering, STEM education, and data science」,它是三位一体的。

 

这么看好像它的目标太大了。七牛内部的同事也会说,「三位一体」是否意味着  Go+ 失去了焦点、Go+ 不知道要成为什么。Go+ 的重点到底在哪里?这是很多人看到 slogan 以后第一个冒出来的问题。



在谈 Go+ 的「三位一体」之前,我想聊聊乔布斯 iPhone 的「三位一体」。这些截图都是从 2007 年乔布斯的演讲里面截出来的。iPhone 的「三位一体」,分别是宽屏的 iPod、革命性的电话,还有绝佳的互联网访问体验。


这三个东西让 iPhone 失去焦点了吗?

 

我认为其实很多时候,今天的科技革命本身就是跨界融合的,跨界融合是接下来科技进化的一个非常重要的主题。



为什么编程语言需要跨界融合?首先,我想讲讲 Go+ 的三位一体代表了什么,解释一下三位一体的意思。


这三个解释的语言特意用英文,原因是我想在这个发布会结束以后放到 Go+ 的网站上。

 

第一点 for engineering,我们认为对工程师来讲,我们的变革意义在于你可以使用一个最简洁的,连儿童也能掌握的语言去工作。这在工程领域我们认为是非常重要的一个进化。大家都知道低代码这个概念现在非常火,但真正降低表达门槛最内核的东西,其实是在语言层面的变革。

 

第二点 for STEM education 这个领域,我们希望小朋友从小学学习的便是一门工程语言,以便于他在未来的工作中可以使用。好像我是在兜圈子?是的,跟刚才的观点一样,我们只是换了一个角度来看这个问题。但我认为这个事情是非常重要的。我们可以看到今天的教学不是这样子的:小朋友刚开始接触的第一门编程语言大概率是 Scratch。但 Scratch 是不会在工程里面使用的,所以一定还需要去学习其他的语言。我们希望初学者可以从头就学一个工程语言,而这一点显然是可以做到的。


最后一点 for data science,我们希望让工程师和数据科学家可以用相同的语言去对话。我认为这一点是对数据科学,或者 Data technology 时期的人才培养是至关重要的。


我们一一展开来谈。



首先我认为,工程与 STEM 教育一体化是一个大的趋势。


第一个逻辑是我们刚才提到的,未来十年大概率软件自动化会吞噬一切,一切行业。在这样一个背景和过程中,我们必然面临的一个最重要的挑战,就是工程师从何而来,今天工程师的数量是远远不够的。目前工程师的体系培养并不是那么完善,这个趋势会反向倒逼工程师培养体系的革新。我认为 Go+ 其实是第一个直面工程师培养体系变革的语言。

 

今天 STEM 教育与工程界是割裂的,学校教的往往是工程界不会去用的,或者已经不怎么去用的东西。企业招聘大学生非常痛苦的一点,就是学校教的和我们要的是两码事,相信开公司的人都非常理解,在公司里面做管理、需要去校招的人也都非常理解这一点。

 

如果我们让一门工程语言简单到可以让七八岁的小孩可以掌握,那么自然会使得教学语言就等于工程语言。这件事情我认为是非常巨大的变革,因为我们让产学研真正地走向了一体化的道路上,而产学研一体化正是我认为工程师培养体系革新的一个非常关键的、最内核的事情。

 

如何让学校和产业用相同的语言去对话,而不是各搞各的,这是一个非常重要的事情,我们希望 Go+ 能够承载这样一个使命。所以关于 Go+ 第一个我能看到的趋势,便是工程与 STEM 教育的一体化。

 

刚才说的所有趋势与未来有一个前提,需要有一门工程语言可以被七八岁的小孩所掌握。Go+ 可以被中小学生所掌握吗?


其实,Go+ 目前的案例中有一半是小孩子贡献的,这里我们和大家分享两个案例:



第一个案例非常简单,实现了几个角色的对话。这个在是 Scratch 教学里往往是第一堂课或者第二堂课去教的东西。



第二个例子就非常复杂了,比较接近工程级的飞机大战。今天我从一个过来人的角度来说,很高兴的一点是 Go+ 完全可以被七八岁的小孩学习、使用。当然七岁可能太早,我个人的看法是 8-10 岁左右是开始学习编程的最佳年龄段。



那么 Go+ 到底变革了什么,或者说做到了什么 Go 没做到的事情?


我认为最重要的有两件事:

 

第一,对于初学者,Go+ 隐蔽了工程的复杂性。他们不用一开始就去理解什么是函数、模块等工程上的概念,这个事情对小孩来说太难了,我们一上来就把这件事情干掉了。


第二,使用了更加接近自然语言的表达。我这里也贴了一个例子,是一个猴子吃香蕉的例子。当猴子运动的时候,检测香蕉是不是和猴子碰撞,如果是就代表猴子吃掉了香蕉,游戏结束。被吃掉的香蕉数量加一。这个代码超级简单,基本上不会编码也能看懂,这就是 Go+。


这也是我们认为 Go+ 做到了 Go 没有做到的东西,可以让一个非常小的小孩,基本上会写文章就会写编程。我一直在试图解除大家对编程的恐惧时都会说,会写文章的人都能够学会编程。编程语言的语法比自然语言少太多了,大家一点都不用害怕。这个是很有趣的一件事情。



第二个我认为的趋势,工程与数据科学的一体化。这也是很重大的趋势。


在我之前 Go+ 的分享中,大部分的主题都是「Go+ 与数据科学」,所以今天这个话题我会简略讲。对这个话题内容感兴趣的朋友可以搜一搜我以前演讲的内容,这里我只是把主要的逻辑和大家做个分享。

 

第一,未来五十年软件自动化将全面从代码驱动进化到数据驱动,这个进程非常依赖一个新的大家相对比较陌生的新角色:数据科学家,或者叫数据工程师。数据科学家在未来将继续迎来人才需求的爆发式增长。

 

AlphaGo 火了之后,AI 热潮一度让数据科学家的工资比程序员的高多了。这其实是因为相关的人才太少,不好找。这个岗位从能力来说,他需要有开发工程师的背景、有数学统计的能力,还有对于商业有一定的感觉。所以这个角色的能力要求是比较综合的。


培养一个合格的数据科学家的一个最有可能的方式,便是从工程师中来,这是一个非常自然的人才培养路径。


这个世界上有非常多专业的领域,也有数据科学家专用的语言,最典型的就是 R 和 Julia。但为什么最后是 Python 胜出了?刚巧,这个月 Python 进了语言排行榜的第一位,把 C 和 Java 给踩了下去,我认为这是一个非常标志性的事件。

 

这背后的逻辑其实很简单,就一点:因为 Python 的工程师人多。Python 工程师多,那么数据科学家便从 Python 工程师中来,这是最自然的一个人才培养路径。所以 Python 成为语言排行榜的第一本身就代表了一个重大的趋势——工程与数据科学家的一体化。



我们总结一下这些趋势:

- 工程与 STEM 教育的融合,解决工程师培养的体系;

- 工程师与数据科学的融合,解决的是数据科学家的培养体系。

 

这也是 Go+ 为什么要做「三位一体」。我们认为这两大融合解决了当今对信息科技人才的核心诉求。


我们让工程师与学校的学生用相同的语言来对话,从而实现产学研一体化,完成工程师培养体系的构建。我们让工程师和数据科学家用相同的语言来对话,从而完成数据科学家培养体系的构建。


这就是 Go+ 的三位一体。

三、Go+ 怎么发展



第三个大家非常关心的问题是 —— 你能发展起来吗?Go+ 凭什么能够发展壮大,又凭什么实现超越 Go?

 

第一个我想谈的话题是编程语言的流行密码到底是什么,一门语言凭什么去判断是否会流行,背后到底靠的是什么。


大家都知道 Go 语言是 2009 年发布的,等到 2011 年七牛云成立时才推出了两年的时间,还没有发布 1.0 版本,直到 2012 年 4 月份 Go 语言才发布了 1.0。Go+ 1.0 的发布节奏比 Go 要快得多,我们一年多就发布了 1.0 版本。

 

为什么 2011 年 Go 还是婴儿的时候,我们就会认为这个语言未来会非常厉害呢?


我认为判断编程语言的流行密码有几个要点:

 

第一,价值尺度:从语言价值本身来看这个语言有没有流行起来的潜质;


第二,开源与社区生态:从这个维度来看语言有没有足够大的 “靠山”;


第三,杀手级应用:这门语言能被用在哪里,又可以先从哪个地方突破。


这三个维度,我认为是语言流行密码中最重要的逻辑。


我们先看价值尺度。从价值维度来说我认为这几个点非常重要:



第一点,少就是指数级的多。我超级喜欢这句话,这句话对我的架构或者工程思想的影响是无比巨大的。语言的强大之处不在于有很多的功能,而是在于用足够少的功能去表达足够强大的能力。

 

就像很多人试图写超级长的 PPT,但我一般评判一个人牛不牛逼,在于你是不是用了足够少的页数把你想表达的事情给讲完了,这个才是最强大的。

 

Go 语言最核心的价值观就是语言的特性最小化原则,功能少而精。其次就是自然(避免惊讶)。不要有一个语言的特性会让你一楞为什么是这样的,而应该是你看到的时候觉得这个东西就应该是这样的。首先语法要少,其次是要自然,所见即所得,不应该额外通过文档去进行解释。

 

第二点,学习成本。

 

学习成本包括两块,第一是入门的门槛有多难,第二是后续的学习成本有多高。Go 和 Go+ 都会坚持一个原则,就是语言要一两周就能学会。这背后受益的其实就是「少就是指数级的多」这一价值尺度,受益于「语言特性最小化」的原则,所以入门的门槛超级低。


语言后续的学习成本,要看未来预期。这句话的意思是,能否使得语言特性保持长期稳定不变,从而降低未来的学习成本。Go 语言未来 20 年大概率不会怎么发生变化,出厂的时候基本就是大家未来预期的样子。这是一个无比重要但也非常难的事情,因为大部分语言是做不到的。


对于 Go+ ,我们希望 Go+ 1.0 的样子就是未来的基本模型,当然数据科学部分我们还会增加一些「料」,但大体上是不会变的,因为我认为从技术视角来说是需要克制的。


在 Go+ 之前,我们看到有两门语言做到了,Go 语言和 C 语言。C 是 60 年前出现的语言,但今天来看和它刚出来的时候的样子是一致的,几乎没什么变化。为什么一门发明于五六十年前的语言在今天仍能排名第一,刚刚才被 Python 拉下来,其实就是因为语言的特性保持了长期的稳定不变。

 

第三点是性能。一门语言就应该是具备高性能,这一点来说重点是做到润物细无声。它不是需要用户去理解所谓的特性,而是需要自然具备的属性,而不是一个功能。很多语言优化的时候,是需要用户去做额外优化的,而「润物细无声」的意思,就是用最自然的表达方式,天然具备高性能,在不需要额外增加使用负担的情况下,性能越高越好。

 

这三个特性其实就是一件事:功能越多越强大越好,我花的学习成本越低越好。两者一除,显然所谓的价值尺度其实就是性价比。所有的东西都讲究性价比,语言也是一样,用最小的东西表达最强大的能力。



第二个流行密码,我认为是开源与社区生态。

 

语言是非常内核的东西,程序员学会一门语言后,让他再去换是非常困难的,所以要有一个让他们换语言的逻辑。Go+ 要发展起来不能没有强大的「爸爸」,我们能不能给自己找个「靠山」?社区生态背后的逻辑其实是这个。

 

Go+ 采取的是兼容并蓄,继承多重社区生态。我们想在每个领域都找到强大的「靠山」。那么有哪些社区生态需要去兼容、去继承?

 

首先,工程第一的 Go。在工程领域,我们选择的是兼容 Go,我们的语法特性是兼容的,Go+ 是 Go 的超集。当然我们也坚持刚才说的「语言特性最小化」原则,在 Go 语法特性的基础上,加最小的功能。我们认为 Go 是未来增速最快的语言之一,而 Go+ 会比它发展得更快,并最终超过 Go。

 

其次,教学第一的 Scratch。我在自己教小孩的时候,真的是非常佩服 Scratch。这个语言出现得非常早,但是厉害在什么地方呢?这个语言功能上来说真的很弱,我相信所有的工程师都瞧不上这门语言,但是有人拿它写《我的世界》。

 

这很有意思。《我的世界》是超级复杂的游戏,比我们大部分看到的游戏复杂得多。为什么会有人拿 Scratch 写《我的世界》?我当时看到的时候觉得很诧异,但后来理解了。教育这个问题上为什么大家这么内卷,其实就一点大家都非常关心的下一代的教育问题。


为此我们做了什么事情呢?引擎能力和设计兼容 Scratch,并在此基础上实现自动化代码转换。Go+ 的引擎是完全兼容 Scratch 的。这个有什么好处呢?工程师的培养体系里面,最难的一件事情其实是教师人才,老师是比较匮乏的。Scratch 培养了那么多的教学资源,是 Go+ 非常 “觊觎” 的,所以我们选择了兼容 Scratch,来打下进入教学领域的扎实基础。

 

最后,数据科学第一的 Python。我们做了一个很大胆的决策,这个决策背后的技术实现难度是超级高的,当然今天还没实现,还只是一个牛逼,但是先吹出去再说。

 

我们计划在 Go+ 做到可以直接 import Python 的包,这用来解决 Go 和 Go+ 在数据科学领域的一个大问题,也就是社区生态的薄弱。Python 数据科学领域的包遍地都是,如果能实现这一功能便能解决了兼容 Python 的问题。目前我们还在构想如何才能实现,我已经琢磨过怎么做,而且是大概率可以实现的。



编程语言的第三个流行密码,就是「杀手级的应用」。


任何一门语言都需要杀手级的应用,Go 的杀手级应用大家都知道了。Go 主打的领域是后端编程领域,今天云计算的基础设施基本都是用 Go 写的,像 Docker,像 Kubernetes。今天云公司没有一个不用 Go 的。云计算的基础设施就是 Go 的杀手级应用。

 

那么 Go+ 应该从何开始?从哪里开始?我们的杀手级应用是什么?

 

这个问题我自己思考了很久,我今天的答案其实很简单,我们从工程与 STEM 教育的一体化开始,我们从工程师的培养体系的构建开始。


所以我们的竞争对手是谁呢?是 Scratch。

 

我们的竞争策略超级简单,第一生态资源兼容,Scratch 的东西我都可以用,能力兼容,我的功能要比它强大得太多了。


第二,我认为是很核心的逻辑,是产学研融合的路——产学研一体化。这个是 Scratch 做不到的,因为在工程界没有人能瞧得上 Scratch。但是这门语言进了语言榜前 20 名,还是很厉害的。

 

Go+ 要赢 Scratch,至少要进前 20。Go 上个月是第 12 名,我们要赢过 Go,就要进前 10。差不多是这样的逻辑。

 

和 Scratch 竞争上,我们的竞争口号就是:你不用从一门玩具语言开始学,可以一上来就学一门以后工作需要的一个工程语言。这点我认为 Go+ 是能做到的,高维打低维。从能力上,Go+ 比 Scratch 强很多,性能上更不用说了,剩下来缺的就是师资力量以及整个生态。

 

对此我自己还是很兴奋的。在今天的发布会前,有非常多的五花八门、不同行业的人找我聊 Go+ 的合作,但我的想法是收敛,有选择性地想先选择和教育相关的人群。我们从工程师的培养体系开始,希望通过这个变革让中国的工程师远远超过其他国家。

 

大家都知道华为有一个很核心的逻辑,叫做「饱和攻击」。毛主席当年也讲过这个逻辑,军事上最简单的逻辑就是用一倍的兵力打必胜的战斗。《孙子兵法》也有类似的观点,叫「先胜而后战」,要有足够的兵力和足够胜算条件去打必胜的仗。


所有的逻辑都是讲资源的倍数级的关系是胜负的关系。中国要想科技兴国,首先要有比人家多的多的工程师人才,最好是人家的一倍以上。这非常依赖工程师培养体系。Go+ 希望能够承担这个职责。


大家都知道,Go 领域最好玩的一件事情是曾经在网上流传了一个问题:为什么 Go 在中国最火?这个搜索指数远远高于其他国家,这是因为中国工程师的需求量大。如果 Go+ 可以为国家培养有足够多的工程师人才,那么 Go+ 也就必定会进入编程语言榜的前十。


那么,为什么 Go+ 在 STEM 教育里面会有独特的价值?


昨天我和一个朋友吃饭,他给我提起了教育 2.0 的概念。在欧洲比如芬兰和丹麦有一个基于 PPL 的教育 2.0 的教学模式,我听完这个逻辑以后发现跟我提的教育理念超级像。


所以我这里把教育 2.0 沿用过来,它其实也就是我之前一直提倡的编程是新时代的「劳技课」。这个背后的逻辑是什么呢?是让学生学以致用,而不是一直不停地学。



其实学习是非常反人类的,大家都不爱学习。什么样的状况会让一个人会不停地学习?最核心的逻辑就是让他去创造,让他学以致用,让他获得成就感。所以找到学习的乐趣就是让他创造。


我提的新时代的「劳技课」的概念,就是让学生去劳作、去创造,而不是只是不停去学习。从创造中找到自己知识的薄弱点,反过头来饥渴地去学习,去补足自己不了解的知识,这是教育 2.0 最内核的逻辑。

 

这就解决了教育反馈环太长的问题。为什么家长小孩现在非常焦虑,原因就是教学是非常反人类的事情,家长投资了 20 年,20 年后才能看到结果,才能知道这个孩子到底行不行;小孩学了 20 年,20 年后才知道自己行不行。如果你是投资人,你投资会投 20 年吗?不会,早就中途卖出了。

 

我跟我儿子学校的老师也交流过,我认为编程最重要的不是增加一门课程,他们的压力已经够大了,增加一门课程没有任何意义。核心我们要解决的是教学闭环的问题,这个才是真正实质性解决问题的方法,这就是教育 2.0,我认为是很重要的。

 

第二个是产学研一体化。产学研一体化最内核的逻辑是把真正的生产力工具推到教育领域,这样就能解决我刚才吐槽的问题——学校教的和公司要的是两码事。

 

我们只有把工程师用的东西推广到教学领域,让教学真正用起来,才能真正解决学校教的就是企业需要的,企业和学校联动会更紧密,实现在学校阶段的联动。

 

在今天和学校的联动其实仍然是巨头的专利,大部分公司是没有这样的能力的,如果我们把产学研联动一体化做好,使得所有的公司都能和学校联动,这是我认为解决工程师培育体系、实现产学研一体化很内核的一件事情。如果我们能够把这一点做好,就能把工程师培育体系实现真正革命性的变化。



这张图我想讲内容里面,和 Go+ 有关的最后一页。

 

「学习的目的,是为了解决现实生活中的问题」,这是我在 2017 年去美国游学的时候,斯坦福校长给我们的演讲,开宗明义谈什么是学习。他们从教育机构角度来看什么是学习,这句话对我的触动非常大。我们学习,到底为什么而学?其实就是要去学以致用,创造,要去解决我们现实中的问题。

四、开源是对知识产权的最大保护



最后,再次感谢大家能够过来捧场,在座大部分人都是技术人员,所以在结束之前,我想和所有的技术创业者聊一个话题 —— 开源对 PaaS 来说是最好的商业模式。


你不能把自己的竞争壁垒放在巨头不会模仿你的基础上。今天我想和大家分享的,是怎么样才能让巨头不会抄?这是很重要的。

 

首先,「开源是对知识产权最大保护」。关于这一点,我想举一个例子。MySQL 和 SQL Server 是大家都知道的战役,MySQL 比微软的 SQL Server 技术牛吗?其实不是的,MySQL 比微软 SQL Server 技术上还是要「差一点点」的。


但 MySQL 为什么赢了呢?我认为这不是技术的胜利,这是机制的胜利。开源是创造、构建你的竞争壁垒,并且是维持这个竞争壁垒非常重要的手段。

 

这里其实还有有一个逻辑。开源能够让巨头想抄也抄不了的。

 

这里首先是心智负担问题。署名抄袭和匿名抄袭的心理压力完全不同,署名抄袭,首先提交代码的开发者会有心智负担,他不愿意被骂。其次巨头大概率也会爱惜自己的羽毛,也会克制一点。相信大家都会有类似的感受,在 BBS 上一实名大家就都不说话了,这就是署名的威力。

 

其次,巨头它抄了也没用。开源有巨大的虹吸效应,所以开源界很难有第二名,巨头就算抄了以后也是赢不了你的。

 

我最后分享的内容,可能跟 Go+ 无关,当然它是 Go+ 为什么选择开源的原因。但更重要的一点是,今天是技术创业的好时候,我想从自己作为一个老牌创业者,国内最早的技术创业者的角度,来给大家的一个建议。今天去思考 PaaS 创业,最合理的创业模式就是开源。


谢谢大家!

2021 年 10 月 19 日 18:162979

评论

发布
暂无评论
发现更多内容

13年Java开发经验精华总结!29大核心知识模块,带你直达架构师!

Java架构追梦

Java 阿里巴巴 架构 全栈知识点

Rust从0到1-枚举-match控制流

rust 枚举 match

【详解文件IO系列】讲讲 MQ 消息中间件 (Kafka,RocketMQ等)与 MMAP、PageCache 的故事

Linux服务器开发

网络编程 Linux服务器开发 底层实现原理 网络io C++后端开发

web简易视频聊天室+媒体流插入

anyRTC开发者

前端 音视频 WebRTC RTC

我们真的可以使世界成为无密码的地方吗?

龙归科技

网络 安全性

翻译:《实用的Python编程》09_01_Packages

codists

Python

深入浅出带你掌握线程、多线程和线程池

华为云开发者社区

Java 线程 多线程 线程池 操作系统

合约量化交易机器人系统开发|合约量化交易机器人APP软件开发

1分钟get什么是训练数据

澳鹏Appen

人工智能 机器学习 数据集 人工智能大数据

合约跟单交易系统开发量化策略

薇電13242772558

数字货币

5分钟教你学会GaussDB数据分布策略设计

华为云开发者社区

数据库 分布式数据库 GaussDB GaussDB(for openGauss) 数据分布

如何利用ipad随时随地开发代码

程序员石磊

ipad 编程 远程

量化合约机器人APP开发|量化合约机器人软件系统开发

系统开发

浅谈BSS3.0产品“守成”之策上 • 架构提升篇

鲸品堂

运维 性能 架构·

HTTPS双向认证

上海派拉基础研发

https HTTP ssl SSL 连接

微擎的日志文件保存在哪里?如何查看。

微擎应用商城

从能耗大户“变身”智能绿色办公,只需一步到位!

IoT云工坊

物联网 API sdk 办公空间 智能转型

Linux df 命令

一个大红包

linux命令 4月日更

【LeetCode】删除排序链表中的重复元素Java题解

HQ数字卡

算法 LeetCode 4月日更

与同事组队,用 3s 把工作节点打通,建立信赖与协作关系。

叶小鍵

量化合约交易机器人系统开发|量化合约交易机器人APP软件开发

系统开发

Kafka源码阅读笔记(1)

InfoQ_Springup

kafka

11 个非常实用的 Python 和 Shell 拿来就用脚本实例!

JackTian

Python 程序员 Shell linux运维 脚本语言

合约量化机器人系统开发|合约量化机器人软件APP开发

系统开发

vue2的$refs在vue3组合式API中的替代方法

devpoint

Vue3 $refs vue2 this.$refs

MySQL性能监控与调优

Sakura

4月日更

这份阿里P8大佬手写的 “Java核心面试精选” 疯传阿里内网

码农之家

Java 编程 程序员 互联网 面试

百度联合清华,全球首个十亿像素数据集来了!

百度大脑

人工智能 百度

十大经典系统架构设计面试题

程序员石磊

架构 面试 架构设计

Google Analytics

曦语

数据分析

数字货币自动交易机器人APP开发|数字货币自动交易机器人软件系统开发

系统开发

2021星空论坛:破局创新,论道数字化转型

2021星空论坛:破局创新,论道数字化转型

许式伟:Go+ Together丨Go+ 1.0 发布会干货分享-InfoQ