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.
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.
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.
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.
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?