This article is selected from Gitee, inviting all open source enthusiasts to participate in the compilation of open source encyclopedia project “Open Source refers to north”, check out more open source encyclopedia can visit Gitee open source refers to North warehouse: gitee.com/gitee-commu…

preface

What is open source, I believe that the previous chapter has said very clear. As a way to contribute technology, the positive feedback to the entire technology community and the open source community is enormous. In the last decade, more and more projects have joined the open source community. There are many well-known open source projects that are recognized and sought after.

  • Operating system: Linux, Android
  • Editors: Vim, Emacs, Atom, VSCode
  • Version management: SVN, Git, Fossil
  • Database: MySQL, MongoDB, Redis
  • Big data platforms: Hadoop, ElasticSearch, HBase
  • Container: Apache, Nginx
  • Virtualization software: Docker, Kubernetes

These are just the tip of the iceberg, but there are many more of these familiar open source software that together form an entire open source ecosystem that now permeates every industry. The software you use on your computer, the apps you use on your phone, the food, clothing, housing, and transportation behind open source projects, so to speak. The world would not be the same without open source projects.

As open source collaboration becomes more and more accepted around the world, more and more companies and individual developers are joining the open source family, contributing their technologies and solutions to the open source community. Today’s technology community, because of open source, and become no longer a closed door, but a thriving scene.

Analyze the impact on individuals from the open source community

The concept of open source communities

The open source community, also known as the open source community, is generally composed of people with common interests. It is a network platform that publishes software source code according to the corresponding open source software license agreement, and also provides a space for network members to learn and communicate freely. Because open source software is mainly developed by developers scattered around the world, the open source community is a necessary way for them to communicate, and therefore the open source community plays a huge role in promoting the development of open source software.

The purpose of the open source community

What is it about the open source community that makes countless open source enthusiasts flock to it? This is essentially what the open source community is all about. The purpose is the core of a community, the product of a fusion of the ideas of the open source sponsors and core members, which you can also interpret as values. For example: Facebook’s goal is to “make the world more open and connected.”

Wei Jianfan, the translator of Cathedral and Bazaar, explains the 7 ideas of Open Source in his article:

  • Complete autonomy: Open source thrives because all programmers love source code.

  • Highly open: if the source code is open for software, what can’t be?

  • Autonomous: The open source community refers to the collection of people who care about, participate in, support and help an open source project.

  • Bottom-up: Bottom-up is the most universal law of nature, and open source, as a thing developed from the grassroots society, will inevitably follow this law.

  • Free competition: Open source is a world of strength. What is open source competing for? It’s about who’s software is good, who’s rated better, and, ultimately, who’s gaining more market share.

  • Win on reputation: Next to project development, capacity growth, community feedback, and self-actualization, there is no greater benefit than reputation. That’s why a lot of hackers contribute code.

  • Community empowerment: Apache has a motto called “Community over Code,” which emphasizes that a healthy community is more important than good code. If code disappears, a strong community can rewrite it; However, if a community is unhealthy, the code will eventually fail.

The above ideas are the author’s analysis and summary based on his own understanding of open source projects, which can be a good guide for open source enthusiasts to understand open source. As you explore the open source space, you will gain a deeper understanding of these concepts and build your own open source mission based on that understanding.

The role of open source communities

Everyone in the open source community has his or her own role, and every role in the open source community can gain growth and improvement in different aspects. Generally, a large open source community has the following roles:

  • Open source Leader: The Leader assumes the responsibility of leading the development of the project and generally has the decision-making power of the project affairs.
  • Maintainer: Maintainers undertake routine project maintenance and generally have the right to manage project transactions.
  • Open Source committers: Committers are responsible for submitting deliverables (usually source code) and participate in project transactions.
  • Open source contributors: Contributors contribute to projects in a variety of ways (such as solving Issues, promoting the community, etc.).
  • Open Source users: A User is a User of a project, typically for technical discussions and feedback around the project.

Let’s talk about what the different characters will get out of it.

Open Source leader

The role of open source leader is just like the head of QQ group and the founder of BBS. He is the decision-maker of open source project and has the decision-making right and final say on the affairs of open source project. Open source leaders determine the direction of open source projects and are responsible for initiating, designing, developing, maintaining, iterating, and ultimately achieving their goals. What issues need to be addressed in the current version? What features should be in the next release? What heights the project will ultimately reach and what problems it will solve.

As a project leader, I need to consider the overall situation, from the development of the professional field in which the project is located, to the technical direction associated with each feature, to how to promote the project in the community, and how to continuously promote the progress of the project. The accumulated experience of these hands-on processes will enable you to correctly analyze and make decisions in any project. Therefore, the promotion of leaders is also all-round, mainly reflected in the following aspects:

  1. A chance to put your ideas into practice

    Every technical person’s dream! Who doesn’t want to use technology to change the world?

  2. Gain higher technical insight and broader industry observation

    On the one hand, the users of open source projects are developers from all walks of life, and developers will use your project for a variety of business scenarios. This is different from the monolithic scenario of corporate-level projects, so you have to design your open source projects with more layers and more knowledge. On the other hand, you need to keep an eye on events at the same or adjacent track to get a better understanding of what’s going on inside the track.

  3. Hone a firm and indomitable spirit

    Leaders don’t have to be omnipotent, but to blaze a path, you need to be omnipotent. The success of a project is not dependent on the whim of talent alone. Your ability to distinguish yourself from others is largely due to persistence.

  4. Improve your leadership skills

    Incubating an open source project is not always easy. Launching an open source project as a leader means finding solutions to all the problems that follow, and stepping up to lead the way when others are stuck.

  5. Improve your sense of identity and accomplishment

    When you solve one problem after another and implement one idea after another in a project, you will feel the joy of harvest and the affirmation of your achievements, encouraging you to keep moving forward at any time.

  6. Build your reputation

    As open source projects grow and gain a large following, so does the reputation of the leader.

  7. Make a lovely group of friends

    Open source projects are not the work of one person, but the work of a group of people. The development and growth of open source projects are inseparable from the encouragement and help of friends. River’s lake children, since wanton river’s lake!

  8. Improve individual comprehensive quality

    • Learning spirit. Being open source involves a lot of different scenarios, as well as a deeper understanding of the other open source frameworks you choose. Self-learning is a characteristic of every open source person.

    • The spirit of competition, one of the ideas of open source is free competition. Of course, to do open source is to hope that one’s project will become the top project in the track, which will naturally involve competition. In the fully liberalized open source community, competition is also a virtuous cycle.

Open source maintainer

The open source maintainer is the main manager in the project, can be analogous to the QQ group administrator, BBS moderator, will help open source leaders to share the project management affairs. In many open source projects, the roles of project lead and project maintainer are likely to overlap in the early stages of an open source project.

If an open source leader is a CEO, then an open source maintainer is a CTO or COO. As an open source maintainer, I need to share the management affairs of the leader, and at the same time, I need to act as the core technology leader, master all the technology context used in the project, and keep the sensitivity and judgment of emerging technologies.

Therefore, the promotion that a good open source maintainer can get can refer to the open source leaders.

Open source committer

Open source committers are people who can commit code directly to the trunk and play an important role in the maintenance of project modules. Like a class commissary in charge of studies, publicity, or sports, they are responsible for maintenance in one or more areas through clear division of labor. The submitter should have a deep understanding of the technology used by the module he/she is responsible for, be able to perform core development work, and be able to design the project architecture. Submitters can also improve themselves in open source projects.

  1. Improve technical capabilities in the field

    Open source committers need to have a deep knowledge of the area they are maintaining, and arguably no one else in this area of the project. So when you face new challenges, day in and day out, your sword skills will be perfected.

  2. Hone a firm and indomitable spirit

    Even senior people will encounter thorny problems, when they encounter these “obstacles”, they need a repeated failure, repeated failure of the courage to support their breakthrough in their own technical bottlenecks.

  3. Improve your sense of identity and accomplishment

    When you solve one problem after another and implement one idea after another in a project, you will feel the joy of harvest and the affirmation of your achievements, encouraging you to keep moving forward at any time.

  4. Build your reputation

    Contributing code/documentation to open source projects is a very effective way to demonstrate your technical capabilities, so it’s very straightforward to increase your technical influence; If you contribute code and are good at promoting the project through technical writing, technical presentations, etc., then the technical impact will be magnified. In addition, being involved in a well-known open source project brings endorsements and technical clout to contributors, and it’s a win-win outcome.

  5. Make a lovely group of friends

    Open source projects are not the work of one person, but the work of a group of people. The development and growth of open source projects are inseparable from the encouragement and help of friends. River’s lake children, since wanton river’s lake!

  6. Improve individual comprehensive quality

    • Open source capability. By participating in open source, you can understand the incubation details of open source projects, which can be helpful in creating and participating in open source projects.

    • Technical ability. A long-term focus on the open source community keeps users up to date with the latest technology directions in the community, which also gives you a lot of choice when choosing enterprise-level system middleware.

    • Learning ability. A successful open source project is one that helps developers solve an area of problems by understanding the details of the code, and it helps to know the details of how the authors do this.

    • Text ability. Gain the ability to write documents by contributing to Issues and documents, and improve the ability to describe solutions in writing.

    • Communication skills. The users of open source projects are other developers, and the iterations of open source projects must involve users. Properly handling user feedback and listening to user feedback through communication will keep open source projects in a positive cycle.

    • Ability to propose and solve problems. Ask questions before you can solve them. Precise questions and answers can help you handle problems better.

Open source contributors & Open source users

Open source contributors are a force to promote project development and improvement. Contributors can contribute to open source projects by submitting PR, submitting Issues, solving Issues, email feedback, community sharing, community q&A, publicity and promotion, etc. An open source contributor is someone who has researched and contributed to the development of the project.

The most valuable part of open source users as community members is to make requirements, report defects, and make recommendations. By making requirements and reporting defects, you can quickly resolve problems on your enterprise projects and facilitate iterations on open source projects, contributing to the community.

As an open source contributor, as an open source user, and as an open source committer, the only difference between the two is whether the project maintainer adopts the PR you submit, and therefore, the improvement you get is similar. As long as you stay enthusiastic and contribute to open source projects, everyone involved will appreciate your contributions.

Programmer literacy

In addition to the open source community, we have to mention programmer literacy. What kind of literacy does a good programmer have? Do you just write code? The answer, of course, is no. Other qualities aside, here are just five.

  1. Solid technical expertise and skills
  2. Ability of architecture design and modular thinking
  3. Team spirit and cooperation ability
  4. Documentation and writing skills
  5. Requirement understanding

As far as the open source community is concerned, participation in open source can exercise the above five qualities of programmers.

summary

In general, personal involvement in open source projects is a great help for career development and personal growth.

  1. A better career
    • Job demand increases
    • Personal skill improvement
    • Expanding industry perspective
    • Interpersonal development
    • Personal brand building
    • Ability to survive outside the company
  2. Have fun
    • The joy of growing up
    • A sense of achievement

The resources

  • 7 ideas of Open Source

Contributors to this section

Holdonbei, Bryan31, Snow Mountain Fox, Yang Zijiang, Archimidong, Taotieren, WhitePaper, West Keng

Find errors in content? Or do you want to add more content that fits the theme? Open Source north welcomes you to contribute. Click on the contribution guide to learn how to contribute.