Open Source Projects For Beginners 212
itwbennett writes "Whoever said 'everyone has to start somewhere' has clearly never tried contributing to an open source project — the Linux Kernel development team in particular is known for its savagery. But if you're determined to donate your time and talents, there are some things you can do to get off on the right foot. Of course you should pick something you're interested in and that you use. Check, and double check. You should also research the project, learn about the process for contributing, and do your utmost to avoid asking questions that you can find the answers to. But beyond that there are some hallmarks of beginner-friendly open source projects like Drupal, Python, and LibreOffice — namely, a friendly and active community, training and mentorship programs, and a low barrier to entry."
All projects need your help. (Score:5, Insightful)
Beginners and non programmers can even help. 99.99786% of all OSS projects desperately need help with documentation. IF you want to start somewhere, start there.
How about contribute to something you can add valu (Score:4, Insightful)
How about contribute to something you can add value to? like, not treating it like contributing just something to just any project has absolute value that you can then put on your CV.
So look at software you use - fix some bugs that annoy you and contribute fixes or create new features that you would find useful in the software. that's how almost all successful small open source projects operate. which is pretty much how the example guy on the article went about it. contributing to software you don't use is going to be a mess.
if you have a truly novel fix or improvement to the linux kernel, you could always present it at as well. that's contributing even if you don't get your commit in, if it's a good solution to some known problem then people will take notice. because if you feel like that your changes wouldn't be appreciated, you could always just release a fork.
just answering questions on stackoverflow etc can greatly help some projects too.
Re:It's my party and no one else is invited (Score:4, Insightful)
Better still, use your programming talents to get a programming job you enjoy. Not only will they treat you more politely than an OSS project, they'll pay you.
Re:All projects need your help. (Score:5, Insightful)
The problem with Open Source Software is the intense focus on the freaking source code. But for most software projects Coding source code is only 40% of the work. There is a lot of work going in Architecting, Designing, Documentation, that goes on as well. For most project they have the Coder do all the work, that is why they write a few dozen lines of code a day because they are busy doing the other stuff.
RMS may not have gone insane if the printer manufacturer just released better documentation of the specs for the printer. To allow him do what he needed to do without the source.
Re:All projects need your help. (Score:5, Insightful)
And most technical writers and designers who do try to sign up get turned off pretty fast by being treated like shit by arrogant programmers.
It takes programmers being convinced that a program needs proper documentation for it to get it. Then the programmers will hopefully write bad but correct documentation, and then someone else can bash them into useful docs. Unfortunately, the prevailing situation with most FOSS projects with no (or effectively no) documentation is that a non-programmer cannot write the documentation, because only a programmer can understand what it should say, by reading the code. And if the code is confusing (I will avoid using the term "crap" here, though I very much want to use it) as it so often is, then it can be horribly difficult to figure out what it actually does even if one is a programmer.
Programmers need to take documentation into account early in the process, not as an afterthought. If you can't write at least useful documentation, then you're lacking. It doesn't need to be good, someone else can massage it. It does need to be correct and you do need to make time for it.
Since no one reads articles (Score:5, Insightful)
Re:All projects need your help. (Score:2, Insightful)
Sadly, most OSS projects need technical writers and designers more than they need more programmers. But many of them only let in programmers, most of whom can't write or design worth a shit (and would consider it beneath them even if they could). And most technical writers and designers who do try to sign up get turned off pretty fast by being treated like shit by arrogant programmers.
Absolutely. The OSS projects that are applications could certainly do with UX designers, but the chances of programmers listening to a UX designer saying that stuff should be removed from the interface are slim. Look at the backlash Ubuntu got from coders for bringing their desktop into the 21st century.
Re:All projects need your help. (Score:3, Insightful)
If "UX" means "turning a computer into a fucking cell phone," as implied by your delirious shout-out to Unity, then I think there are already more than enough of those unholy bastards infecting OSS already, tyvm.
Re:All projects need your help. (Score:5, Insightful)
My mod points just ran out or you'd have had a (+1, Insightful) for that.
As you say, the major difference between most successful FOSS projects and most successful CCSS ones probably isn't the programming, it's everything else. It's the vision and creativity and market research. It's the willingness and ability to commit entire teams for weeks in a row to completely rewrite an area of the UI that wasn't working quite as well as it could. It's spending time and money to implement tedious file conversion code and license relevant technologies, because people in the real world need to use the de facto standard proprietary formats, even if they are patent-encumbered. It's hiring a team of technical writers and illustrators to produce a user-friendly help system that actually does help. It's spending a small fortune running observation tests with actual users to find the most important problems, and then fixing those first. In short, it's having leadership/management who are user-focussed and able to direct their resources objectively to where they will make the most difference to those users.
wrong points (Score:5, Insightful)
Uh, this one is really simple.
Don't start at the kernel, idiot.
Don't start at a compiler or programming language or other system part, fool.
Start with an application. In fact, if you need to get that explained, you should start with a good book.
The kernel and compiler, etc. people ought to be hostile to newbies. Their goal is not to teach newbies, it's to deliver reliable code. You don't start learning to fly with a Boing 747 full of passengers, you start with a simulator or a Cessna.
Your first contributions shouldn't be in anything that other (applications) rely on. It should be in an application. Something where if it fails only that thing fails and not everything that depends on it. You'll find that the maintainers of these applications are more forgiving, simply because the burden on them is a lot less.
And yes, I say that as someone who has contributed to bunches of projects.
Re:All projects need your help. (Score:5, Insightful)
Thanks for demonstrating my point so well.
This is why Linux never succeeded on the desktop. But when an entirely commercial organisation took on designing a Linux user interface - Android - with programmers implementing designs from UX experts, suddenly it's successful.
Re:All projects need your help. (Score:3, Insightful)
Android is successful on mobile phones, not on desktops. Microsoft also tried to bring a mobile interface to the desktop with Windows 8, and it's an utter fiasco.
Re:All projects need your help. (Score:4, Insightful)
non programmer who knows how to use the program CAN write documentation about how to use the program.
many, many guides on the net are done this way and they tend to be helpful. sometimes the author just got there by experimenting how the software ACTUALLY works.
sometimes, if the documentation is by the coder it's just wishful thinking about how he hopes the sw would work - or worse yet the documentation is just an advertisement and blatantly ignores the limits of the software, whereas a trial-by-fire written documentation usually shows what you can actually do with the sw, what works and what will cause a crash. many guides about how to get some game running for example have been written with no source access at all, yet they cover unplanned(buggy) behavior of the program..
Re:It's my party and no one else is invited (Score:2, Insightful)
Do you actually spend much time on 4chan, or are you just aspiring to be that kind of jackass?
Re:All projects need your help. (Score:4, Insightful)
Mainstream GNU/Linux succeeded with technical people.
Android/Linux succeeded with non-technical people.
Your mistake is assuming the technical people involved in GNU/Linux give a flying fuck whether it succeeds with non-technical people -- some do, but most don't. And unless you've got string feelings about open-source software, if you do care about success with non-technical people, OS X is the obvious choice.
Re:All projects need your help. (Score:5, Insightful)
Having an intuitive UI is related to your audience. If you have software that is specialized for a group that is willing to take a longer time to learn it, presumably for some specific reason, you can make it fairly complex.
If you are trying to drive adoption by those who are less sure about what they want, an interface that starts simple but can be extended or given more functionality is not only nice, it is often the difference between your functionality being used... or not. Designing a good interface improves efficiency because it saves time, not only in a good workflow sense, but also in the sense that it does not require a significant commitment to learn. If you want to showcase a new function, you do not want your interface getting in the way of demonstrating it.
I cannot count the number of apps where I download it for one specific reason, and I'm supposed to be awed by all the wonderful flexibility that the interface doesn't hide from me. Instead, I'm disgusted that I have to do some stupid non-intuitive chain of actions just because no one actually handed the app to someone who had never used it before and took notes.
Outside of a professional tool in the hands of a specialist, it is rare that you use most of the functionality of an application. You do certain things repetitively, and then, if necessary, you use other functions as needed. Those "as needed" functions do NOT belong in a place where they occlude or even sit alongside the repetitive functions.
If there is anything that these minimizing UX designers do get right, it is the fact that you aren't going to need a screen full of options that you only rarely use, and so you don't need to waste the effort of browsing them. Programmers, understandably, want the work they have done to be showcased, but what is right for a programmer's pride is not always right for an end user. You may well have designed an elegant new way of doing something, but if the use cases for it are limited, it shouldn't be presented center-stage (unless a user elects to do so via preferences).
Re:All projects need your help. (Score:3, Insightful)
This is exactly what annoys me the most about the Linux community. You say most don't "give a flying fuck whether it succeds with non-technical people", but I've been hearing "Use Linux! Switch to Linux!" whenever someone mentions Windows. You know what I mean...obviously, the Linux community wants it to succeed with non-technical people. But if the technical people-programmers and designers-don't give a flying fuck, then...it won't. BasilBrush's point was just that. Google took Linux and made a well-done interface for it, and it succeeded. I don't care that it's for mobile devices, the point is that if you take the time to make an excellent interface, it has a much better chance of being widely adopted.
Linux can't have it both ways. You can't have coders not give a flying fuck and make it for techies and have it succeed for the non-techies.
Re:All projects need your help. (Score:4, Insightful)
I'd give you points if I had them.
What Linux needs the most are a) advertising, and b) be the default OS of gray/white box machines.
The main problem with Linux is that it arrived too late. The core of Linux is just as good when not better than Windows' but it lacks 3rd party applications because... nobody uses Linux. It's a chicken and eggs problem.
Re:wrong points (Score:5, Insightful)
Stupid questions deserve stupid answers. Being a newbie in a field is not an excuse to wasting the experts time by asking the same question for the 50th time or making the same mistake for the 100th.
Go to cryptography experts and tell them you've invented a new cypher and it's really great and could they please have a look. If you are lucky, you will get a few flames telling them that you're the 10th person this month and all the others have been idiots. Not just this month, but for the past 10 years.
Some newbie coming into a field that requires expertise and delivering something that is not a total waste of time to everyone is a once-in-a-decade event. It just happened in mathematics, so yes, it does happen. If you think you're that event, chances are stacked against you solidly.
That doesn't mean you're a bad person. It just means you have a lot to learn, including the nature of the field. And all the hostility and flaming and being obnoxious actually serves a purpose: To shut down the crap as quickly and efficiently as possible, in order to minimize the waste of time.
That's the price you pay for an open development model where everyone can come in and talk to the dev people directly with almost no barriers. Other fields have solved the problem by creating barriers. Try to discuss quantum physics with Hawkins. You'll find that you need to prove several times that you really have something worth discussing just to get there.
In Free Software development, we don't have that barrier. But that means the top people have to deal with the Sturgeon's Law stuff themselves, and they need to do it quickly, and that means skipping the niceties and telling things as they are.
Re:It's my party and no one else is invited (Score:4, Insightful)
I've read your comments in this thread and it is obvious that you are precisely the person everyone who has had difficulties with OSS projects is complaining about.
You've got a bunch of people who've had negative experiences and instead of listening to their experiences, instead of asking questions or adding thoughts that create an interesting and informative thread, your only interest is in proving that they are wrong. You twist their words, you pick and snipe, you grind them down until you drive them out of the thread and you "win"!
And that is a perfect example of what people face when dealing with... well, you, in OSS projects. I'd be willing to bet good money that you do exactly the same thing in help or dev forums for projects you think you're assisting. Grinding people down until they give up and leave. You do vastly more harm than good, as you have done in this very thread. I suspect it takes a dozen good contributors to make up for every one of... you. So in effect, you are not only harming newcomers, but you are cancelling out the work of many other existing contributors. Even worse if it creates a culture that encourages the same behaviour in others because of the habits they learn when trying to deal with people like you; until they become people like you. An anti-social virus.
While I know you can't read this comment (I mean actually "read" it, I'm sure you'll see some keywords to pick apart), I don't really write it for you. I'm hoping that it helps others who might recognise your behaviour in themselves and others, help them understand why what you do is so destructive. And perhaps create just a little social pressure in the other direction.