DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Please enter at least three characters to search
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Because the DevOps movement has redefined engineering responsibilities, SREs now have to become stewards of observability strategy.

Apache Cassandra combines the benefits of major NoSQL databases to support data management needs not covered by traditional RDBMS vendors.

The software you build is only as secure as the code that powers it. Learn how malicious code creeps into your software supply chain.

Generative AI has transformed nearly every industry. How can you leverage GenAI to improve your productivity and efficiency?

Related

  • ITBench, Part 1: Next-Gen Benchmarking for IT Automation Evaluation
  • Automatic Code Transformation With OpenRewrite
  • Maintaining ML Model Accuracy With Automated Drift Detection
  • Cost-Aware Resilience: Implementing Chaos Engineering Without Breaking the Budget

Trending

  • What’s Got Me Interested in OpenTelemetry—And Pursuing Certification
  • Simpler Data Transfer Objects With Java Records
  • Enhancing Business Decision-Making Through Advanced Data Visualization Techniques
  • Distributed Consensus: Paxos vs. Raft and Modern Implementations
  1. DZone
  2. Popular
  3. Open Source
  4. How to Find the Best Open-Source Projects

How to Find the Best Open-Source Projects

Here I will share my experience and projects that I'd like to start my open-source plugin development with examples for Java developers

By 
August Vilakia user avatar
August Vilakia
·
Nov. 28, 22 · Tutorial
Likes (4)
Comment
Save
Tweet
Share
9.8K Views

Join the DZone community and get the full member experience.

Join For Free

A couple of months ago, I wanted to get my first open-source experience. What was I supposed to do? I googled "best Java open source projects" and was terrified; every website recommended Spring, Gradle, Mockito, Guava, Jenkins and etc. There's a website called GoodFirstIssue, I was really happy when I found it, but it was also a disappointment. The logical question arises why? 

I will not believe that someone gets his open-source experience with projects like this. Their enormous, and it will get months, in the best case, to understand how they work. So I started researching myself; I've looked at several hundred projects to choose the bests for me. Here I will share my experience and projects that I'd like to start my open-source.

I won't tell you about the concept of open-source. Let's assume everyone understands what it is. Nowadays, for a developer to get a job, he should already know how the work on the project is done. Contributing to an open-source project provides this opportunity. You are getting real-life experience.

Here comes the moment you go to GitHub, you type in the search box "Java open-source" and get a hundred pages of open-source projects. You click on the first one with thousand starts, and what you see is documentation no less than War and Peace, with hundreds of commented issues.

Let's discuss what you need to pay attention to when looking for your good first issue. The first thing to understand is big open-source projects run according to very complex rules and involve complicated processes. Maybe it's not the best idea to start with a project with over ten thousand stars on GitHub.

1. Look for parts for the contributors in the project description. It could be sections about how and what to do if you want to contribute to the project, or often it is just the link to another document called "Сontributing.md". If such a section exists, it means that the authors encourage you to contribute to the project and will be happy if you find any issues or missing functionality. Also usually describes a simple way to set up a development environment for that specific project. Often, organizations develop and support projects. Even though the project is open-source, some people get paid to support it and develop new features, so they are less in need of outside contributors. This makes it hard for a newcomer to get into these projects. So don't forget to look for sections for contributors.


An example from the Javalin repository.

 An example from the Javalin repository.


2. Find something which would be genuinely interesting for you. It may sound blunt, but every project has some specific purpose. Some are about clou; some are about data engineering. It may take you weeks to get the necessary expertise to get expertise in the chosen field. Examples of such a project for a backend developer could be databases.
Example:
HugeGraph is an easy-to-use, efficient, general-purpose open-source graph database system.

3. Communicating channels. There are two communication channels, fast (like Discord, Slack, etc.) and slow (Google Groups, Github Discussion, forum, social networking groups, etc.). You, as an inexperienced developer with the project, will have problems with local testing and building the project. It's easier to solve them with fast communication channels; you can find someone who is online and ready to contact you and quickly help with the problems.

Slow communication channel



Fast communication channel.

Fast communication channel.


Apache InLong - a one-stop integration framework for massive data.

4. Issues and labels on them. Are there many open and especially closed problems? It helps assess the room for creativity. Projects also often have labeled "Good First Issue" or "Contributors Welcome" inside the problems with these kinds of labels are, which described how a newcomer can reproduce the problem or add a new feature and what classes and methods to look for.


Good labeling example.

Good labeling example.


Apache Pinot - A real-time distributed OLAP datastore.

5. How long ago were the last commits made to the project? Is active work on the project continuing? If so, your changes will be quickly considered and possibly accepted. If not, you may want to take the project into your own hands.

To participate in an Open Source project, the most important thing is to determine the sphere of your own interests. This is extremely important because you will have to choose a project that meets your interests and competencies. Pay attention to the following points and reduce the possible projects to participate in. Start with the reading readme.md in the root directory of the repository. Your next steps will be joining communicating channels and discussing issues on GitHub after you need to take the issue that you are interested in and GO CODE.  

Open source

Opinions expressed by DZone contributors are their own.

Related

  • ITBench, Part 1: Next-Gen Benchmarking for IT Automation Evaluation
  • Automatic Code Transformation With OpenRewrite
  • Maintaining ML Model Accuracy With Automated Drift Detection
  • Cost-Aware Resilience: Implementing Chaos Engineering Without Breaking the Budget

Partner Resources

×

Comments
Oops! Something Went Wrong

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends:

Likes
There are no likes...yet! 👀
Be the first to like this post!
It looks like you're not logged in.
Sign in to see who liked this post!