I want to learn how to program. Why, that is for another post. But then where to begin. You can’t just learn programming, it seems, you have to pick one among many of programming languages to learn. And each programming language has a corresponding community. And these communities behave like football supporters for their own language. While they would be better pressed to support programming in general ’cause that’s a cause for which many new converts can still be made, and these converts don’t care for the particularities of your language—yet. Anyway, this turns me off.
So this sounds just right:
In CS 61A, we are interested in teaching you about programming, not about any particular programming language. We consider a series of techniques for controlling program complexity, such as functional programming, data abstraction, object-oriented programming, and query systems. To get past generalities you must have programming practice in some particular language, and in this course we use Scheme, a dialect of Lisp. This language is particularly well-suited to the organizing ideas we want to teach. Our hope, however, is that once you have learned the essence of programming, you will find that picking up a new programming language is but a few days’ work.
I get the big blue book, and I start watching the screencasts. Parts of me get stimulated that I had forgotten I have. Like some kind of abstraction gland. It’s pretty nice.
But it’s also way too difficult. The way in which Abelson & Sussman explain computation is by consistently comparing it to math. Math is probably a way of thinking in which Science majors are already comfortable. Yet I don’t do math on a regular basis. So it’s like teaching me a language I don’t know by comparing it to another language I don’t really speak either.
A different strategy is needed. I need to work with what I know: words, images. Peter Norvig says to use whatever your friends are using: “The advantage you get from learning from your friends will offset any intrinsic difference between OS, or between programming languages.” I’m gonna ask my friends to help me get started.
To be continued.
Maybe you’re not trying hard enough :)
by habitus - August 11, 2011 9:29 AM
Reply
I loved the preface to SICP. You don’t need to know math to understand it.
by jenseits - August 11, 2011 9:30 AM
Reply
Jenseits, You might want to get yourself a copy of Design By Numbers, written by John Maeda in 1999: "I created Design By Numbers during in a time when getting artists and designers to program the computer was just beginning to become in vogue. I spent most of the earlier half of the 1990's espousing the importance of getting beyond the tools, and into the medium of programming itself. Working on Design By Numbers was a kind of revelation for me. I realized how uninteresting it is to program." http://www.maedastudio.com/1999/dbn His book inspired the development of Processing. It is easy to see why: http://dbn.media.mit.edu/introduction.html
by Bruno - August 11, 2011 10:56 AM
Reply