4 Answers
4

You could collaborate to the open-source KDE project, which is QT based so you'll have a good head start. You can also have a look at Planet Kde.

You could also work on the Meego project which is a joint Nokia/Intel initiative for smartphone, tablets, etc.

For each of these project there are probably hundreds of application, so you can basically work on anything you want, from multimedia to office application.

It will provide you with challenge that you don't encounter in your daily job, you'll meet other QT developers, and in the long run it will improve your QT expertise and you'll help the QT ecosystem to grow, so you're investing on your future as well.

The hardest part will be to chose on which project you want to invest some time and energy.

You could try to evolve from programmer (aka code monkey) to software engineer (for lack of a better term) by taking responsibility for a larger part of the toolchain. It might not be necessary for your project, but it'll give you plenty of learning opportunities and experience that is invaluable in larger projects.

I'm thinking about the ecosystem for docs/test/CI/build/packaging. IMHO it's seems a good place to start given that you want to code still (much like myself). Writing plugins for these kind of things is good training, and it forces you to read other people's code, which is pretty vital in growing a career.

If you're afraid of being replaced by someone doing the same job but cheaper, I heartily recommend reading Linchpin by Seth Godin. I finished it myself just before the holidays.

Short version: Make sure you do your job so excellently and proactively that your actual work can't be described in a binder. Then you can't be replaced or outsourced, becuase they can't afford to lose you.

And if they don't want you to do a kick-ass job, leave and go work someplace else.

There's qmake, qt assistant, qt creator, qml, qtest, git (for hacking qt itself) etc.. sorry about not giving specifics within Qt's ecosystem. Also, if you want to grow, you need to push the boundaries of what you do, from the specific (Qt) to the general (albeit Qt-related)..
–
MackeJan 14 '11 at 15:08

To cite what Macke said 'You could try to evolve from programmer (aka code monkey) to software engineer (for lack of a better term) ' I totally agree with it.
And one of the ways you evolve is by learning from examples. Look around and try to design GUIs that are already there. For example build something exactly like Spotify (which was built using QML). You'll definitely learn a lot.

"Advanced language" is a really subjective matter : you can think that Java and languages from .Net are advanced and others would think otherwise. Being too much of a generalist might also be an issue for employability.
–
MatthieuDec 9 '11 at 14:31