Talent Plan is a future database core talent training plan for colleges and engineers by PingCAP, East China Normal University, Huazhong University of Science and Technology, University of Science and Technology of China, Wuhan University and Digital China. Students who pass the graduation assessment will receive an official certificate and have the opportunity to enter the TiDB ecological enterprise for exchange, internship and work.
In order to prevent more students from being discouraged by the huge system and difficult content of the Talent Plan course, or give up halfway, the Talent Plan Learning Community has launched the Talent Plan Learning Camp. The learning camp is mainly based on online self-study, supplemented by participating in learning sharing lectures. Students who have graduated from previous years are invited to be mentors, and they will share the pits and necessary knowledge points encountered in their learning process with other students, so as to help students spend their time on Really critical learning.
Talent Plan KV 2021 study camp students come from Fuzhou University, East China Normal University, Tsinghua University, Wuhan University, Carnegie Mellon University, Waseda University, New York University and other colleges and universities. The number of participants reached 400, which shows that everyone is eager to learn database knowledge. The Talent Plan course has the following 5 learning paths: Rust compilation principles and implementation, implementing a mini version of a distributed relational database, implementing a mini version of a distributed KV database, participating in the development of industrial-grade open source distributed database TiDB, and participating in industrial-grade open source distribution Developed KV database TiKV.
In terms of course content, there are three series as follows:
Series 1: Open Source Collaboration
- TP101: Introduction to Open Source Software
- TP102: How to use Git and Github
- TP103: Build a Community
Series 2: Rust Programming
- TP201: Rust Network Programming
- TP202: Rust Distributed Systems
Series 3: Distributed Databases
- TP301: Implementing TinySQL Distributed Database in Go
- TP302: Implement TinyKV distributed KV database in Go language
The learning content covers basic knowledge of SQL statements, front-end compilation principles, DDL asynchronous change algorithm, SQL optimization principles and optimizer implementation, statistical information and cost estimation, Join reorder, execution engine, implementation of physical operators, KV stand-alone storage engine (LSM) -Tree), Raft consensus protocol, Percolator distributed transaction model, Go language, Rust language and open source collaboration tools, etc.
The "Ultraman Are Fake" team from Fuzhou University won the first prize with excellent results. We interviewed Huang Zhangheng from the "Ultraman Are Fake" team after the study camp and asked him to Share the gains and award-winning experience in the study camp.
"I have also participated in some software design competitions before, such as the China University Student Service Outsourcing Innovation and Entrepreneurship Competition. But these competitions may focus more on the packaging of the project. Whether to stick to the end to complete the project.”
<div align = right>——Huang Zhangheng</div>
Open source opens new doors for learning databases
Huang Zhangheng is from the Computer Science Department of Fuzhou University in 2019. In his daily life, he often participates in some software design competitions with his lab partners and has won many awards. From the second semester of my sophomore year, I gradually began to contact distributed systems and database-related fields, and participated in some open source projects. After that, I started to learn about distributed databases.
The reason why he was able to get the first prize in this study camp is that Huang Zhangheng admitted that his study during this period has played a very crucial role: "My foundation is relatively solid. Before participating in the study camp, I have learned a lot of distribution. Theoretical knowledge related to the database type database. Also, it is necessary to persevere unremittingly, there will be many bugs in the process of working on the project, and only by persevering and modifying those bugs will gradually succeed.”
Contact with open source also opens a new door for Zhang Heng to learn distributed databases. He introduced that the first contact with open source was an open source project called sofajraft. Participating in open source has brought him the biggest change. He learned some software projects in the past, and the source code was basically incomprehensible. However, after receiving the novice plan of some open source projects or some difficult projects, in the process of doing it, I gradually found that some codes that I could not understand before could suddenly be understood. Then, by slowly digesting the code, and then learning the entire system architecture, you can combine what you have learned with practice, which is very helpful for personal development.
Difficulty communicating more
Before the learning camp, Huang Zhangheng actually had a certain understanding of the overall structure of TiKV, but he joked that his understanding was only superficial, and since he had not systematically learned the Rust language before, he did not study its code in depth. Later, Zhang Heng saw the notice of the Talent Plan study camp in the circle of friends of some seniors, and signed up for it.
In this Talent Plan study camp, the main course is the TinyKV project. The course contains four Projects:
- Project1 is to build a stand-alone kv server;
- Project2 is a distributed key-value database server based on the raft algorithm;
- Project3 supports multiple raft clusters on the basis of project2;
- Project4 supports distributed transactions on the basis of project3.
Among them, Project 3 is recognized by many students as the most difficult one. Huang Zhangheng also said that every test in Project 3 will make people doubt life. In fact, every team will be stuck in Project 3 for a long time. There are some bugs in Project 3 that are not easy to find. Many people may give up after debugging for several days without any results.
Zhang Heng believes that there is a better solution at this time: go to some other teams or mentors to exchange experiences, and see if they have had similar problems and how they solved them. Because many bugs are encountered by everyone, some people may have ideas, and they can solve their own bugs by consulting their ideas. Instructors in the camp are usually very enthusiastic to help students solve problems.
In the process of communication, because Zhang Heng's team name "Ultraman is fake" is rather strange, many friends will directly call him "Ultraman", which also saves time in the short two-month learning process. Made interesting memories. Zhang Heng relied on this method to continuously improve his project and finally succeeded.
study advice
As a past person, Zhang Heng also shared some of his own learning experience for other small partners who want to learn the Talent Plan learning camp: First, read the project documents well. In fact, the document has already made it clear what to do. The second point is to persevere and not give up easily. In the process of working on the project, you may encounter all kinds of strange bugs, communicate with others more, see the experience of some predecessors, and understand how they solve the bugs they encounter. Don't just give up when you encounter a bug. Well, this is actually not good for personal development.
personal gain
In the interview, Zhang Heng revealed that he had also signed up for the tutor of the next learning camp, hoping to share his learning experience with more friends who participated in the learning camp. If nothing else, you will see "Huang Zhangheng" in the list of tutors in the next study camp.
At present, Zhang Heng is already in the PingCAP internship, and he hopes to focus on infrastructure, distributed databases and other directions for the future development direction. "I will continue to develop in the field of databases. In the process of learning databases, including the underlying storage and upper-level computing, individuals are very interested. Engaged in distributed database-related research and development is what I am most interested in. In the future, I think I will also look for a related job.”
Recently, Talent Plan's new event - Talent Plan 2022 Distributed Transactions Short Training Camp has opened! The course specially developed for VLDB Summer School 2021 - "Distributed Transaction Implementation" has been upgraded and launched at a later stage, and was officially unveiled in this study camp. This learning camp is an online learning activity carried out by the Talent Plan learning community for students who have a certain database foundation. It is intended to help everyone learn the basics of distributed transaction programming quickly and thoroughly in two weeks, and implement Percolator and implement in TinyKV. Practical topics such as isolation and concurrency control and implementing distributed clocks. Interested friends can click to read the original text to understand the learning.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。