I was taught typing on a typewriter, but I really refined my skills playing RuneScape in high school. MMORPGs with a text chat system like that are a great way to learn how to type, as you have to respond quickly to what people are saying. An open source one that I've been eyeing for a while is
Ryzom. Don't know why that one isn't in distros.
It's just not as satisfying to use a keyboard once you get into programming and have to type all kinds of weird symbols far from the home row with club-like hands. It's not good ergonomically or psychologically, but I digress.