破解数据库内核人才困局:PingCAP 的思考与尝试丨Talent Plan 专访

本文主要是介绍破解数据库内核人才困局:PingCAP 的思考与尝试丨Talent Plan 专访,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数据库最早可以追溯到上世纪 60 年代,和当代电子计算机属于同一时代的产物。从问世那一天起,数据库就承担着向上支撑应用软件,向下调动系统资源的功能,在 IT 架构中处于核心位置,被誉为“软件行业皇冠上的明珠”。但国内数据库领域研发人才紧缺,严重影响着数据库产业发展

那么,数据库人才究竟为什么会短缺?又该如何解决数据库人才面临的挑战?带着这些问题,我们采访了 PingCAP 高校关系与人才生态负责人王岩广老师,请他分享 PingCAP 在数据库人才领域的思考与尝试

,时长20:22

数据库的人才挑战

以国内的人才需求状况为例,高校毕业科班出身并投身于分布式数据库的开发者,每年只有 6000 — 7000 人。但对应到数据库行业,对人才的需求量究竟有多大呢?王岩广老师给出了一个数字—— 10倍,也就是每年需要 60000 — 70000 人。这个缺口不容小觑,如果不加以重视的话,数据库开发者就会面临新鲜血液短缺,甚至缺乏持续动力,面临“后继无人”的境地。

目前,国内高校中关于数据库的课程设置,还是以数据库使用及基于 SQL Server、MySQL 或 Oracle 等数据库做应用开发为主。从课程角度看,以关系型数据库为例,主要分为三类:一类是关于数据库表、数据的组织方式,如集合论、关系代数、关系范式、SQL 语言;一类是关于 DBMS 实现的课程;还有一类是工业界数据库的管理运维课程。

然而,在近十几年中,中国互联网经济带来的对于数据管理复杂度的需求,已经催生了对更复杂 DBMS 内核实现人才的需。但社会需求传导回高校教育尚需时间。

可能有人会问,除高校外,社会中也存在各种各样的的数据库技术培训机构,他们为什么不能填补这个人才空缺呢?这主要是因为相对于数据库内核开发岗位而言,对数据库使用或管理运维的岗位需求总量更大,社会培训机构普遍瞄准的肯定是更大空间的数据库运维市场,而对于 DBMS 开发这样知识路径很深,且需要掌握编译原理、操作系统、分布式系统等基础知识,同时从整体人才需求量而言又不像前者这样大的课程缺乏投入动力

PingCAP Talent Plan 的缘起

2018 年,PingCAP 创始人团队的刘奇和崔秋一起去美国湾区,参加了一个数据库行业会议。他们注意到一个令其印象深刻的现象,那个会议里有很多讲师是从教育界和学术界来的,包括一些教授、讲师甚至博士生。他们发现,这些人的理论水平、科研水平、工程水平都很厉害,这件事情对他们触动很大,于是回国后他们敏锐地决定要与高校开启一些科研合作。

这就是 Talent Plan 的缘起。为了解决数据库内核人才挑战,PingCAP 推出了开源数据库开发课程 ——Talent Plan 。通过联合优秀高校和企业,面向全国各高校数据库开发人才培养打造最佳实践平台,通过结业考核的学员还将获得官方认证的结业证书。

“分布式数据库和分布式系统都是比较新的领域,回想起当年刚学习这些内容时最大的困难就是没有系统的理论+循序渐进的实践结合的平台和课程,只能一边看零散的资料一边在工作中摸索,于是就有了做 Talent Plan 的想法,很高兴看到当时的初心现在变成了现实。” 

—— PingCAP 联合创始人兼 CTO 黄东旭

与高校进行科研合作,需要学生能够理解工业界产品,Talent Plan 就成为将学术界与工业界连接起来的那座桥梁。与 PingCAP 有合作关系的学校学生都能通过 Talent Plan 快速地了解 TiDB 等产品。

2018 年,一个迷你的 Talent Plan  0.1 版本开设起来了。从 0.1、0.2 到 1.0、2.0, Talent Plan 的路径模块、材料不断增加,不断迭代升级,目前学员已经累计超过 2000 多名

Talent plan 课程体系特点

在学习过程中,很多学员会将 Talent Plan 与 MIT 6.824 这样的侧重分布式理论的课程相比较。实际上,Talent Plan 是一个比  MIT 6.824 大得多的课程体系。MIT 6.824 严格意义并不是个数据库课程体系,它主要讲的是分布式系统,在 Talent Plan 中,PingCAP 为了致敬,用 Rust 语言重新实现了一遍 MIT 6.824 ,将其作为一个课程组件。

据王岩广介绍,Talent Plan 的课程体系中包括了 GitHub 如何用、开源怎么协作,甚至还有 Rust 和 Go 语言的基本功训练。为了帮助理解 TiDB ,Talent Plan 课程中还提供了 TinyKV 和 TiDB Server  的教学版本 TinySQL。

对于学员而言,Talent Plan 的课程具有很高的难度。例如,如果想要全面理解像 TinyKV 这样的模块大概要用两个月时间,每天需要花四到五个小时,是非常挑战的一门课。所以有些学生在学 Talent Plan 前,就会先去学 MIT 6.824 ,对 Raft 协议有一个基本的认识后,才会着手去学习 TinyKV。因为 TinyKV 里面除了 Raft 还有 Multi Raft、 MVCC 以及分布式事务模块,光这一个模块就比 MIT 6.824 要多很多东西,学习的工作量很大,可以说真的是一个“小火焰山”。

如何保证学习体验?

为了让更多学员不会对体系庞大、内容艰深的 Talent Plan 课程望而却步,或是半途而废,

平缓。

第一,举办学习营。

春节前,王岩广老师的团队刚刚举办了一期 Talent Plan 学习营。学习营以线上自学为主,参加学习分享讲座为辅,PingCAP 会邀请往届毕业的学员做导师,将自己学习过程中遇到的坑和必要的知识点分享给其他学员,帮助学员们将时间用在真正关键的学习上。学习营规模每期大概在 100-200 名学员,春节前这期参与人数甚至达到 400 人。

第二,Talent Plan 课程体系演进。

PingCAP 目前正在进行 Talentplan 3.0 的迭代。目标也是为使学员学习课程更加平缓,增加一些必要的基础知识信息。同时也会办一些短期培训,比如和中国计算机学会合作,在 VLDB 夏令营上就做过为期 6 天的集中短训

另外,PingCAP 还会通过举办一些比赛,吸引一些在数据库的开发和运维方面比较优秀,有学习数据库开发潜质的学员。同时,课程相关的文档也在不断积累。但是学习当然是密度较大的、常态化的,也是需要一直跟进“打卡”。

未来,PingCAP 还会将 Talent Plan 变成一个学习社区,这就不仅仅是 PingCAP 一家公司来主导了,里面的所有参与者都是利益相关方,资深的成员会很自然地形成帮带制度,高分学员还可以成为导师,来自一线工业界的工程师也可以进来指导开发经验。大家共同努力,共同享用,建设一个全新的、开放的、共享的、共治的,以开源模式引领的一种学习社区。

第三,通过学习社区共创一本 Talent Plan 的书。

之前,Talent Plan 虽然也有电子文档、论文、资料、PPT、实操课等,但一直没有一本实体的书。国内学生的习惯还是希望能有一本比较系统的书,

从概念到实操到作业,像是教材一样。有了这样的主线,学习体验也会更好一些。

拥抱开源的课程

作为 PingCAP 出手的项目,最重要的特点当然是开源。Talent Plan 所有课程从 0.1 起就是开源的,课程做出来以后,PingCAP 立刻将其放在 GitHub 上面。目前,它在 Github 上的赞星数高达 7000 余,在数据库课程领域里面可能是最高的一个。

后来的发展,完全超出了 PingCAP 的预期。Talent Plan 学员来源于 200 多所学校,其中包括约 50 所境外学校。由于课程是英文的,逐渐地,与 PingCAP 还没建立合作关系的国际学校,包括 MIT、CMU,以及日本和欧洲的一些学校也都来了。

Talent Plan 的成功,不仅仅是解决了 PingCAP 的问题,更大的动力是因为它解决的是行业问题。在人才这个困局面前,PingCAP 所有的行业竞争对手都变成友商,大家面临的问题是一样的,这是一个有利行业、有利于国家社会的事情,所以 PingCAP 会一直持续地投入下去。

对 Talent Plan 学员们的建议

王岩广老师对学员们的第一条建议就是“拥抱开源”。在分布式数据库领域,互联网、GitHub 里的学习资料其实有很多,如果不去拥抱开源,可能就很难进入这个领域。再者,学员们未来如果从事分布式数据库领域开发工作,工作的方式很可能还是围绕着开源方式展开,拥抱开源是大势所趋。他认为,新时代学生求职时的简历不再是一页纸,很可能会是他的 GitHub ID。他做过哪些开源项目,提过哪些 issue,是哪些项目的 Contributor,从 GitHub  上一目了然,它比传统一页纸的简历更加真实可信。

同时,开源项目往往都不仅仅是指开源产品本身,而是更大的开源生态范畴。如 TiDB 生态中包含着众多周边工具,大数据工具,甚至还有其他企业做的发行版。这些生态都需要开发人才,如果你对生态中的核心产品很熟,会成为生态中非常受欢迎的人才,就业空间也会很大。

第二条学习建议是学习路径。由于 Talent Plan 整个课程体系难度较大,学员们可以先从单机数据库课程开始学习,比如 Andy Pavlo 的15445 课程、MIT 6.824 课程,这些都可以作为前序基础知识。

Talent Plan 的意义

目前,数据库人才需求的挑战还很大,但是 Talent Plan,以及整个 PingCAP Education 都在不懈努力,让每一个有志学生都能够很快地通过一个开源的学习通道,进入开源分布式数据库的开发生态里。

PingCAP 用开源融化了工程界和学术界之间的界限,并改变了教学模式,老师和学生之间不再是传统的授课关系,而是变成学习社区里共同学研的平等关系。欢迎更多小伙伴们加入 Talent Plan 中,通过学习最终踏上分布式数据库“高阶玩家”的平台,也欢迎大家提供建议、贡献智慧,一起打造“共建共享”的学习社区!

这篇关于破解数据库内核人才困局:PingCAP 的思考与尝试丨Talent Plan 专访的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/TiDB_PingCAP/article/details/123871021
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/540707

相关文章

虚拟机Centos7安装MySQL数据库实践

《虚拟机Centos7安装MySQL数据库实践》用户分享在虚拟机安装MySQL的全过程及常见问题解决方案,包括处理GPG密钥、修改密码策略、配置远程访问权限及防火墙设置,最终通过关闭防火墙和停止Net... 目录安装mysql数据库下载wget命令下载MySQL安装包安装MySQL安装MySQL服务安装完成

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

MySQL数据库中ENUM的用法是什么详解

《MySQL数据库中ENUM的用法是什么详解》ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,下面:本文主要介绍MySQL数据库中ENUM的用法是什么的相关资料,文中通过代码... 目录mysql 中 ENUM 的用法一、ENUM 的定义与语法二、ENUM 的特点三、ENUM 的用法1

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN