Hey Junior... Looking for a Job?

Lubos Lunak asked recently on kde-core-devel what to do with a little wishlist item filed against KWin.
It's a nice entry, well described, and
he even has some ideas about how to implement it --- but he also believes
that he could spend his time better by teaching someone to implement
it rather than do it himself. Give a man a fish, and he eats for a day.
Teach a man to fish, and he eats for a lifetime.

This is where KDE's Bugzilla comes in.
As a convention -- no more than that --
developers can mark wishlist items with "JJ:" (JJ stands for Junior Jobs) in the summary to indicate that
these jobs are suitable for people looking for some initial programming
challenge to get acquainted with KDE programming. A simple
search
in Bugzilla can show aspiring users what kind of jobs are
available for people just starting out.

With that said, I'd like to invite - or remind - developers to mark wishlist
items that are suitable beginning jobs with the JJ: "seal of approval" so
that everyone -- budding young programmers, busy developers, folks with
wishes -- profits. (Users that enter new wishlist items with the JJ: mark of
course intend to implement the feature themselves, and are just "staking a
claim" in Bugzilla).

Dot Categories: 

Comments

by Lubos Lunak (not verified)

First of all, I didn't say I'd teach anybody anything, I said I'd help. Which means I don't intend to teach anybody how to fish, but I can give you the right fishing pole and tell you where to find fish. You'll need to handle the fishing yourself, sorry, I don't intend to do any "C++ for newbies" course.

I added a comment to this specific bugreport (http://bugs.kde.org/show_bug.cgi?id=78950) which I believe should include enough information for somebody who'd be really interested in KDE development and should make it quite simple. I can help with real problems with it, and I'll review the final patch, but don't expect me to solve compile errors or help with setting up KDevelop.

Let's see if this experiment will work.

by anon (not verified)

Second of all, nobody said that you said that you'd teach anybody anything! ;-)

Having read your posting to the list, I don't think the news story is an unfair summary of your excellent idea... ;-)

by Ade (not verified)

Sorry, Lubos, if "teaching them to implement it" sounds like it's a promise by you to do a C++ course or whatever. I intended it to mean just some basic handholding, pointing folks to the right source and header files, etc. -- just like what you've done with your extra comment in the bug report.

I have done similar things for other apps, and people really do show up who, ith a minimum of handholding, implement neat and useful features. Often just providing a roadmap in the jungle of source files and everything is all they need.

by Steve (not verified)

Make a man a fire, and he'll be warm for a night. Set him alight, and he'll be warm for the rest of his life!

Actually, I think that it's a very good idea for people to be able to ease themselves into contributing to open projects by doing such junior tasks. People don't start with lots of experience, and making very visible contributions can be very daunting.

In some cases, newcomers who have tried to help have been effectively beaten up by more experienced people who have no patience. This doesn't seem to be so much of a problem with KDE, but certain other projects are well known for this!
I still don't think it wise to let people who know nothing about programming loose on the source, so I don't think that this should be a hand-holding excercise.

-- Steve

by would-be (not verified)

> In some cases, newcomers who have tried to help have been effectively beaten up
> by more experienced people who have no patience. This doesn't seem to be so
> much of a problem with KDE, but certain other projects are well known for this!

In fact, the potential for being beat up has led me personally to avoid any contact with KDE developers at all. Who wants to be belittled in public? I just want to help make software that works.

Its also no fun writing a patch to have it languish in the bug tracker. Having it labelled "wontfix" is bad, but having it just sit there for a couple of years is worse. If a mentoring process is set up, it must be clear that there is some responsibility to the JJ not only from the mentor but from everyone.

> I still don't think it wise to let people who know nothing about programming
> loose on the source, so I don't think that this should be a hand-holding
> excercise.

I don't think we're talking about those new to programming, but rather people that are new to KDE programming. It just needs to be made clear the KDE 'mentor' isn't going to help you with C++ basics, just KDE processes and procedures. Some of the "KDE way" isn't at all obvious.

by John Tapsell (not verified)

So you haven't actually been belittled, you are just afraid that you will be?

People need to have thicker skins.

by Aaron J. Seigo (not verified)

or a greater sense of adventure. personally, i can't remember when i've ever seen someone publicly belittled by a KDE developer for code they've contributed in good faith ...

"Do you have any messages without FUD?"
"Well... we have facts, figures, FUD, statistics, FUD and FUD. That's only got a bit of FUD in it."
"But I don't LIKE FUD!"

by Leon Pennington (not verified)

I found it very easy to get into. I looked through a programs todo list I was interested.

Said I'd like take one of the items on the list to the maintainer, he said go for it...

After a few bugs and some helpful pointers later, It was committed. Now Several months later, I'm working on other parts, and doing quite a lot of stuff.

I've never been belittled even though I made quite a lot of mistakes at first, ( okay I still make mistakes :) ). KDE developers where the nicest bunch I've been involved in.

by Simon Perreault (not verified)

This is very very cool! I've spent hours scouring Bugzilla in search of a job that we could now qualify as JJ. I want to have fun and learn while fixing it, and my knowledge of KDE is limited. It was very hard to find such a bug. Now they are just a click away!

Thanks, very nice idea!

by gyhmkyg, (not verified)

uoi;ui;oi;i;

by General Zod (not verified)

Bugzilla is currently broken. Please try again later.

LOL

...but seriously why hasn't the open source world come up with a better bug tracking system then the fragile, unwieldy mess that is bugzilla?

by domi (not verified)

There's a very good reason that mozilla went down. Read some kde-core-devel archives if you like to actually know what you're talking about.

Bugzilla is the best BTS available, and it's normally pretty good, this is the first time I've known b.k.o to go down since the switch to bugzilla. I don't know where you get the idea that bugzilla is bad or even "unwieldy".

by Zack Cerza (not verified)

I've been looking for a way to get into KDE development for a while. I maintain Kaffeine for Debian but that's not the same. I'll start looking at the JJ's now, but does anyone have a suggestion on a book or some other source of information on Qt/KDE programming? Everything I've found so far seems to be for KDE 2.

by Aaron J. Seigo (not verified)

there are a number of tutorials and bits of info on developer.kde.org and the Qt and KDE API docs are rather good. many of us are also on IRC in #kde-devel on irc.kde.org (part of the FreeNode network)

by Ian Reinhart Geiser (not verified)

that if you give a man a fish, he eats for a day...
if you teach a man to fish, he complains at you for being so selfish and not sharing your fish ;)

by Roey Katz (not verified)

..and he be warm for a day.

SET a man on fire, and he'll be warm for the rest of his life.

by Anonymous (not verified)

Why only for wishlist items?

by Christian Loose (not verified)

a) implementing a wish is more rewarding for a newcomer developer
b) if a bug is easy to fix then the maintainer should do it immediately and not wait for someone else to do it. Shouldn't he?

by Dan Allen (not verified)

This is really a great idea (marking up the reports)! I have been looking at how to get started with KDE/QT programming, but I have been having difficulty knowing where to start. I have been helping test features, report bugs, etc, but what I really want to do is get down and program some lines of code. What a perfect was to start!

The reason I believe the JJ: prefix will be effective is because not only does it point out projects which may be more on the trivial side to implement, but also because they communicate that the author/maintainer would rather see someone else concentrate on that task. In a sense, you won't be stepping on anyone's toes, at least not the maintainer of the report. I know that personally I might report a bug that I know I will implement in the next release. So it happens.

I must object to the title of Junior, though. I have been a programmer for many years and have worked in an assortment of programming environments. Just because I want to learn KDE, doesn't mean I am a "junior." Perhaps a better title would be "GYFW" for "Get Your Feet Wet."

by mbucc (not verified)

You can be a janitor instead of a junior. :)

But a rose by any other name is still a rose ...

by tbscope (not verified)

Is there something that can be checked to see if someone is already working on something?

Or do we need to contact the owner all the time?

Maybe it's best to leave a short message in the bug report that you're working on something so that someone else doesn't waste his or her time?

by Clarence Dang (not verified)

> Is there something that can be checked to see if someone
> is already working on something?
Not really.

> Or do we need to contact the owner all the time?
Yes.

> Maybe it's best to leave a short message in the bug report
> that you're working on something so that someone else doesn't
> waste his or her time?
Yes, that would be the best solution.

by Aaron Peterson (not verified)

Are there any developers willing to teach a class on... how to set up kdevelop? Like a web course, or video download.

I'm wanting to make a couple "simple" tweaks to the UI, but I'm finding that it takes a lot of head banging to learn how to use kdevelop.

I'm hoping to get pykde up and running on my box, but it's always a version behind on gentoo, so it doesn't work at all for me :(

There is just so much stuff to be familiar with to even get started.

I want to become a JJ grade developer (and more) , but that feels like a long ways off.

The "head banging" usually takes place trying to wrestle with build system.

I doubt a video will happen, but #kdevelop is usually responsive.