Github repos for beginners to contribute

Hey guys,

If any of you have/know about any projects hosted on Github where beginner/intermediate developers can contribute, it would be great to list them here.

I am sure many of us FCC students are looking for practical projects to work on and gain more knowledge and experience.


Check out first-timers-only (@first_tmrs_only) on Twitter. It’s a bot that shares beginner-friendly issues.


Qutebrowser is a web browser written in Python, using PyQt and QtWebBrowser/QtWebKit

It’s a lovely and friendly code base to work with. The maintainers are very helpful on irc, and they have issues marked on github for first-timers to contribute to.

1 Like

You can search for the “good first issue” tag on github, it’s almost standard.

Just a kind of counterpoint to specific suggestions: the best repos to contribute to are ones that you use and know the codebase of. It’s difficult to contribute meaningfully to something you do not use [beyond extremely trivial changes].

Say you use a library. Every time you use it you need to dig through the code to check how some small feature works. That would be a good thing to add into the documentation, but you wouldn’t know that without using it, it’s subtle. Even if you were told, eg it was an issue marked “beginner” (because it only needs a couple lines of text in the readme), you’d ideally need to be a user of the library to be able to write a good, useful explanation. Or if you were a user and knew the code, you could make a decision as to whether documentation is the best idea, or whether suggesting a refactor of the code is a better idea.

Edit: doubling down against just listing repos with “suitable for beinners” issues vs. working on repos you know and use: Open Source is a methodology that fulfils business needs. It works as a fairly functional free market, its purpose is not to be a social endeavour. Stuff like codes of conduct etc provide a filter for the absolute shit some [entire categories of] people have to go through when trying to contribute, which makes it look more social than it is. But it’s still at core, a methodology for improving software for business purposes. That presupposes familiarity with the software from contributors for the process to work.


Come on, this OS generalization is crap. I doubt it’s different just for Libre/Free Software, but of course the licensing there makes this clearer.

Also, one will be reading code more often than writing, so getting started on a fresh project is a great way to develop this skill. I do agree it’s best to work on something one finds interesting though.

It’s no different? I may well agree with the differences that Stallman et al set out, but in this case they’re irrelevant, libre and OS, same issue. If there is a library/application that real things depend on, someone who does not know the code, who does not know the library, that is often someone who can’t meaningfully contribute. It’s not about getting work experience, it’s not a social project: any changes to actual code are risk. So in any case that a library/application is a dependency of real things, there is then a very real chance that modifying things will cause those other things to fuck up. The chances of that happening is very much reduced if the person making the change knows the codebase intimately. “Oh, this looks mildly interesting”, that’s a bad reason to contribute. “I use this all the time but it’s frustrating to use because…”, that’s a good reason to contribute.

The whole point is to overcome the “doesn’t know the code/library” thing. Otherwise nobody could contribute except the original author.

Actually, FCC has a few projects for this exact purpose. From your FCC dashboard, click on ‘Map’ and scroll all the way to down to ‘Nonprofit Projects’. There are several projects to choose from.

This just flat out isn’t true though. What I’m saying is that you need to use a library to understand how to contribute to it: it’s no good just randomly picking a thing. If you don’t use something, there’s no point contributing to it.

You need to use it to test it properly, not to be able to understand it or contribute. Many times it is easier through use, but it’s not a prerequisite.

And the motivation argument is a joke. Why does FCC promote non-profit projects then? Have you never contributed somewhere just to help out?

You seriously think that meaningfully contributing to development of software (ie beyond fixing some typos) is workable without using or caring about the software? The point of open source is to make software better, that’s why it’s a useful thing. It’s not charity or a social experiment. Throwing random unpaid, inexperienced people at a codebase they don’t know or care about just because they’ve decided they fancy a go is a recipe for bad software. What will they gain, except some green on their GH chart?

Open source successes: these aren’t successful because there are loads and loads of random people working on the codebases, they’re successful because either they have people paid to work on them, or there are a core of highly motivated contributors who know the code inside out. Not being great at coding doesn’t preclude useful contributions at all; not knowing or caring about the codebase or the project definitely does.

Have you ever had to maintain any software for a sustained period of time? You sure as shit need to be motivated, because it’s all painful, crap, admin work, low level tweaks. In a job, you get motivation because you’re paid. When you’re not, you need other sources of motivation to do crap jobs.

They would be the bit of FCC being phased out? And the quality of the ones on show ain’t great. It’s a lovely idea, but if I’m a non-profit, I want a experienced professional with a stake in what I do that will donate their time then support what they’ve built long-term over amateurs any day of the week. It smells similar to gap year charity work abroad; nice idea in theory but in practice a generally bad thing.

Re software? Sure, but a. I’m not a beginner and b. I’m not going to contribute just for the sake of contributing. I contribute because it’s something I know, or something I find useful, or it has fired my imagination, or I’m deeply.interested, or I know exactly what and how something can be improved, or I’m paid to care.

njeh, discourse does not make nesting easy.

At minimum they’ll gain the experience of navigating foreign codebases and working with maintainers, whether they contribute code or not. But you’re also putting words in my mouth — I never said they don’t need to care.

A rehash of post 6 and 7.

Yep, it’s a lonely job. But this debate isn’t about maintainership.

Phased out is a strong word, since they’re even more prominent on the map in beta, just not a certificate prerequisite. I have no idea about the quality of the projects — some look like reinventing the wheel.

From the NPO perspective, of course getting a free expert is better, but I’ve had good experience with FCC novices too. Any sane NPO will try to minimize the maintenance required, so things built from scratch are less interesting from the get-go.

So why couldn’t learning be on this list of yours?

Yes you are right enough. I am also trying to learn. :slight_smile:

there’s been a few people have posted here… some links below

and ours… one I’ve done with @RomchyFCC


1 Like