2019云计算开源产业大会丨李建盛:在贡献中学习-企业如何利用开源项目/社区获得技能形成

2019年7月3日17:20:00 发表评论 6 浏览

李建盛:大家好!我分享的题目看起来有点学术化,理解起来很容易,要想学习一个东西,尤其是开源,进去学就好了。

2019云计算开源产业大会丨李建盛:在贡献中学习-企业如何利用开源项目/社区获得技能形成

 关于我

X-Lab开放实验室是上海同济大学跟华东师范大学联合办的一个创新实验室,我是开源社教育工作组负责人,我自己写博客。

 为什么我会研究这个题目?

我把自己定义为开源信徒,我们去了解开源的历史,会发现从黑客到OpenStack提出来,这一段历史中可以看到道德伦理或跟商业技术上相互平衡的过程,也会看到有的黑客对钱比较敏感,以及加上我个人的经历。

2018年,TODO Group+ The New Stack联合起来做开源治理的调查。

红帽企业开源调查2019,调查100多个公司是跟红帽关系比较好的,占据69%的数字,这些企业都拥抱开源。

GitHub 2018年发布的报告,中国开发者从2014年-2017年,已经迅速攀升到全球第二大开发者,如果用国民基数或从业者角度说,软件从业者非常多。

组织队伍,前十的队伍从微软到一些高校,中国高校是为0的,国内大厂也是不怎么样的,跟这个比,20都进不来。

比较这些数据主要想证明一个理论,现在的开源产业,无论是企业界还是从业人数,都产生主流的一个形势。

个人经历。

我们组织一些线下活动,照片上这些人提出一个最严重的问题,你说开源,我们参加不进去。当然原因有很多。

我们在做一个功夫编程的平台,也遇到学习的技能要么脱节,要么过时,在企业里隔三差五会看一看理想中的职位值多少钱,现在看到很多职位描述,不管是传统的行业还是新兴的互联网公司,基本后面的项目都是参与过什么开源项目优先、有代码提交优先,要不然把GitHub帐号给我等,开源的技能成为衡量能力非常重要的选项。

举例,目前最火爆的项目——Kubernetes。

两张截图:

1.排名前十公司,Google和红帽两家已经占到70%-80%,华为、微软占据剩下部分。

2.按国家分,如图黄色、橙色是中国。

今天从四个角度给大家讲一下:

一、名词解释

二、开源的性质

三、技能形成

四、如何实践

    一、名词解释

什么是技能形成?

技能解释为个体运用已有的知识经验,通过练习而形成的一定的动作方式或智力活动方式。

现代企业的主要构成就是这些拥有技能的人,比如编程技能、系统管理技能、人际关系协调技能、商业业务技能等等。

企业拥有一定数量所需要技能的人才,我们称之为技能形成。

做中学(Doing by Learning)

做中学是由美国著名的教育学家约翰·杜威在《民主与教育》提出。

实践。比如你要学骑自行车,不能天天学理论,要骑自行车摔两跤,如果学游泳的话,就要进泳池。编程技能是非常注重实践的一个领域。

学徒制。学徒制并没有丢失,虽然本土的学徒制由于一些原因有一些断代,但是在欧美或日本做汽车的行业,有些技能、技巧去作出一个东西,是不可言说的,用语言或文字是很难描述出来的,必须师父亲自去做,徒弟去学的过程。

什么是贡献中学习?

志愿者文化。在开源社区里倡导的是贡献的文化,显而易见的就会涉及到志愿者。我们经常做一些活动,其实志愿者就是在你没有经验和足够能力情况下,用时间和自己一些学习的态度去换取技能,这叫志愿者。

其实在很多情况下,开源项目是由这些志愿者去完成的,当然现在这个事情越来越少了。

要在开源里做贡献,是否需要一位导师。

    二、开源的性质

开源不止是代码或不是一个静态实践的技术,开源面从问题的提出到最终实际解决,以及协作的方式,很多沟通,最后如何做决策,当遇到严重冲突时如何做到平衡,如何解决,社区是否更加重要,总而言之,大家提到的Open Source更多背后是生产软件的流程。

从技术的掌握出发。

“开源”这个词汇经过二十年的发展,今年已经21岁了,已经逐渐在各种各样的诠释下大家都承认一个标准的东西,即开源是开发者创新最好的一种方式。

理解代码,需要找到现实的实际的意义。一个人不可能无缘无故去看代码,或为了看代码而看代码。代码所有人都能看到,所以它才是最终的决胜者,评估一个开发者的好坏,优秀或拙劣,最终体现在代码上。如果这个人要写的代码和要达到的意思不一致,就是很烂的程序员。

开源之所以被开发者所吸引,很重要的是一个开发者、一个程序员只有去读别人的代码才能真正理解一套系统。这就是它能在这几十年当中脱颖而出,而且越来越具有生命力的一个重要特性。

开源为什么能给我们一个机会,让你在贡献中学习?其中很好的是,任何人,不管职业、性别、国籍,是政府官员还是草根,如果你是一条能写代码的“狗”就可以,没有任何门槛,这是开源里最重要的一个特性,也是黑客伦理留下为数不多的一条,即平等,没有任何歧视。你是盈利几亿美元的超级大公司,还是负债累累的酒鬼,都无所谓,都可以参与开源。

经过二十年的历史证明,从多个维度讲,搭便车的人或公司基本都被历史淘汰了。我去年读过一本经济学的论文,跟踪kernel的数据,贡献者越多的公司盈利越多,生存机率越大,一开始没有贡献度的基本都淘汰掉了。这在我们国内是尤其明显,国内Linux发行版很少使用了,最重要的是跟商业脱节,自己把一个开源的上游项目拿过来,跟上游断裂,自己完全玩不转,就是所谓搭便车。这是kernel的理论,大家感兴趣的话,可以联系我。

目前的市场格局(拥抱开源者生)。现在用户去判断、衡量一个公司,是云的提供商或云的供应商,把整个代码的贡献度作为衡量标准。如Kubernetes为例,假如你是一个客户,看到Google出一个产品,红帽出一个产品,一个不知名的公司,如排名第21,甚至干脆没进排行榜的中国某一个角落的某几个人开发的Kubernetes发行版,你会选择哪个?这是不言自明的。

生物学、经济学意义(超级合作者、《助推》),里面提到好几个搭便车的案例。这个世界变化太快了,如果你是一名软件从业者的话,会看到它的交付速度是呈指数级的变化,而开源一旦运行起来,如果不融入这样一个大的潮流,只是拿过来用或者跟上游断裂的去做一些事情的话,很快就会被淘汰。

简单总结:开源有很多好处,不对你做任何审查,可以参与这个事情。但如果你不去参与的话,作为一个行业,可能就会产生一些很严重的后果。

    三、技能形成

如图,一个具有技能的人要掌握很多工具。

如图,这是一个现代开发平台需要掌握的技能集合,首先肯定是语法、语句的写法都要掌握,编译、非编译,要不要空格,要懂数据库,最后还得要不断去学习。你今天不学习,明天可能某一问题就解决不了,而且云厂商越来越多,比如DevOps、非关系数据等等一堆,这还仅仅是一门Go语言。现在软件开发是非常复杂的一项技能了,超越了我们过去所有你对系统管理某一个单独的任务。

企业的视角。

不断的学习正在成为常态。快速的信息技术产业,充满了挑战。开源栈日渐增多。 文化上充满了挑战。

业务驱动!没有什么能跨越这个。  软件交付的变化。

高校教育够不够?短期培训能否满足?

   四、如何实践

现在企业只有一条路,没有别人能帮得了你,高校解决不了这个问题,短期培训也解决不了这个问题。任何事情都需要去变革,既然开源大潮避无可避,就要去迎合,要想办法去变。

鼓励员工:

与世界保持同步。

了解开源、融入开源、传播开源。

金钱与声誉的双重激励。

融入到现有的工作当中。

最忌鼓励员工业务贡献,面临灵魂与肉体的分离,非常人所能。

技术界限划分:

开源技术逐渐下沉。

基础设施、语言程序库。

和业务所依赖的程序区分。

再也没有权威了厂家,强制培训你了。

考核管理:

以业务为准则。

开发者的任务。

对中层的经理提出了一定的要求(挖人)。

量化是开源走向成功的关键因素。

谢谢!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: