All friends who know the tidb community should know about pingcap talent plan. Its original intention is to build a “ladder” to help kids step by step from go / rust language, distributed system foundation to practice, and finally step on the platform of distributed database “high-level player”.
At present, pingcap talent plan has been born for more than one year. We want to replace “ladder” with a more stable “step” (it is not necessary to make “escalator” in the future), and upgrade the course equipment.
Now we have some rudiments of course design. Welcome to “test play” and provide suggestions and contribute your wisdom to build this course together! It is hoped that the talent plan 2.0 course will eventually become the wisdom crystallization of “co construction and sharing” of tidb community, and help more community partners learn and grow.
Upgraded course planning
The following is the course structure of pingcap talent plan version 2.0 designed by us:
The talent plan courses 2.0 framework is shown in the figure above. We have integrated the high-quality resources of talent plan 1.0, and added some new course series to form aLarger talent plan learning landscape。 Talent plan 2.0 will cover four course series, including:
- Open Source Collaboration: open source collaboration course for open source enthusiasts with zero foundation. This is a new module, which will be described in detail below.
- Programming Language: for all kinds of programming language enthusiasts, the existing language courses are go and rust, and other languages will be added later.
- Infrastructure Systems: for the students of aizhetion infrastructure system.
- Deep Dive: the course of in-depth interpretation of tidb ecological project, the difficulty of the course is from shallow to deep, progressive layer by layer. Based on the existing tidb / tikv courses, it is planned to add new courses of cloud tidb and other ecological projects.
Each course series will add more contents, such as the infrastructure systems course series. In addition to the distributed system in rust course that you like, the distributed relational database (TinySQL) course and the distributed key value database (tinykv) course designed in go language will also be added, which will be described in detail below.
Talent plan 2.0 new highlights
1. Open source collaboration courses for open source enthusiasts
This is what we doZero base open source enthusiastsWe hope that even technical Xiaobai can enter the open source world to play in the new courses, such as the difference of different open source software license agreements, the operation mode of well-known open source Foundations (Linux, Apache, CNCF, etc.) and the basic knowledge of open source community operation, and quickly master the small skills of participating in open source projects. At present, the learning materials of this course series have been prepared. On March 2, a 10-day open source collaboration series course experience plan will be launched. Any small partner interested in open source can join the talent plan courses working group to participate in the course experience. During the experience process, you can:
- Sharing learning achievements and feelings;
- Supplement other valuable learning materials related to open source;
- Contribute idea to the design of course assignment.
Either way, you can contribute to the course series.
2. TinySQL course designed with go language
TinySQL course is a distributed relational database based on go language. Compared with talent plan 1.0, it will be more comprehensive and almost cover the most important part of the SQL layer of the distributed database. The course will be carried out in a sequence from simple to complex, from static to dynamic:
- First, we will have a simple understanding of SQL and relational algebra to prepare for the following courses;
- Next, we will focus on the execution of a read-only SQL, from how the parser parses the semantics to how the executor executes the semantics, and at last we will learn how the optimizer selects the optimal execution plan;
- Finally, we will focus on SQL (including DML and DDL) that change the data state, and how to deal with the interaction between them and read-only statements.
At present, the code framework of the course has been completed, and the course materials are also in preparation. Welcome to participate in the early test or the preparation of the course materials.
3. Distributed key value database (tinykv) course designed with go language
Tinykv course is a newly designed distributed key value database course based on go language. Similar to the existing distributed system in rust course, tinykv is also inspired by the famous MIT 6.824, but closer to the implementation of tikv. We introduce scheduling related logic, and students can realize a complete and available distributed kV service from 0 to 1. The course is divided into four parts:
- Lab1: realize single kV server;
- Lab2: multi copy high availability kV server based on raft;
- Lab3: realize multi raft and data balanced scheduling;
- Lab4: implement distributed transaction based on percolator model.
After completing the course, you will have a deeper understanding of raft protocol and percolator distributed transaction model from practice. At the same time, in the process of implementing tinykv, you will also have a better understanding of the actual framework of tidb + tikv + PD. After that, it will be easier to study the source code of tidb / tikv / PD. At present, we have fully implemented a tinykv and related tests available. Next, we will get the framework code required by the course through continuous pruning, and the course materials are also in the process of writing. Welcome the community partners to participate in the feedback and suggestions of early testing and the leakage and filling of documents.
4. More automatic assignment distribution, submission, score evaluation and feedback
In order to provide better participation experience and improve the efficiency of assignment distribution, we investigated the excellent tools used in the teaching process in domestic and foreign universities. At present, we focus on the test of assignment distribution function for GitHub classroom. In addition, CI technology, which is widely used in industry, will be used in job evaluation, and the feedback of job results will be faster, more efficient and more automatic.
Trial and feedback channels
The above courses and automated operation distribution tools are still in the commissioning stage. You can join Talent Plan Courses Working Group to participate in the 2 course experience, exchange or Tucao, and look forward to working with you to make complaints about this course.
In addition, you can continue to learn talent plan 1.0 until the details of the 2.0 course are fully finalized and released to the public. The rules for assignment submission and performance evaluation are consistent with those before. For more details, see the pingcap university website.