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
- studies and expert opinions: http://www-2.cs.cmu.edu/~pane/cmu-cs-96-132.html
- An Analysis of the Errors Made by Novice Programmers http://www.sacla.org.za/SACLA2006/Papers/RP01 Pillay Programming Errors.pdf
- An Exploratory Study of Novice Programming Experiences and Errors http://gild.cs.uvic.ca/docs/summary/SuzanneThompsonThesis.pdf
- Studying the language and structure in non-programmers' solutions to programming problems http://web.cs.cmu.edu/~pane/ftp/PaneRatanamahatanaMyers2001.pdf
- A development study of cogntive problems in learning to program http://www.ppig.org/papers/15th-tucker.pdf
- Visualizing Roles of Variables to Novice Programmers http://www.ppig.org/papers/14th-sajaniemi.pdf
- The Roles Beacons Play in Comprehension for Novice and Expert Programmers http://www.ppig.org/papers/14th-crosby.pdf
- From Procedures to Objects: What Have We (Not) Done? http://www.ppig.org/papers/19th-Sajaniemi.pdf
- Cognitive strategies and looping constructs: an empirical study http://cq-pan.cqu.edu.au/david-jones/Teaching/Innovation/Lit_Review/p853-soloway.pdf
Expert programmers
Visual programming languages
- bibliography: http://web.engr.oregonstate.edu/~burnett/vpl.html