TITLE: Programming as Inevitable Consequence AUTHOR: Eugene Wallingford DATE: March 07, 2010 5:45 PM DESC: ----- BODY: My previous entry talked about mastering tools and improving process on the road to achievement. Garry Kasparov wrote of "programming yourself" as the way to make our processes better. To excel, we must program ourselves! One way to do that is via computation. Humans use computers all the time now to augment their behavior. Chessplayers are a perfect example. Computers help us do what we do better, and sometimes they reconfigure us, changing who we are and what we do. Reconfigured well, a person or group of people can push their capabilities beyond even what human experts can do -- alone, together, or with computational help. But what about our tools? How many chessplayers, or any other people for that matter, program their computers these days as a means of making the tools they need, or the tools they use better? This is a common lament among certain computer scientists. Ian Bogost reminds us that writing programs used to be an inevitable consequence of using computers. Computer manufacturers used to make writing programs a natural step in our mastery of the machine they sold us. They even promoted the personal computer as part of how we became more literate. Many of us old-timers tell stories of learning to program so that we could scratch some itch. It's not obvious that we all need to be able to program, as long as the tools we need to use are created for us by others. Mark Guzdial discusses his encounters with the "user only" point of view in a recent entry motivated by Bogost's article. As Mark points out, though, the computer may be different than a bicycle and our other tools. Most tools extend our bodies, but the computer extends our minds. We can program our bodies by repetition and careful practice, but the body is not as malleable as the mind. With the right sort of interaction with the world, we seem able to amplify our minds in ways much different than what a bicycle can do for our legs. Daniel Lemire expresses it nicely and concisely: If you understand an idea, you can implement it in software. To understand an idea is to be able to write a program. The act of writing itself gives rise to a new level of understanding, to a new way of describing and explaining the idea. But there is more than being able to write code. Having ideas and being able to program is, for so many people, a sufficient condition to want to program: Sometimes to scratch an itch; sometimes to understand better; and sometimes simply to enjoy the act. This feeling is universal. As I wrote not long ago, computing has tools and ideas that make people feel superhuman. But there is more! As Thomas Guest reminds us, "ultimately, the power of the programmer is what matters". The tools help to make us powerful, true, but they also unleash power that is already within is. By the way, I strongly recommend Guest's blog, Word Aligned. Guest doesn't write as frequently as some bloggers, but when he does, it is technically solid, deep, and interesting. -----