✨ Anyone who is familiar with me knows that I am an out-and-out open source enthusiast. After I came into contact with GitHub in my freshman year, I gradually became addicted to the open source world~ Today’s article is very special, I can refer to it and summarize it. The open source stage, as well as the steps and experience of learning open source projects. In the future, I will also grow according to my own plan. Like Learn the growth trajectory of Kubernetes, this article will be [updated long-term, and you can also contribute](https://www.notion. so/f8854a0f60d346d98b9eb2ccb6eaef8f) ~
Currently, I am in the first stage, in a process of precipitation and accumulation of the open source world and knowledge. The main manifestation of this stage is that we start to learn some basics. But I like to take notes and record them for myself to look through and review later, and of course to create my own content value.
[GitHub - cubxxw/awesome-cs-cloudnative-blockchain: 📚 Rookie Growth Manual🚀 CS series, cloud native series, blockchain series, web3 series🔥, Golang series💡…](https://github .com/cubxxw/cs-awesome-Block_Chain)
This stage does not mean that I have started to enter the second stage. The first stage comes to an end.
I think all the stages mentioned below are like the trajectory of life. It does not mean that you are no longer your parents' child when you become a father. You can still play a variety of roles and constantly improve and improve your roles. The same is true for open source projects. Analogy to our growth experience, in the latter stage I will still play the role of the previous stage. So I will stick to my own content creation and knowledge sharing ~
✨ Let’s start with the different stages of open source projects that are suitable for most people. To facilitate positioning, I call the above knowledge accumulation stage 0 knowledge accumulation stage. Let’s start from the first stage~
The first stage: simply look at the source code stage
Method: Simply look at the source code
Instructions: Simply look at the source code, documentation, and run the sample code
Learning effect: 1 ~ 2
With output: Without output
Whether a closed loop of learning is achieved: Try to look at the source code driven by problems, learn source code regression issues based on the problems, and achieve a closed loop
Get skill points: The skill of reading source code
Case: Read the source code of sealer, sealos, Kubernetes, k3s, horizoncd, and test
| Stage | The first stage: simply look at the source code stage | |—————- |——————————– —————————- | | Method | Simply look at the source code | | Description | Simply look at the source code, documentation, and run the sample code | | Learning effect | 1 ~ 2 | | With output | Without output | | Whether to achieve a closed loop of learning | Try to be problem-driven to read the source code, start from the problem and learn the source code regression problem, and achieve a closed loop | | Skill points | Skills in reading source code | | Case | Read the source code of sealer, sealos, Kubernetes, k3s, horizoncd, and test |
The first stage suggestion is to simply look at the source code, documentation, and run the sample code to learn. The main purpose of this stage is to accumulate basic knowledge. It is recommended to look at the source code as problem-driven as possible, start from the problem and learn the source code regression problem to achieve a closed loop. The skill of reading source code is the most important skill point at this stage. It is recommended to read some open source projects, such as sealer, sealos, Kubernetes, k3s, horizoncd, etc., and test them.
The second stage: organizing source code
- Method: Organize source code
- Instructions: Read the source code carefully, sort out the project structure and process, organize all or part of the source code, including changing all package names, compile/test/run and pass
- 🔥 Divided into three modules, they are the newly expanded Makefile demonstration, the script improvement demonstration, and the improvement of CICD flow:
- With output: No output (joining has no output sharing)
- Whether a closed learning loop has been achieved: After sorting out the project structure and process, summarize and review
- Get Skill Points: Ability to organize source code, more fine-grained source code reading ability
- Case: Organize the project structure and process of Kubernetes, organize and output the sealos project.
| Phase | Phase 2: Organizing source code | |—————- |——————————– —————————- | | Method | Organize source code | | Description | Read the source code carefully, sort out the project structure and process, organize all or part of the source code, including changing all package names, compile/test/run and pass | | Learning effect | 2 ~ 3 | | Output | Sort out the project structure and process | | Whether a closed loop of learning is achieved | After sorting out the project structure and process, summarize and review | | Skill points | Ability to organize source code | | Case | Sort out the project structure and process of Kubernetes |
The suggestion for the second stage is to organize the source code, read the source code carefully, and sort out the project structure and process. The main purpose of this stage is to gain a deeper understanding of the project and master the overall framework and process of the project. It is recommended to summarize and review after sorting out the project structure and process. The ability to organize source code is the most important skill point at this stage. It is recommended to organize some large open source projects, such as Kubernetes, and summarize and review them.
The third stage: sorting + output sharing
- Method: Organize + Output Sharing
- Instructions: Summarize source code analysis, architectural design documents/PPT or architecture diagrams, and share them on personal blogs and communities.
- Learning effect: 3 ~ 5
- Output: There is output, such as blog posts, PPT, architecture diagrams, etc.
- Whether a closed loop of learning is achieved: After output sharing, summarize and review
- Get the skill points: The ability to output and share, deeper source code reading abilities, technology, organization, output and sharing abilities.
- Case: Summarize Envoy’s system architecture diagram and design plan, and share it on your personal blog and community. Draw the system design and architecture plans of sealers and sealos, and push them to personal blogs and communities. There are also many people sharing content on Youtube, and the process is particularly worthy of reference and learning.
| Stage | Stage 3: Organizing + Output Sharing | |—————- |——————————– —————————- | | Method | Organizing + Output Sharing | | Description | Summarize source code analysis, architectural design documents/PPT or architecture diagrams, and share them on personal blogs and communities | | Learning effect | 3 ~ 5 | | There are outputs | There are outputs, such as blog posts, PPT, architecture diagrams, etc. | | Whether a closed loop of learning is achieved | After output sharing, summarize and review | | Skill Points | The ability to output and share, deeper source code reading abilities, technology, organization, output and sharing abilities. | | Case | Summarize Envoy’s system architecture diagram and design plan, and share it on your personal blog and community. |
The suggestion for the third stage is to summarize source code analysis, architectural design documents/PPT or architecture diagrams, and share them on personal blogs and communities. The main purpose of this stage is to consolidate your knowledge through output sharing and provide help to others. The ability to share output is the most important skill point at this stage. It is recommended to summarize some large open source projects, such as Envoy, and share the output. During the sharing process, continue to summarize and review to deepen your understanding of the project.
⚠️ This process can also be accompanied by video explanations. I provide a plan. After reading the source code, write your own reading notes, summarize your own reading notes, draw an architecture diagram and mind map, and explain it on bilibili OR youtube. This way Even more impressive. It is recommended to write a source code analysis article on an open source project every month and publish it on your personal blog and GitHub. I think this habit is very good.
Phase 4: Develop clone version
- Method: Develop a clone
- DESCRIPTION: Develop your own clone, like sealos split from sealer. Open source and share it with the community (GitHub). Use Go language to reconstruct Java projects or PHP projects, or project imitation development~
- Learning effect: 5 ~ 10
- With output: With output, such as open source projects, GitHub projects, etc.
- Whether a closed loop of learning is achieved: After open source and sharing to the community, summarize and review- Skill points obtained: Independent development ability, in-depth reading and understanding of source code, technical and project development skills
- Case: Develop your own clone, such as sealos split from sealer. Open source and share it with the community (GitHub). Another example is k3s, which is also a refinement of the Kubernetes distribution.
| Phases | Phase 4: Developing clones | |—————- |——————————– —————————- | | Method | Developing a Clone | | Description | Develop your own clone, such as sealos split from sealer. Open source and share it with the community (GitHub). Use Go language to reconstruct Java projects or PHP projects, or project imitation development~ | | Learning effect | 5 ~ 10 | | There are outputs | There are outputs, such as open source projects, GitHub projects, etc. | | Whether a closed loop of learning is achieved | After open source and sharing to the community, summarize and review | | Skill points | Independent development ability, in-depth reading and understanding of source code, technology, project development skills | | Case | Develop your own clone, such as sealos split from sealer. Open source and share it with the community (GitHub) |
The fourth phase recommendation is to develop your own clone, such as sealos split from sealer. The main purpose of this stage is to consolidate your knowledge through independent development projects and provide help to others. Sometimes we feel that a certain project is not simple, such as the iam project. The project is of high quality and we can develop it again to learn more about iam’s project design.
The fifth stage: production implementation
-Learn how to optimize project performance and how to improve project stability and reliability
- Learn how to deploy and manage containerized systems such as Kubernetes
- Learn how to do continuous integration and continuous deployment, such as Jenkins, GitLab CI/CD, Travis CI, etc.
- Learn how to perform monitoring and log analysis such as Prometheus, Grafana, ELK, etc.
- Learn how to perform security protection and vulnerability repair, such as OWASP Top 10, cloud native security, etc.
It is recommended to learn through actual projects, such as participating in company project implementation, or practicing through personal projects. In the process of practice, you can constantly summarize and review to deepen your understanding and mastery of knowledge.
Finally, pay attention to following specifications and standards in actual projects, such as code specifications, security specifications, architecture specifications, etc. At the same time, we must also pay attention to teamwork and communication, communicate and share with colleagues, and continuously improve our skills and abilities.
| Stage | The fifth stage: production implementation | |—————- |——————————– —————————- | | Method | Actual Project Practice | | Description | Apply the knowledge learned to actual production and consolidate and improve your skills through practical experience in enterprise-level projects | | Learning effect | 10+ | | There are outputs | There are outputs, such as practical experience in enterprise-level projects, performance optimization, containerized deployment and management, continuous integration and continuous deployment, monitoring and log analysis, security protection and vulnerability repair, etc. | | Whether a closed loop of learning is achieved | Continuously summarize and review during practice | | Skill points | Actual project practice capabilities, performance optimization, containerized deployment and management, continuous integration and continuous deployment, monitoring and log analysis, security protection and vulnerability repair, etc. | | Case | Participate in the company’s project implementation and practice through personal projects |
The main purpose of this stage is to apply the learned knowledge to actual production and to be able to customize or self-research according to business needs. It is recommended to undertake business traffic in the company and consolidate and improve your skills through practical experience in enterprise-level projects.
👀 Of course, at this stage, when it comes to production, we must deeply customize the open source project. There is no perfect project that is most suitable for the business. This process requires us to continue to explore. In this process, we can absorb the experience of many outstanding people, such as the process of continuous research on open source projects by big guys in the field of monitoring, Kubernetes network, and observability, and develop their own open source projects. This is not easy. Yes, this process can help you become a top expert in the field of XX in China.
Phase Six: Developing Knowledge Products
The goal of this stage is to transform the knowledge you have learned into actual products and share it to help others. It is recommended to develop some practical tools or demonstration projects, such as Kubernetes cluster deployment tools, cloud native application sample projects, etc. In the process of making products, you need to pay attention to the quality and user experience of the product. At the same time, you must also pay attention to publicity and promotion to promote the product to a wider user group.
In the process of actually making products, you can constantly summarize and review to deepen your understanding and mastery of knowledge. At the same time, you should also pay attention to communication and cooperation with other open source community members, constantly improve your skills and abilities, and make yourself a backbone of the open source community.
| Stages | Stage Six: Developing Knowledge Products | |—————- |——————————– —————————- | | Method | Develop a clone project or open source application demo project and make it into a paid product (video/book/documentation) | | Description | Transform what you have learned into actual products and share it to help others | | Learning effect | 10+ | | There are outputs | There are outputs, such as paid videos, paid books, paid documents, etc. | | Whether a closed loop of learning is achieved | Continuous summary and review in the process of making products | | Skill points | Product design and production capabilities, publicity and promotion capabilities, communication and cooperation capabilities | | Case | Develop Kubernetes cluster deployment tools, cloud native application sample projects, etc. |
💡 At this stage, we not only acquired knowledge product design and development skills, but also intangible wealth, such as industry influence.
Stage 7: Develop your own open source project
- Method: Develop your own open source project
- Note: On the basis of absorbing open source projects + enterprise implementation practices, we have developed our own open source projects and continue to promote the construction of open source communities.
- Learning effect: 10+
- Output: There is output, such as open source projects, GitHub projects, etc., there is community feedback (issue), and there is continuous improvement (PR)
- Whether a closed loop of learning has been achieved: Continue to promote the construction of the open source community and conduct summary and review
- Skill points obtained: Independent development capabilities, in-depth reading and understanding of source code, project development skills, open source community management and promotion, etc. Of course there are more industry influence, the most popular choice for job-hopping Good posture (GitHub is your resume, let HR find you!)
- Case: Develop your own open source project, such as the awesome sealos Project initiator Fang Haitao is very well-known in the Cloud Native field.
| Stage | Stage 7: Develop your own open source project | |—————- |——————————– —————————- | | How to | Develop your own open source project | | Description | On the basis of absorbing open source projects + enterprise implementation practices, we have developed our own open source projects and continue to promote the construction of open source communities. | | Learning effect | 10+ | | There are outputs | There are outputs, such as open source projects, GitHub projects, etc. | | Whether a closed loop of learning has been achieved | Continue to promote the construction of the open source community and conduct summary and review | | Skill points | Independent development capabilities, in-depth reading and understanding of source code, project development skills, open source community management and promotion, etc. | | Case | Develop your own open source projects, such as Fang Haitao, the founder of the awesome https://github.com/labring/sealos project, who is very well-known in the Cloud Native field. |
The main purpose of this stage is to precipitate your own open source projects and continue to promote the construction of open source communities. In this process, you need to continuously learn and master skills in independent development capabilities, in-depth reading and understanding of source code, project development skills, and open source community management and promotion.
It is recommended to summarize and review the experience of open source projects and enterprise implementation, and develop your own open source projects. Promote and maintain your own projects in the open source community, continuously improve your skills and abilities, and contribute to the construction of the open source community.
😏 For another example, there is a well-known boss here, Wu Sheng. Please refer to his blog: [https://wu-sheng.github.io/me/](https://wu-sheng.github.io/me /), and his GitHub address: https://github.com/wu-sheng/me
Stage 8: Commercialize your own open source projects
| Stages | Stage 8: Commercializing your own open source projects | |—————- |——————————– —————————- | | Method | Based on its own open source project products, continue to promote community ecological construction and gradually move towards commercial service | | Description | Use open source projects as the core to create commercial products and services and provide users with high-quality, reliable solutions | | Learning effect | 100+ | | There is output | There is a complete closed loop of output and corporate customers | | Whether to achieve a closed loop of learning | Continue to promote community ecological construction | | Skill points | Commercial operation capabilities, project management capabilities, teamwork and leadership capabilities | | Case | TiDB, Kafka, etc. |
This stage is relatively difficult and requires continuous accumulation, summary and precipitation based on the previous stages. Based on its own open source project products, it continues to promote community ecological construction and gradually moves towards commercial services. Use open source projects as the core to create commercial products and services and provide users with high-quality, reliable solutions.
At this stage, you need to continuously improve your skills in commercial operations, project management, teamwork and leadership. It is necessary to establish an efficient team collaboration mechanism while focusing on project management and risk control to ensure the high quality and reliability of commercial services.
In the process of commercializing services, it is necessary to focus on user experience and customer service, establish good user relationships, and continuously improve and optimize products and services. At the same time, you need to actively participate in the construction and promotion of open source communities and contribute to the development of open source communities.
The rate of return at this stage is very high, with a complete closed loop of output and corporate customers, and a learning effect of 100+.
Summarize
This article details the eight stages from learning open source to commercialization, allowing you to gradually become a big boss in the open source field. But if you think it’s an easy and fun path, you could not be more wrong. This process requires continuous learning and summary, as well as a deep understanding of knowledge. However, if you can reach the commercialization stage step by step, the rewards will definitely be very considerable. In short, crossing these eight stages requires courage, perseverance and patience, but this process will also make you the best in the industry.
This cycle will be longer. Even if I started preparing for it since my freshman year, it is still out of reach. I have been exploring the inflection point of the compound interest curve~
For us, whether we plan for something or not, everything depends on God. Or maybe it’s the sky that makes things happen, and people that make things happen. We are now in an era with a broad background that is compatible with all kinds of talents, and hard power (technology) represents a hard indicator. Including more soft power, such as: ability, emotional intelligence (communication, influence, leadership). In this framework, factors that influence this include our three outlooks: outlook on life, values, and world view. This affects our structure (the inner layout of vision + action + mind, courage, and other psychological factors) and connections~