By far the most under-rated and the most useful skill to have as a programmer.
When I seriously started programming, I spent one hour every day for 30 days on typing using one of those many typing softwares.
The first thing I noticed was how much less thinking I was doing with regard to my typing. I didn't have a part of my brain guiding my fingers any more - the fingers already knew. The other thing I noticed was that I wasn't typing by characters, I was typing by word.
With these two things I was already able to write programs faster.
But the other things I've noticed have happened so slowly that I almost didn't realize it. While typing, I can see a broader swathe of the program on the screen than I used to. Code smells popup in my head way sooner. While typing logic patterns that are common, my brain seems to be able to think across the entire program better rather than get caught up in the current file and program flow. All this probably because the brain doesn't need to constantly flit around telling me what key to press.
Because of all this, I tend to use keyboard shortcuts everywhere. Whenever I start using a new program regularly, I either memorize or create keyboard shortcuts.
Now, when people give me credit for being fast or more productive or knowing a language better, I think probably all of those things, even if true, would surely have taken longer if I didn't know typing.
I tell this to every beginning programmer. But sadly, till date, I've not seen anyone dedicate the time to learn this one skill that would help them in their careers, in their knowledge, in their life, in so many ways.