KDE is once again taking part in Google Code-in this year, a contest to bring 13 to 17 year-olds closer to Free Software. I asked some of our students to write about their experience with KDE. Here’s the first one by Adam. More will follow in the next days.
I don’t know C++. I don’t know anything about Qt. And yet with the support of Google Code-In mentors, I managed to contribute to a project in a language I don’t know, in a toolkit I am clueless about, in an unfamiliar codebase. And I managed to dive into KDE, even though diving into development can be difficult with so many different tasks to be solved. Google Code-In helps a ton in reducing the initial workload to getting involved with the KDE community. Instead of the titanic mass of the bug tracker there are a few simple, easy tasks that are not too hard for someone like me to get involved and to start solving problems.
One of these problems was in the anagram app, Kanagram. Kanagram simply gives the user an anagram to solve and a button to show the answer. The bug was a simple one in which the reveal anagram button still appeared after the user had either figured out the anagram or solved it. It was a minor detail and yet an important one, as it was confusing to have a button to reveal an anagram when there is no anagram to reveal. This was a minor inconsistency, and becuase of the simplicity of the problem, a good place to start for me. I apt-getted kubuntu-desktop and I was ready to start my first bug. I, being unfamilliar with Qt, turned to Google to try to solve the problem and came up with an idea. I posted it, and the mentor for that task, Laszlo Papp, looked over the code, and told me what I was doing wrong. A few more changes and I had got in working. I reposted it, and again I had a variety of code-style problems. One more iteration and it was accepted. The mentor turned this from what would’ve been a rather frustrating experience to a much simpler and easier one. In addition, once he marked the bug as fixed he continued to talk to me about what I did wrong with integration, further educating me about KDE and C++.
Another great plus to working with KDE is the reality of the problems I’m solving; in short, I know that what I do makes a difference. It may be a tiny bit of QA or it might be the removal of a button; either way, that change I made directly helps people around the world. And it has taken me just a few days to get started with the KDE community with virtually no hassle, beyond some minor kinks with setting up a build environment, though once set up KDevelop + Git really worked well. Even though KDE does a lot of things well there are some problems for a newbie KDE developer. Many of these are tiny details like the lack of a unified account for the wiki and the bug tracker, but in total they pose an obstacle. Overall the combination of mentors and the list of tasks materially reduces the difficulty of getting started with KDE development.