When I moved to the UK a couple of years ago I gladly switched to the UK keyboard layout which, unsurprisingly, happens to be far better than the Italian one to type all those nasty non-alphabetical characters you need when programming.
Despite the wide availability of those on-the-fly layout switching tools, I decided to use the UK design exclusively, as anyway the Italian layout is not even particularly good to type Italian! For instance, it’s impossible to get capitalized accented characters. Fail.
Luckily, I found out a good alternative. Apparently most Linux distributions include a nice UK keyboard layout that makes AltGr followed by most punctuation keys behave as a dead key. That way, you can not only type «è» and «È», but also «ñ» (AltGr+]) and even crazier stuff very easily. Unfortunately the default UK layout in Windows doesn’t behave this way, and the “dead keys” layout makes «’» itself a dead key, which is very inconvenient in my opinion. So in the end, thanks to the excellent Microsoft Keyboard Layout Creator I ended up “porting” the behavior of the default Linux layout to Windows.
While I was at it I also decided to learn touch typing. I ended up using KTouch, an excellent little program. All in all I was a bit disappointed to find out that touch typing is really just optimized for textual English, while, again, I was hoping to cover also a heavy use of punctuation and accented characters. In this case I eventually wrote a small script to generate new lectures for KTouch according to my requirements.
Should someone be interested, both tools are now available here.
Note: all this stuff is based on Querty. I’m not that hardcore.