I was discussing today with a coworker about those websites where you can practice coding (LeetCode, CodeWars, etc.).

The problem we found with those is that it's oriented towards one-shot snippets of code, usually to solve an algorithmic problem. This is very satisfying for the mind, but it's not really helping improving day-to-day coding skills.

I remember Ubuntu had a project called One Hundred Papercuts. The goal was to identify easily fixable but annoying bugs and let everyone participate. To be honest, I'm not sure what the result was for this (judging by the list of open bugs, it's looking more like "Death By Hundreds of Cuts" project, but that's another topic).

I was wondering if there could be something that would help people improving their coding skills while also improving open source projects.

Here is my idea. It's based on Github because this is where a lot of open source projects are hosted now, but it could be decentralized or used somewhere else:

Maintainers of open source projects tag easily fixable issues using a given tag (let's say #papercut)

People who want to improve their coding skills and/or improve an open source project check a dedicated page where they can filter all the issues tagged as #papercut using additional data such as the language used, the age of the issue and what not.

Is this idea completely stupid? Is it doomed to fail for obvious reasons I have not thought about?

One of the problem could be that it requires maintainers to actually perform some work before (finding issues that can be tagged as #papercut, maybe improving the description in order to make it easier for someone not familiar with the project to pick it up), during (answering questions the person who picked up the issue may have) and after (code review, merge process, etc.).

Hi @Pierreif you want to find real-life bugs to fix, there are plenty of resources. E.g. this article could serve as a starter.

Btw, I happen to work fulltime for an open source project (a free and open ERP software) and we also flagged a number of issues with a label saying "easy entrance point". You can find them here.

I imagine solving a puzzle that was actually designed to be solved is generally more convenient than solving real-world problems related to a large real-world software project. You would probaly first have to deal with stuff that is not actually related to the issue you are interested in solving.However, from my own experience, I was never able to seriously dedicate myself to software problems that are "just made up" and it feels pretty cool to be a real contributor to a real project .

I think it's a brilliant idea (was in it's previous incarnation too) and it's awesome you want to resurrect it If you'd like to contribute to Free software, you could contact a GNU volunteer coordinator ( gvc@gnu.org ) and set something in action (I'm thinking heading a volunteer recruitment campaign around this idea or something). Thanks for that !

I'm sorry, it's not that i want to be a dick all the time, but my collegue just found this in the current openhub stats for java and i can't resist the urge to blurt it out:

That's my collegue and me I think we are fucking awesome

Again, sorry for this OT post..feel free to ignore

PS: maybe this sortof salvaged this otherwise utterly OT post: one additional advantage to contributing of to open or free software (rather than to practice coding on e.g. codewars) is that it looks great your CV!

Combing "learning to code" with "actually fixing code" is an awesome idea and one that I would really love to see developed. I'm not sure how you could write an algorithm to pick them out of GitHub automatically but maybe create a site that crawls GitHub for a tag on issues like "NoobFix", aggregates them by language and creates a small lesson plan.

The great thing about this sort of platform is that you get free feedback and the safety of peer review (and hopefully tests).