What triggers crew experience increases?
Piloting
A crew member who is controlling a helm gains one point of experience for each incoming projectile that is dodged during combat. This includes asteroids, so long as you are in combat at the time. (Note that the dodges do not count while you ship is under the effects of +60% evasion from a cloak.)
This can be explicitly trained by finding an enemy that cannot break through your shields, and letting him fire at you. Increasing your dodge chance (i.e. more power to engines) will help this occur quicker, but even with the default chance you can max out the skill eventually.
Engines
Exactly as for piloting, a crew member manning the engines gains one point of XP for each projectile evaded while uncloaked in combat - and so it can be trained in the same way.
Weapons
A crew member who is manning the weapons station gains one point of experience for each weapon that is fired. It doesn't matter whether it hits or misses, or whether it can do damage (e.g. a beam weapon fired at a shield).
(Multi-shot weapons such as burst lasers still count as a single fire order and hence a single XP.)
This can be trained by firing non-lethal weapons (e.g. ones that do ion damage) repeatedly against a target that cannot damage you.
Shields
A crew member manning the shields station gains one point of experience for each shield "bubble" that is brought back up during combat. It doesn't matter why the shields were down, be that direct enemy fire, ion damage, asteroid strikes, or even manually removing and then restoring power to the shield systems.
This can be trained by letting a target that cannot break through all of your shields repeatedly take one layer down. (For fastest results, move your pilot away from the helm, or reduce your engines to 0 power. This will reduce your dodge chance to 0%, ensuring that everything hits your shields.)
Note that you used to be able to manually remove power and restore it in combat, to get points, but this has been patched.
Repair
A crew member gains one point of experience for getting the "finishing blow" when repairing a (sub)system. Note that hull breaches provide no repair experience.
There's no specific way to train this as it requires your systems to be damaged. Though you can focus the XP gains by always having the same person run around and repair everything after a battle.
Combat
A crew member gains one point of experience for getting the finishing blow when fighting an enemy crew member or (sub)system.
This generally gets trained in "real" situations. However, since XP is gained for taking out systems, a few extra XP can be gained from boarding if one tries to take out the enemy's systems before the crew.
Advanced Edition:
Asteroid fields used to be an excellent way to max out the shield stat on one or more characters, however, with the advanced edition, this is no longer possible. Even in combat, shield damage from asteroids no longer provide any benefit. Thus, if you want to raise the shield stat, you are best off letting an enemy incapable of breaking through all of your shields repeatedly hit you.
A trick regarding hand-to-hand combat is now to board an enemy vessel that has a cloning bay and repeatedly kill off the crew in melee combat. As long as you don't destroy the cloning bay while all of their crew is dead, they will continue to re-spawn -- allowing you to maximize the combat stat on as many of your crew-mates as you'd like if you are careful.
Yes that is correct.
Shield operators get a point for every shield bubble they help to bring up in combat.
Weapon operators get a point for every weapon they help fire. This is per target action, so a single burst of 5 shots from a Burst Laser 3 will only provide 1 experience (but could provide multiple experience in shield, pilot, or engines to a target crew).