It discusses the flexibility or fluidness of the programming process - you can set your own unique goals and push yourself to a higher level when you are ready. Low entry, high ceiling. But it is not that easy or structured because the feedback is tantalising, elusive and expectations can be dashed. It also points out that programming is a very emotional process. The challenge draws you in and self esteem can be built or destroyed quite easily. Hard fun is sometimes fun but not always fun.
"In some senses, computer programming itself is one of the best computer games of all. In the "computer programming game", there are obvious goals and its easy to generate more. The "player" gets frequent performance feedback (that is, in fact, often tantalizingly misleading about the nearness of the goal). The game can be played at many different difficulty levels, and there are many levels of goals available, both in terms of the finished product (whether it works, how fast it works, how much space it requires, etc.) and in terms of the process of reaching it (how long it takes to program, etc.). Self-esteem is crucially involved in the game, and there is probably the occasional emotional or fantasy aspects involved in controlling so completely, yet often so ineffectively, the behaviour of this responsive entity. Finally the process of debugging a program is perhaps unmatched in its ability to raise expectations about how the program will work, only to have the
expectations surprisingly disappointed in ways that reveal the true underlying structure of the program."
Malone, T. W. (1980, September 19). What Makes Things Fun to Learn? Heuristics for Designing Instructional Computer Games. Paper presented at the Association for Computing Machinary Symposium on Small and Personal Computer Systems, Pal Alto, California.