Software is not perfect. When using it you'll eventually hit bugs, some of which may be trivial, like a typo, or very annoying (crashes, broken features, etc.). Reporting them is a good way to help developers, and you can do it even if you are not a coder.

But you should be careful when reporting a bug. If they are repeated, incomplete, or are not really bug reports, they can annoy developers (and that's not what you want to do ;).

So, when hitting a problem, the first thing to do is to check if you have the latest version of the program; if not, update it and check if the bug still exists.

The next step is to verify if the problem is already reported. Some bug trackers, like Bugzilla, have excellent search features; others, like GNATS, are not so powerful. Anyway you should be able to find similar bugs easily, if they exist.

If the bug is not in the database, open a new bug report. Try to fill in as much information as possible. This includes: a complete description of the problem, a description of hardware and/or software that may be related to the problem (including version numbers, external patches, etc.), an explanation about how to reproduce the bug (non-reproducible bugs are very difficult to verify and fix) and, if you have enough knowledge, a suggested fix for the problem (in the form of a patch file, usually). Keep in mind that reports that lack information are (very) annoying.

If the bug is already in the database, just check if it's complete or not and add any (additional) information that may be missing. Do not open a new report for the same issue, please.

Another tip: do not use bug reports to propose new ideas; they are very difficult to handle. Try to discuss these in a mailing list first and, if people likes your proposal, then open a bug report. Also avoid using bug reports to ask questions; these should go to mailing lists too.

Start reporting easy and simple problems, but try to report everything you find. You'll only improve your style with practice ;) And doing this, you'll be helping a (free) software project!

For some examples, you can check my list of GNOME bugs. Or search my surname in the NetBSD Problem Database to check my bugs there (I can't add a direct link, so you'll have to do the search manually...). Have fun!