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.

6 Likes

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

4 Likes

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.

2 Likes

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

from: Search results for 'open source projects' - The freeCodeCamp Forum

1 Like