Open source work is like any other creative activity, whether it’s writing or painting. It can feel scary to share your work with the world, but the only way to get better is to practice – even if you don’t have an audience.
If you’re not yet convinced, take a moment to think about what your goals might be.
Launching your own Open Source Project
1. How To Get Started with Open Source?
First and foremost, you must choose a programming language of your choice. Once you are done with selecting a programming language, search for a project that is interesting to you.
2. How to Find a Bug?
Finding a Bug can be a lot difficult especially for beginners. I will list some resources which will help beginners in learning how to find bugs in the code and also how to contribute to a large open source organisation
- Mozilla: Getting started with Mozilla is easy. It suggests projects based on the programming language you choose
- Bugs Ahoy: Bugs Ahoy is a website, particularly for new developers and contributors.
- KDE: KDE contains a section on how to get started with KDE projects.
- OpenStack: OpenStack is also a great project to start out with. The OpenStack project is divided into various components: Swift, Glance, Nova, Horizon, Keystone etc. Each of these components has their own page. If you head over to OpenStack, you can see the components listed separately
- Wikipedia: Most of you would have heard of Wikipedia, but do you know you can also contribute to it.
- GNOM: It is a free & open source desktop that provides software resources to developers.
- Apache: Apache has a number of projects in which you can start contributing right away!
You should Open source your projects when you want others to view your code or maybe give feedback. Nevertheless, at whatever stage you are at, you should include the following documentation in your every project.
- Open Source License
- Contributing Guidelines
- Code of Conduct
Open Source Projects for Beginners Using Python
Python Open Source Projects
To start with contributing with Python, just head over to the Developer’s Guide. It starts with cloning the repository in your system and then asks you how can you check for the easy fixes.
The developer guide mentions how can you start with making documentation fixes, then move up to fix small bugs. Once you get acquainted you can start taking up easy bugs.
- Issue Tracker
- Easy Issues
Python Open Source Projects
2. Som-tsp: Solving the Traveling Salesman Problem using Self-Organizing Maps
3. Py2bpf: A python to BPF (Berkeley Packet Filter bytecode) converter [75 stars on Github].
4. Chatistics: Python scripts to convert your Messenger, Hangouts and Telegram chat logs into DataFrames. [263 stars on Github].
5. WhatWaf: Detect and bypass web application firewalls and protection systems [554 stars on Github].
6. SimpleCoin: Just a really simple, insecure and incomplete implementation of a blockchain for a cryptocurrency made in Python as educational material. In other words, a simple Bitcoin clone. [779 stars on Github]
7. Pyray: a 3d rendering library written completely in python. [83 stars on Github].
Open Source Projects for Beginners Using Machine Learning
Machine Learning Open Source Projects
Tensorflow is by far the most popular and one of the best machine learning open source projects on GitHub by a mile.
Originally a part of the Google Brain team in Google’s Machine Intelligence Research organization, TensorFlow is an open source software library for numerical computation using data flow graphs. It comes with an easy-to-use Python interface and no-nonsense interfaces in other languages to build and execute computational graphs. Tensor Flow Object Detection is another feature that makes it one of the best machine learning open source projects.
Scikit-learn, a Python module for machine learning. Scikit boasts a number of simple and efficient tools for data mining and data analysis. It’s highly accessible and reusable across various contexts. Plus, it builds off of well-known data science tools like NumPy, SciPy, and matplotlib.
PredictionIO is built on top of a state-of-the-art open source stack. This machine learning server is designed for developers and data scientists to create predictive engines for any machine learning task.
Developers can create deployable applications “without having to cobble together underlying technologies” with the full-stack and templates available. Built directly on Spark and Hadoop, PredictionIO allows developers to quickly build and deploy an engine as a web service on production with customizable templates. It is written in Scala.
PredictionIO is mean to simplify data infrastructure management. By implementing your own machine learning models, you can seamlessly incorporate them into your engine. It also speeds up machine learning modelling with systematic processes and pre-built evaluation measures.
Swift AI continues to gain kudos on GitHub. Swift AI is a high-performance deep learning library written entirely in Swift, with support for all Apple platforms. Macbook users rejoice!
Swift AI boasts an interesting tool for those interested in writing neural networks in Swift. The NeuralNet class contains a fully connected, feed-forward artificial neural network. With support for deep learning, the NeuralNet is designed for flexibility and use in performance-critical applications.
Still in active development, this project is looking for developers interested in hearing back from users. GoLearn’s model for machine learning problems will be familiar if you’ve used SciPy, WEKA or R. Data is represented as a flat table, analogous to a spreadsheet, and used for training and prediction.
As befitting a relatively new project, the wish list is longer than the actual current tools. So, if you’re looking for a project to really make a difference in, GoLearn might be the one for you.
A high-level neural networks API, written in Python and capable of running on top of TensorFlow, CNTK, or Theano.
Tensors and Dynamic neural networks in Python with strong GPU acceleration.
Caffe is a deep learning framework made with expression, speed, and modularity in mind. It is developed by the Berkeley Vision and Learning Center (BVLC) and community contributors.
A Python module that allows users to explore data, estimate statistical models, and perform statistical tests. An extensive list of descriptive statistics, statistical tests, plotting functions, and result statistics are available for different types of data and each estimator.
Neon is Nervana’s Python-based deep learning library. It provides ease of use while delivering the highest performance.