I'd like to do a build with dedicated punctuation keys such as {} () : $ " < > ? ! @ # ~ +. Specifically for programming, so I don't have to hold down shift for them.
As a matter of curiosity, where will you put the extra keys? Between the top row and function keys, or on the left where the function keys used to be?
Moving off-topic slightly, there are some "programmer" keymaps that swap the top row keys' shifted states.
"1,!" and "2,@" become "!,1" and "2,@", and so forth.
Hit Capslock or Shift to key numbers, or use the numeric keypad if your keyboard has one.