Learning resources for beginners

Hi, I am learning python through freecodecamp and by reading ‘python crash course’. I want to know how I can contribute to open source projects, considering that I have very little knowledge about programming.

Are you hoping that “contributing to open source projects” will help you to learn programming? Or do you want to do it because you think it will look good on a resume etc.?

Please keep in mind that open source projects exist for a reason. Whatever code is “contributed” to them has to be something that works and that will solve a problem. It’s very unlikely they’ll accept something that they didn’t explicitly ask for, unless you can do all the work to show them that it fixes a problem (and you’ll have to convince them that it is a problem). There are several pieces to this, and every piece is much harder if you “have very little knowledge about programming”. Most of them will not see themselves as “learning resources for beginners”, and their leaders will not be happy that beginners want to try to use the project that way.

Relevant:

1 Like

@Quanefi Have you considered something organised, like Google Summer of Code?

There are plenty of projects that welcome contributions from newcomers - see this. I don’t think the last post reflects a majority view at all - it seems somewhat cynical and elitist to suggest that only experienced developers should contribute to open source projects.

I started out 10 years ago with only “academic” Python and no professional experience. I now work as a professional software and data engineer, and that is at least in part due to a track record of (voluntary) contributions to a number of open source projects. You always start out as a beginner in any new project, but surely one of the points missed in the last post that you can develop your experience by looking for areas where you can contribute.

Contributions can solve existing problems (no one would argue that they should contribute something useless), but in some cases beginners can also see bugs or areas of improvement that existing contributors may not. And they should be free to point out these issues, and maybe even propose solutions if they are capable of it, otherwise what is the point of “open” source?

And there is nothing contradictory about wanting to improve your development skills and experience, as well as your career. That’s one of the reasons why GitHub has become so popular - a lot of companies recruit based on GitHub (or GitLab, BitBucket etc.) profiles because it can provide at least some evidence of a candidate’s interest or talent in development and code. Otherwise there would be very little to go on.

1 Like

I’m new to Python also. I have already done a 72 hour Python tutorial on Udemy, it covered a lot. I’m writing smaller programs to learn new concepts at home and at work to help me learn Python, and I get feedback in this forum which has been very helpful.

Some of the programs I have written to strengthen my skills:

  1. Reading files and writing spreadsheets is a common part of my job. So is getting and summarizing data from a database.
  2. Extract data from XML file and write it out as an Excel spreadsheet.
  3. Get data from a database and write the data out as a spreadsheet.
  4. Write a “grepmult” program to find 1-5+ keywords in a line of a text file, but the keywords can be in any order.
  5. Write a speedtest program to test my internet speed connection and store the results with date and time, in a shelve file. This also has an option to dump all results to a .csv file, to convert to an Excel file, to make graphs.
  6. Learn to send SMTP email with attachments.

I also take a lot of notes to summarize what I learned, and to save links to documentation of modules and related Python things. I use Tiddywiki.com to do that.

We have a report writer but it requires multiple steps from the user to get a spreadsheet of the data. When I write a program in Python I can make the spreadsheet (their preferred format) and email it to them without any human input.

1 Like