For programming, I really enjoy the Corne (crkbd). Having all symbols and numbers on easily reachable keys is much more ergonomic, and the tenting helps a lot with wrist strain. I also have macros for stuff like moving lines around, jumping forward/backward, deleting entire lines, etc.