And the best way to train marksdwarves is to shoot at wildlife. A full squad of 10 marksdwarves with no skill at all, will probably train up to novice marksdwarf on a single fox, because they miss so much when low level (and I think small targets are difficult to hit, making things like bunnies good for training). You get much more skill per bolt by shooting at live targets, and it's less finicky than archery ranges, even though I can get archery ranges to work, I choose not to use them - since shooting at wildlife is so much more effective.
Ranged skills tend to train up a lot faster in combat than melee skills do, it seems that most of my melee dwarves skills come from sparring, without doing cheesy things (like arming dwarves with training swords and beating a captive wild turkey) melee dwarves seem to show very little skill gain from combat. I suspect this is because melee fights tend to end faster, because once the enemy passes out, melee dwarves tend to behead or brainshot it, while marksdwarves will keep hailing on the unconscious target for a good while. Also the highest skill military dwarves often move and kill so quickly that the lesser skilled melee dwarves can't keep up - in contrast with ranged dwarves who all have the same range, so start firing at the same time and will all fire throughout the battle.