I just play what I feel like playing... I listen to a song and try to play it. Sit down and listen to a song, try to imitate what you hear. I decided to practice some scales a while ago and it bored me, I know the basic ones though. I don't even know the basic chords, just a few.
I never fully learned a song, just pick out the things I like the most and practice those. Always by ear. If it doesn't sound good, you are most likely doing something wrong. Tabs won't show you that...
Try to have someone to jam with, it helps your improvisation... When I play with other people I get so many ideas. Practice what you really want to learn.
If you feel something isn't working for you, take a break. Re-think it and start it slow til you have it perfectly figured out and progressively increase the tempo. Always play it in a tempo that you are comfortable with. If you start playing it faster and it doesn't sound clean, stop. Try to find your threshold and grind it until you are 100% comfortable with it, then you increase it. That is the key, at least for me.