Disclaimer: USCF B-player here.
My advice would be to play marginally higher-rated players and ask them for help in determining what one could do better. Most people will fall over themselves to help someone who puts forth an honest effort (hence, web sites like this one.) At tournaments, I've never had an opponent unwilling to go over a game.
I have had some surprises by entering my games into Crafty and letting it analyze every move. You can see pretty quickly where things go sideways. At my level the reason I lose is always tactical. That is, after my move, Crafty shows how I'm losing a piece ;-) It is encouraging that my opponents don't always make the best move, either, so I am not wholly doomed.
Back in the day I had an instructor (USCF Master) who advised A and B players: tactics, tactics, tactics. That is, we could win all our games just by concentrating on the next 4 moves or so. When that quit working, we'd be much better players.
- get an instructor who can beat you every time (+400 rating points, or so.)
- learn a few openings pretty well. It's hard to stay motivated when every game is a mess by move 7.
- study problems
- focus on having good games, not on winning per se.
- don't be afraid to lose.
- play a lot, record your moves, then run them through the computer.