The different vocations advance skills at varying rates, but the training methods are the same regardless of vocation. A sorcerer is best to train on a monk to advance melee just like a knight etc. Players on rook with no vocation advance each skill at the slowest rate of any other vocation, so despite what some players say you're best going to main before training. I've now got a set of online calculators to give you very accurate training times, as well as the TibCalc download. They are both basically the same and give the same results, just some people prefer to download a compact tool and cautious people don't download any executables and prefer the safety of a web site calculator.
The 30 Second Blood Hit Theory
The exact algorithms that Cipsoft uses for skill advances are not known and this is one part I'm still unsure of. It's generally accepted amongst serious trainers that you must bleed the target at least once every 30 seconds or your training stops, but I don't think it's as simple as this. My calculators give you training times accurate to the second if you train on a monk (hitting much much more than once every 30 seconds), but if you train on a ghoul it takes about 25% longer for the advance. Training on a ghoul I certainly don't spend 25% in the region of over 30 seconds without drawing blood, and yet it takes me 25% longer than it would if I were training on a monk. maybe if you go over 30 seconds without drawing blood it removes some training time or takes a while to start training after drawing blood again, but the bottom line is if you train on a ghoul it will take you around 25-30% longer than if you trained on a monk.
Melee Training and Blood Hits
It doesn't matter how hard the blood hits are, a hit of 1hp is worth exactly the same as a hit of 100hp. Also, a blood hit doesn't make you train any faster than a poof hit, except in the way that you need blood hits to allow training as described above.
Distance Training and Blood/Spark Hits
The article Jaw-dropping Discoveries in Skills Calculations that TibCalc is based on says that when training distance, blood and spark hits count for 2 poof/misses. I'm not so sure that a spark does count as 2 poof/misses because while a pally was training on me, the numbers we got indicated only blood hits count as 2. I don't play a paladin so I won't be investigating this closely, if you get detailed info you could email me though. What you should do is time how long it takes you to raise 1% of your skill while training and put it in this tool, which will tell you the "blood/spark" percentage. That way it doesn't matter if sparks really do count, it tells you the percentage to enter to give you an accurate training time.