I'm not too embarrassed to say it, but I was looking at my fingers when I was typing until I was a senior in highschool. I was sneaky with the keyboarding teacher. Over the past year or so, I've really been trying hard to learn to type faster and more efficiently.
This goes without saying.
I still have a hard time with this, but I have noticed a speed improvement. My suggestion is to force yourself to not use the number pad or get a keyboard like this. My keyboarding teacher told us it was Ok to look at your fingers when looking at hitting numbers. It can be difficult, but very worth it.
I'm a big fan of VIM. VIM prevents you from EVER having to use the mouse or arrow keys. I'm still not an expert on it, but I don't see how someone could be an expert. There is a ton of stuff to learn. I've been watching Derek Wyatt's videos and they have helped out A LOT. I generally use VSVim for my Visual Studio. It's not perfect, but it's pretty darn close.
This is pretty drastic, but drastic measures can yield awesome results. Try Dvorak. Qwerty was designed for typewriters to help prevent jams. Essentially, Dvorak keeps your fingers on the home row 70ish percent of the time. You can read a good article about why Dvorak is faster here.