破解数据库内核人才困局: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

相关文章

如何通过try-catch判断数据库唯一键字段是否重复

《如何通过try-catch判断数据库唯一键字段是否重复》在MyBatis+MySQL中,通过try-catch捕获唯一约束异常可避免重复数据查询,优点是减少数据库交互、提升并发安全,缺点是异常处理开... 目录1、原理2、怎么理解“异常走的是数据库错误路径,开销比普通逻辑分支稍高”?1. 普通逻辑分支 v

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

MySQL 数据库表与查询操作实战案例

《MySQL数据库表与查询操作实战案例》本文将通过实际案例,详细介绍MySQL中数据库表的设计、数据插入以及常用的查询操作,帮助初学者快速上手,感兴趣的朋友跟随小编一起看看吧... 目录mysql 数据库表操作与查询实战案例项目一:产品相关数据库设计与创建一、数据库及表结构设计二、数据库与表的创建项目二:员

MybatisPlus中removeById删除数据库未变解决方案

《MybatisPlus中removeById删除数据库未变解决方案》MyBatisPlus中,removeById需实体类标注@TableId注解以识别数据库主键,若字段名不一致,应通过value属... 目录MyBATisPlus中removeBypythonId删除数据库未变removeById(Se

在 Spring Boot 中连接 MySQL 数据库的详细步骤

《在SpringBoot中连接MySQL数据库的详细步骤》本文介绍了SpringBoot连接MySQL数据库的流程,添加依赖、配置连接信息、创建实体类与仓库接口,通过自动配置实现数据库操作,... 目录一、添加依赖二、配置数据库连接三、创建实体类四、创建仓库接口五、创建服务类六、创建控制器七、运行应用程序八

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

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

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