Guiding new contributors
We often - really often - get questions on IRC or the list like:
- hi what's happening with Wayland, I would like to contribute
- graphics is cool! I know how to do OpenGL stuff, I've written some games at uni, but I'd like to move further down the stack
- how can I help the free desktop?
Usually we don't bother answering them. Sometimes we give them an unhelpfully vague answer. Sometimes we give a well-intentioned and useful answer which is biased to what the helpful person answering works on, which turns out to not be the best fit for the enthusiastic newbie, but we lack the knowledge to helpfully redirect them somewhere else. About half an hour later, we'll wonder why we don't really get many new contributors.
It would be good if we could have a complete, consistent, and coherent guide for newcomers (like GNOME's guide which is really slick!) to guide them into contributing to our projects. Groundbreaking resources like:
- an actual list of our projects, what they are, and what they do
- how these projects fit together with each other, and in the wider landscape (e.g. 'how is open-source graphics formed')
- how to reach the developers or other community for that project, and how to contribute
- pointers to some sample tasks which are a good place to get started (e.g. Weston's 'good for new contributors' issue tag which we link from CONTRIBUTING)
Some of these people will have a good understanding of open-source development methodologies, know and understand C, package management, etc. Others will not. For those who do, the above list is probably completely fine. For those who don't, rather than just fob them off completely, we should redirect them somewhere they can better use their energy, and hopefully come back later as contributors grateful for our help getting them started.
A braindump of some resources below that we can use either to link out to, or use to build up our own guides. Please feel to free to add your own resources which you think are good, or comment on the ones suggested here, so we can at least get a good 'toolkit' to use for pointing people at.
This set of C 'project-based learning' examples is really good, but it is on GitHub. I'm still not decided if this is a good or a bad thing: obviously we lean towards open and decentralised infrastructure, but then GitHub does have good and newbie-friendly tooling ...
Some people on the internet say some other people on the internet say Zed Shaw's Learning C the Hard Way is good, but it's also $US30, which for kids and/or people in developing countries would be a genuine barrier.
This list of how-do-I-start-with-C resources on Quora is one of the most helpful answers I've ever seen on a site like that.
The opensource.org HOWTO contribute is quite good in terms of walking people through the contribution process and providing lots of reassurance.
CodeNewbie is a community with podcasts, articles, and chats for people who are just making their very first steps into the world of writing code. We'd probably be quite a niche within that so I suspect it might require some structured support.
open.gl is an excellent 'learn to GL' guide.
GStreamer's introduction isn't bad and the outline seems to be well structured, but the navigation is pain.
/cc @danvet