You don't need to solve all the time or practice until you hurt yourself to get fast. Just carry a cube around, and when you have nothing better to do, do a few solves. Make sure you get used to what you are doing before you try to learn something new, so you have something to fall back on (that is, don't try to learn things too quickly).
If you want to get really fast (sub-20 or sub-15 even), the following things are important to learn/practice (in order of importance from most to least):
- Fingertricks. I don't just mean learn to do RUR' and stuff like that, I mean try out every way you can think of to do turns faster. Can you do (R2' F' R), (R' U2 R), (L' U R') (U' L)? How about the moves you normally do, but mirrored and using the opposite hand? See how many moves you can do in a minute (any moves allowed), or time yourself doing all the PLLs or even a random scramble. Anything you can learn will help out.
- Lookahead. Practice solving where you close your eyes whenever you turn, and make sure you can always do each step without looking or stopping. Once you can do that, when you do a solve, instead of watching what you are doing, look at the pieces for the next step. If you find them during the algorithm, just follow them so you can immediately see what case it is when you are done. During F2L, don't try to turn as fast as possible, but try to be as smooth as possible (no delays and few cube rotations).
- Algorithms. Make sure you know 2-look OLL and PLL at least, and then start learning the full PLL and then OLL algorithms. Solving is good, but as you're learning them you should do PLL or OLL attacks using your algorithm sheet to get a feel for doing the algorithms.