Where should I start with open source for the first time?
Without a foundation, how do you contribute to the open source community?
How to grow into a big cow in the open source community?
If you are new to open source, you may still have a lot of confusion. Don't worry, SegmentFault collects the top ten questions about open source from developers through questionnaires, and invites community open source experts to explain these questions in depth. Their answers may allow you to get started easily.
The first question: Where should I start when I first contact open source?
Ma Quanyi, an open source expert from the openEuler community, replied, "Whether the things you want to do, the things you want to do, and the things you can do match up are the key to deciding whether your future work is happy." Choosing an open source project that suits you is crucial. important.
So how do you choose an open source project that suits you? The following four aspects can be considered:
- Technological trends, comprehensively considering the development of technological trends, and choosing a promising technological direction can gain an advantage in the future competition.
- In the field of personal technology, developers need to carefully evaluate their own technology stack and choose open source projects that match their own abilities and hobbies. Only the technical field that is really interested in investing in can maximize the developer’s initiative and have the opportunity to gain greater success.
- Reasonable allocation of investment time requires a reasonable balance of investment between work, life and family. Through reasonable planning of the available time, research and investment in the technical field are guaranteed. Only by continuing to participate in open source projects can you obtain generous returns from open source.
- Establish developer relationships and establish close ties with core developers in the community. A good developer relationship is conducive to expanding contacts and establishing a solid foundation for the development of open source projects
Second question: Without a foundation, how can I contribute to the open source community?
As an active young developer in the open source community, Xia Xiaoya, a member of East China Normal University and X-lab Lab, said: “Newcomers are extremely precious to a community. The responses and encouragement received in mailing lists and conferences will also There are a lot of things. I have a deep understanding of this.” So don’t feel ashamed to express yourself as a “latecomer”. Asking if you don’t understand, being brave to express, familiar with your face, actively asking for help, actively participating in discussions, and actively contributing are the first steps to enjoying open source.
If you want to contribute code to an open source project, you really need a certain degree of technical knowledge. But can't you contribute to the open source community without a foundation? Not really! Jiang Ning, the initiator of the Apache Beijing local community, emphasized that in addition to submitting software code, there are many ways to participate in open source contributions. As a novice zone, we can first participate in some translation and localization, document writing, design and other work. These non-code contributions are equally important to the project. They can also help us quickly get acquainted with the community leaders and deepen our understanding of open source projects. .
On the issue of how novices can participate in open source, Ma Quanyi also gave some suggestions:
- Writing code is far from enough. Developers need to make good use of search engines. At the same time, establish communication with the community big cows to understand various open source development issues;
- Observe carefully and think deeply. After the search engine and the big cattle in the community give the answer, whether you can see things and think about it is very important;
- Exhaustive method. Sometimes the result of thinking is not right, you can try all the possibilities;
- write an essay. Output is the best input. If you can explain this to others, you will understand the problem yourself;
- Participate in community activities.
The third question: Which open source projects are worthy of attention and promising?
There are many factors to consider when selecting open source projects that are worthy of attention and promising, such as whether the technology and community operations are cutting-edge——
- The cutting-edge of technology not only covers the advanced nature of the technology itself, but also reflects whether the underlying technology supporting the technology is advanced. For example, whether the infrastructure of open source software is mainstream and open source determines the openness, transparency and sustainability of the project.
- The frontier of community operations is reflected in whether the community has a complete governance mechanism, whether it has diversity, whether many companies participate in project contributions, and whether community players cover the complete industry chain. In addition, when selecting projects, we also need to pay attention to the activity of community contributors.
In addition, whether an open source project is in the foundation is also an important consideration.
Of course, when choosing projects worthy of attention, each developer takes his own interest and problems to be solved. Developers can only support themselves to devote more time to do this if they find a project they are interested in.
At present, the open source community covers a large number of projects, such as Vue.js, React.js, Angular and other front-end projects, Django, Spring-Boot, next.js and other back-end frameworks, TensorFlow, PyTorch and other machine learning frameworks, as well as Huawei MindSpore, KubeEdge Waiting for rookie projects.
Fourth question: How do you count as joining the open source community?
- Become a user of an open source project (user)
- When you start to participate in the discussion and provide patches, documentation and suggestions on the mailing list of the project, you will be successfully promoted to a Developer or Contributor
- When you continue to practice (submit bug reports, contribute code, participate in mailing list discussions, participate in community building), you may be invited to become a committer (Committer) or maintainer (Maintainer)
- After becoming an influential contributor, you may be further elected to the technical decision-making committee of the open source project, etc., and participate in the management and decision-making of the open source project more deeply
The culture and style of each community is actually different. If you regard "joining" the open source community as an action, then you inadvertently used a certain project in the open source community before, you can regard it as the beginning of joining the open source community.
Fifth question: How to grow into a big cow in the open source community?
The first Chinese director of the Apache Software Foundation and the founder of Apache SkyWalking Wu Sheng introduced to us——
The big cows in the open source community are often a group of people who have turned open source technology, brand, and publicity into professionalism.
They carry out extensive collaboration and mutual benefit in an open source model. Therefore, they have demonstrated superior professionalism in the design, development, cross-community cooperation and foundation work of the open source community, as well as the extremely long investment time that open source enthusiasts cannot match.
Similar to the familiar 10,000-hour law, it also holds true in open source circles. When these hobbies become professional, after high-intensity investment, others will see their extraordinary growth rate.
So, make sure you have enough time to engage in open source. Let the open source that you participate in become a part of the positive economic cycle, and only then can you become the so-called "big cow" in everyone's eyes.
But at the same time, I don't recommend that you go too far in pursuit of becoming a "big cow." After all, in addition to professionalization and commercialization, open source can also bring contributors their own sense of accomplishment and satisfaction. Not everyone needs to be a professional open source person, ordinary developers and enthusiasts can also enjoy the fun of open source collaboration.
In addition, Jiang Ning emphasized that for ordinary developers, if you dream of becoming a big cow in the open source community one day, you must start from bravely assuming the core tasks of open source projects and grow through continuous contributions.
Liu Tiandong, co-founder of Kaiyuan Society, added, "This society has people who ask questions and people who create problems, but what we need more is people who solve problems. When we participate in open source contributions and help others solve problems, we can not only Better self-realization can also enable others to recognize our value faster and become the "big cow" in the eyes of others. And our experience of participating in open source contributions is our most valuable resume. "
Question 6: How to participate deeply in open source projects?
To answer this question, you first need to answer "What is considered to be a deep participation in an open source project?"——
Become a core contributor with direct write access to the code repository?
Will the selected project committee directly participate in the management and decision-making of open source projects?
Or even fix the core code bug only once?
Different people have different opinions on this issue, and there is no absolute standard in the industry.
As an open source celebrity lurking in major communities, Qi Ning, the founder and CTO of SegmentFault, said, "In fact, developers don’t need to take the word “depth” too heavily—in fact, many well-known open source companies in the world Coffee also "entered" open source in some inadvertent contribution, perhaps for the first time just to harvest a piece of community surroundings, or to use open source software. Only then did they gradually deepen their contacts and continue to contribute, from Contributor to Maintainer. "So deep participation in open source projects is the same as becoming a big open source, it is a gradual and natural process.
But it needs to be emphasized that if you are looking forward to deeply participating in an open source project or becoming a core member of a project, you must think more and contribute in multiple dimensions-when you are not only contributing code and resolving issues, you are also starting to think about the project. It’s not far from deep participation when planning the value of the project and the prospects of the project.
Question 7: How can developers improve their technology by participating in open source projects?
Many developers, especially recent graduates, mostly face the dilemma of lack of experience in large-scale, high-quality project development. Many of the more mature open source projects have certain production environment application experience. Developers participating in the contribution can go deep into the project, understand and learn excellent code logic, architecture design, etc., and gain valuable R&D experience.
We all know that as a developer, the ability to learn and solve problems is very important, and open source projects can give each participant ample room for exercise. Specifically, the ways to improve technology can be roughly divided into the following categories:
- Pay attention to community dynamics, keep up with the new direction of technological trends, and load new "ammunition" into the technology selection library;
- Read the high-quality source code in open source projects, study the code logic, and apply what you have learned in your daily work;
- Continue to contribute documents and improve written expression skills by submitting PRs and contributing Issues;
- Communicate with seniors in the community through mailing lists, issues or code reviews, learn their R&D experience, and enhance their horizons;
- Communicate more with users, continuously optimize projects based on feedback, and better understand products and user needs;
- Learn to ask questions. In the open source community, not all questions can be answered. The questioner needs to explain the context of the question clearly, and try to be humble as possible to get help. When you learn to ask questions, your communication skills are bound to improve a lot.
In the opinion of the COO of SegmentFault and the deputy executive of Open Source, Bo Chang Jiang, participating in open source projects is the best training ground for beginners and college students. In addition to improving technology, there will be a lot of additional benefits. "In the past two years, SegmentFault has been in Supported the open-source summer activity jointly initiated by the Software Institute of the Chinese Academy of Sciences and the openEuler community. Many college students improved their skills under the guidance of community mentors, met big cows, gained valuable job opportunities, or elected Committer as an open-source project. Community recognition. Nine years ago, the birth of SegmentFault was also closely related to open source. The first few partners of SegmentFault met because of their participation in open source projects during their college years, and then they founded the company together."
Participating in open source is the best way to overtake in corners. Let the open source community become your growth accelerator!
Question 8: What is the difference between donating projects to the Open Source Software Foundation and not donating open source software to the Foundation?
CNCF Ambassador Wang Zefeng said, “Generally speaking, foundations have open requirements for project governance. For other potential participants, participating in an open source project managed by the foundation can have stable psychological expectations.”
When participating in an open source project managed by the Open Source Software Foundation, as long as you have sufficient investment, you can gain the right to speak in the community, and then influence the development of the community, and promote your own development direction and aspirations for the open source project to the community. On the contrary, there are some problems with the openness and continuity of the open source projects of individual companies. In recent years, many similar incidents have occurred: MongoDB, Redis, ELK and other projects modify the open source agreement, and it is actually when the commercial company controls the open source project. In the conflict between open source and commercial realization, its participating partners lose their protection.
In addition, Jiang Ning added: "Projects donated to the foundation will have better legal protection." Open source software is allowed to be used, modified, and distributed, but in what way? This involves the issue of open source agreements. Unlike commercial software that is controlled by intellectual property rights, open source software is controlled by licenses. For the open source community, licenses are more like the "basic law" of the open source community, which is transnational and cross-regional. Existence, even the basic law of the world.
Question 9: How can the open source community continue to develop?
Liang Bing, chairman of the openEuler community branding committee, introduced to us that whether an open source community can achieve sustainable development depends on the following four key indicators:
1. The key indicator of any community operation is the developer
Developers are the soul of the community, and the number and quality of developers determine the number and quality of projects in this community.
2. The second indicator is the CODE
We have high-quality and high-volume developers, and naturally there will be developers who bring high-quality code.
3. The third indicator is the use case
Any open source community's definition of itself depends on the user's definition of you. Only if you have enough users can you feedback the specific needs in use and form a very positive promotion to the project. This is actually the same as when you do product marketing. A product cannot survive without users, and an open source project cannot survive without users.
4. fourth is the document
Just as a product needs a manual, if an open source project does not have good documentation, many developers will have no way to start. Therefore, for a mature and friendly community, there must be a set of documents to guide everyone on how to use, how to participate, and how to contribute.
The management and operation of the community is the core of the sustainable development of open source projects. A healthy and friendly community requires a complete governance system and a fair and open community atmosphere, which can continuously attract new contributors to join. Of course, funding, resources, and the help of the foundation are also very helpful to the sustainable development of open source projects, but the most important thing is the continuous hard work and continuous investment of the project core team.
Question 10: What does open governance mean for the growth of the community?
In the past year, openEuler has gathered more than 3,000 contributors, has more than 40,000 downloads, and 40,000 community users. It has also attracted more than 60 companies, institutions and universities such as China Mobile, China Unicom, UnionPay, and Feiteng. The all-round rapid development is closely related to the open governance of the community.
Liang Bing introduced to reporters, “Projects that only open source code and do not have open community governance have no future. Open governance for an open source project is like nurturing and accompanying its growth. It is very important. This also reflects the open source project. The maturity and rigorous, serious, and continuous investment attitude."
Taking MindSpore as an example, MindSpore may be the first deep learning open source framework in China that adopts open community governance. In the MindSpore community, there is a very complete charter, a technical governance committee composed of multi-national and diverse teams, all processes are in the community’s public mailing list, and all decisions are followed by standardized charters. Openness and openness have allowed MindSpore to be trusted and supported by many developers and develop rapidly.
We often say "Community Over Code". An active, open, and friendly community is of great significance to open source projects. A healthy community is even more important than good code-it doesn't matter if the code is not good enough, as long as there are continuous contributors, the code can be continuously optimized and iterated, but if there is no community, no matter how good the code is, it will be in vain. Only a fair and open community atmosphere that treats new and old members equally can continue to attract new members to join the project and bring continuous vitality and vitality to open source projects.
Do the above ten questions answer your confusion about open source? Ten miles of spring breeze, it is better to code and you. The general trend of open source, hurry up and get on the car with us!