pretty much what has been said already, its all about practice, practice, practice. Some helpful ideas though.
Measure the number of paces you take to cover a measured 100.mtrs, on different terrain types.
Always orientate you map to correspond to the direction you see.
Choose a distant point on the bearing you want, and walk towards that, its much easier than constantly stopping and checking your bearing. once you get to that point then recalculate and take another. if the weather does however come in check your bearing often.
Find a field measure 100 mtrs. put a stake in to mark the spot, then walk towards it with your eyes closed (no peeking), this will give you your offset. some people go off to the left, some to the right, and also by how much, its also fun.
Remember that your likely to naturally follow the contours of the ground, which will also offset your line of travel, especially in bad weather. look at the contours of the map to give you an idea of way this is likely to be.
Don't get an overly complicated compass, get one that you can actually use, and work your way up to the more advance ones.
and of course remember that with stuff like GPS, or anything with a battery, it's likely to let you down when you most need it
Most of all Have fun doing it.
Da