Suggestion for a system that makes you a better programmer: Try to put the programmer into the end-user's role as often as possible. The PL model should not encourage thinking in terms of hacking, but in terms of end-user behavior.
This page collects papers about programming language usability.
Novice programmers
Expert programmers
Visual programming languages