Silmor . de
Site Links:
Impressum / Publisher

How to become a Qt guru

...I hear y00 are very l33t, Pl33z teach m3 all y00 know

Learn to relax

Koan 1: "When Qt entered the world, the world became Qt."

...actually you do not need to understand Zen to become a master in any technology, but it might help... (not much though)

The important thing is to relax. Other than with some systems the answer is not only there, but waits for you without hiding from you - you only need to open your eyes and look.

Programming takes time and a relaxed mind. Don't be hasty, don't give up too early. Relax.

You have already mastered the most important part by reading this far: you took some minutes to read. Go on, you are on the right path.

Learn to listen

Koan 2: "Closing your eyes does not make the tiger disappear."

There is lots of information out there that waits to be recognised. Here are a few examples:

Learn to talk

Koan 3: "If you want me to believe in the candle's light you have to show it to me."

If all that information does not help you (or you need help interpreting it), you need to ask questions.

Task 1: find a place to ask your question.

  1. Starting with a good friend is always a good choice.
  2. Find out what your question is really about. Is it about programming in general? About C++? About Qt? About some other technology (databases, web, etc.)?
  3. Try to find the answer in one of the books or web-pages you read before - sometimes you only need to think about your question to find out that you already knew the answer.
  4. Try to find a news group, web forum or maillist for that topic.

Task 2: find a way to ask the question.

Don't start posting immediately! Get a feeling for what precise questions are asked in the group/forum/list and how they are asked. To get a good answer it is important to ask a good question - there are no dumb questions, but there are certainly dumb ways to ask them.

Ask yourself these questions:

The answers to those questions already make 80% of what you need to post as your question.

Most of those lists/forums are run by people who do this for fun in their free time. They have no obligation to you - demanding anything from them does not help in the least - so bear in mind to ask politely and not to waste their time with voluminous descriptions of unimportant details or by leaving out key facts.

A good introduction to asking smart questions has been written by Eric S. Raymond. Read it - it will help you understand the answers and how to avoid the more insulting ones.

Learn the basics

Koan 4: "Some have walked this path before you, some will walk it after you, some go a different path. Those who don't walk will never reach enlightenment."

Qt is not some kind of pixie dust waiting to be sprinkled upon a problem to magically solve it. Qt builds on top of C++, which builds on top of C. And it will most definitely not solve all problems (eg. it will not make the grass greener in your backyard or solve numeric problems). So it is important to understand what it is made for and to learn about the things it builds on.

Qt was created to solve the problem of cross-platform programming of GUIs. Newer versions of it (Qt 4.x) also support non-graphical programs, and have support for TCP/IP networking (UDP and TCP sockets), XML, several SQL databases. The GUI part also has an interface to OpenGL (3D graphics) and can display SVG graphics (so far only the Tiny model).

If you are already a good C++ programmer, you may skip the remainder of this section.

Qt builds on top of C++, so it is generally a good idea to learn C++ before one learns Qt. In order to understand C++ one should have some understanding of programming in general. Here is a simple to follow algorithm for this:

  1. Get subscription to a nearby library that has a computer science section. University libraries normally do have the books you need and they usually allow non-students to use them (but they give priority to students).
    • Yes, I do realize that this might be more than around the corner where you live - but it is worth it! When I was a student I got every book I could lay my hands on from the university library and I believe it has made me a fair programmer.
  2. Actually go to this library and borrow some books on programming in general and on C++ specifically. Do not be frightened by the fact that these books tend to be quite heavy.
  3. Read those books and try out the examples. Try to understand the examples. Do not proceed until you understand the examples.
    • If you get stuck at this point for more than half a year: stop programming and join a different profession - you will never make any serious money in programming. This may sound harsh, but it might save you a lot of trouble: programming requires you to be able to learn constantly - if you don't like the thought of "wasting" your spare time every second month by reading some new material you will be lost after five years; if you are willing to invest some time into reading up on the basics of C++ and then Qt I can promise you that it will be very rewarding.
  4. Set yourself some goals and try to solve them with the help of these books. If you can't do it at first, try again. If you can't do it after one or two days of trying: ask in a newsgroup that is specialised in C++. Preferably one that welcomes newbies, not one that talks about special features of the latest and greatest standard/compiler.

A word of warning: walking this path takes time. You cannot learn how to program in a few hours or even a few weeks. Don't be disappointed or over-confident too fast: it takes a few months to learn proper programming and several years to become an expert.

Learn Qt

Koan 5: "Only when you reach the peak you will see that the mountain is below you."

  1. Read the tutorials of Qt. Try it out! Try to understand it. Do not proceed until you understand it.
  2. Read the remainder of Qt's docu. Try it out! Try to understand it.
  3. If you still have questions: try to write some code that does what you want, if it doesn't work - ask on the Qt-interest maillist and describe what you have done so far.

Trolltech also has some tipps on how to learn Qt.

Stay on the path

Koan 6: "The path has no beginning, the path has no end. Yet only those who walk it will see the next town."

Keep using Qt, try to find your own answers, try to give good answers for others.

On the day you get a job offer from Trolltech you will know that you are almost there to be a Qt guru... ;-)

Webmaster: webmaster AT silmor DOT de