What's your advice to people who want to get into KDE development-type stuff but don't know where to start?
- Figure out if you want to "develop-develop" or if you would be better at non-coding but still important types of tasks. I got my start in KDE doing documentation even though I knew coding at the time. When I decided I wanted to help with JuK the first thing I did was fix the documentation as much as I could, which helped me learn the codebase, that proved useful too.
- If you do plan to do coding and you don't know programming, start learning now. You can learn KDE and programming in parallel but you can't start on C++ (or Python, etc.) too soon.
- Learn Qt first.
- Finally, absorb information. :) You can do this by lurking on mailing lists, by hanging out in IRC development channels, and by reading TechBase. You'll find out there's more you need to know than just programming, but many skills will translate well even to non-programming tasks so it doesn't hurt to learn.
How to pick a project
- What app do you use most? Enjoy? Are curious about?
- Not sure? Join BugSquad. :) #kde-bugs
- patches --- who to submit them to so they get read and not lost
- i.e. bugzilla vs. mailing lists. which?
- coding style
- Some projects have explicit documentation. Others, just follow the style the maintainer is using. Above all, read the stuff on techbase about general KDE style.
- what to be shy about and not to be shy about (important!)
- lists of things that are newbie friendly that need help
- kopete needs developers, and mattr has a list of jobs, according to the topic of #kopete
- look in bugzilla wishlists, and look for something neat, ask somebody more senior if that is a good thing to work on (animating the tab icon while the tab is loading seems like a popular thing)
- look in bugzilla for easy bugs to fix
- For things like khtml, go to #khtml and you are likely to get a tutorial of the codebase, layers, etc. Easy fixes, but you need some guidance.
Bugzilla has JJ, junior jobs.
- join the community, mailing lists, irc, etc.