Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm a python & Qt programmer and my day job is create small GUI programs to ship with hardware devices.

However, my job is pretty basic: read/write data to the device through a serial port using pyserial, and display and edit data using PyQt and PyQwt.

Because of how basic this job is, I'm not confident there's a lot of job security here. What can I do to improve my skills in this area?

share|improve this question
Learn you a QML for great good. secure.wikimedia.org/wikipedia/en/wiki/QML –  Incognito Sep 29 '11 at 14:59

4 Answers 4

up vote 2 down vote accepted

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.

share|improve this answer
MeeGo is promising. –  kadaj Jan 13 '11 at 8:11
I don't this MeeGo is promising, even I want this happen.. because iOS and Android take of the part now.. and MeeGo is still under development... –  linjunhalida Jan 14 '11 at 0:32

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.

share|improve this answer
nice answer though, but this answer is not Qt programmer oriented. –  linjunhalida Jan 14 '11 at 0:39
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).. –  Macke Jan 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.

share|improve this answer

You have to study some advanced languages as well.

It means that whenever you get time, just study .NET, Java or Android.

So if that company avoids you (it will never happens), you can join another company with a huge salary.

I empathize with you. I am also struggling with my career as I am a beginner in the programming world and I have to work hard on it.

share|improve this answer
"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. –  Matthieu Dec 9 '11 at 14:31

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.