Join us and get access to thousands of tutorials and a community of expert Pythonistas.

Unlock This Lesson

This lesson is for members only. Join us and get access to thousands of tutorials and a community of expert Pythonistas.

Unlock This Lesson

Contribute to Open Source

In the open-source model, software source code is available publicly, and anyone can collaborate. There are many Python libraries that are open-source projects and take contributions. Additionally, many companies publish open-source projects. This means you can work with code written and produced by the engineers working in these companies.

Contributing to an open-source Python project is a great way to create extremely valuable learning experiences. Let’s say you decide to submit a bug fix request: you submit a “pull request” for your fix to be patched into the code.

Next, the project managers will review your work, providing comments and suggestions. This will enable you to learn best practices for Python programming, as well as practice communicating with other developers.

00:00 Contributing to Open Source.

00:05 Contributing to open source is often cited by people as a great way to improve your skills, and there are a few good reasons for this. Firstly, there are many thousands of Python-based open source projects.

00:16 Python is an incredibly popular language, and as a result, there are lots of projects which are available for you to work on. Sites such as GitHub host them with the code visible for all.

00:29 Let’s take a look at how many Python projects are available on GitHub right now. So here, you can see the GitHub Topics page, which is github.com/topics. You can scroll down if you want and see the featured topics, but there are many of them, so a quick way around that is to put /python at the end of the URL.

00:57 And then you see a list of all the repositories which are using Python, and it’s around 110,000 at the time of viewing this. Some you may have heard of, such as TensorFlow, others not so much.

01:16 You can see open issues, et cetera. Contributing is really important for learning the appropriate etiquette. You wouldn’t just storm into people’s rooms and say, “Well, your television’s terrible and your stereo’s rubbish,” and yet sometimes people do this kind of thing online.

01:35 It’s much better to make appropriate suggestions in a polite manner, and then find out the real reason behind what’s happening. Many is a time when what you think is a problem with an open source project is actually part of the design, and you’ve not understood what’s going on behind the scenes.

01:52 If you don’t think your coding skills are up to scratch just yet, you can contribute to documentation. Nearly all projects could use improved documentation, and you’re just going to take a look now at GitHub and see how many large projects still need some help with their documentation.

02:10 Here, carrying on from the earlier view of GitHub, at github.com/topics/python you can see open issues for projects both large and small. So in the case of TensorFlow, there’s a few which are marked as good first issues, and also docs-related.

02:33 And for TheAlgorithms/Python, there’s a request to improve the Readme, so you could click on that and take a look and see if that’s something you want to work on and contribute to.

02:47 We can see some people are already adding them, but often, if you look further down in the threads, sometimes you can see people have started to do something, maybe haven’t done anything, or they’ve said they’re going to do work and then they don’t.

02:59 But this is where you will see conversation to do with the kind of thing you want to contribute to, and this is probably where you would be best to introduce yourself politely and see if you can do this kind of thing, as seen here.

03:11 Looking for appropriate projects is really important here. It’s very unlikely that as a beginning Python developer you’ll be able to contribute to the code of a mature project, such as pandas, numpy, et cetera.

03:25 But there are many smaller projects who would appreciate help in a number of areas, including documentation, as seen before.

herepete on Aug. 7, 2019

There are some awesome ideas and suggestions in this Video :)

dr3apap on July 7, 2020

Thanks for the tips and sincerity. It feels like you were talking to me indirectly directly.

Become a Member to join the conversation.