Being both an employer and a coder I definitely see the complexities before you. What I have found to be the best way is to give bonuses based on three things. #1 being the skill/title of the programmer, #2 being their final accomplished goal to be achieved (no bugs, etc), and for #3, have them complete online tests... This will encourage them to learn more, get things accomplished, and do it right.
Being both an employer and a coder I definitely see the complexities before you. What I have found to be the best way is to give bonuses based on three things. #1 being the skill/title of the programmer, #2 being their final accomplished goal to be achieved (no bugs, etc), and for #3, have them complete online tests... This will encourage them to learn more, get things accomplished, and do it right.