What+is+programming

What is programming?
http://billkerr.blogspot.com/2006/02/search-for-best-programming-language.html (Abelson and Sussman)....writing a computer program is really about the intellectually difficult task of how to control a complex system. The programming language provides us with a means to express and exploreideas about this which would otherwise be too complex to manage.

They go onto outline the techniques used to achieve this, which are:
 * build abstractions that hide details where appropriate
 * build a user interface that enables us to "mix and match" well understood pieces
 * establishing new languages for describing a design (I hadn't understood that LISP can do this. Another thought is that Game Maker Language is such a language,with many game specific programming features)

They also talk about the nature of computing knowledge, that it is about the study of the structure of knowledge from a "how to"perspective. It is not just about describing the world, it is more to do with changing theworld.

This is why I like computing. It ought to be a doing subject, about writing programs to do complex things that we couldn't do before. And it's why I don't like courses that focus on top down design and dry theory which is often divorced from real practice. It's about world view, who I am.

http://billkerr.blogspot.com/2006/02/lisp.html Paul Graham summarises the nine new ideas of LISP (when it appeared)... Ideas 1-5 are now widespread but the last 4 have by and large still not entered the mainstream

[|When understanding means rewriting] Jeff Atwood (Coding Horror) 1. programmers spend more time understanding code than coding 2. what is the best way to understand a complex app like WoW? by looking at the source or using it?

IMO some developers delve into the real nature of programming, whereas teachers do not from what I have observed - not going into the real issues and difficulties of coding tends to preserve programming as a "mystique". This is not necessarily intentional elitism. When you do know something well (expert) then it is easy to forget how you got there and also it can be a drag to have to explain it all to someone who doesn't get it. Being an expert does not mean you are a good teacher.

Programming is a means of communication between people and machines and between people (when they have to debug your code) it is a 21st century literacy, see game making manifesto (Tony 26 Sep06)