At work, I am a manager, and the truth is that I've always been a little bit embarrased that I don't really know how to do so many of the things that the people for whom I work do--especially, program. I've been working with computers since my Dad got me my first Zenith Z-148 (an IBM XT Clone) The catch is that I've always been content to be a user--working with the programs that others created--learning them, getting a sense of what's possible. And even many programs are worlds onto themselves--feature upon feature--tapped and untapped potential. But somehow I think I am capable of being more than a user--I think I can learn how to program. I don't expect it to be an easy road, but I've taken the first step of asking for help and my friends Anders, Eric, and Jonah have all responded enthusiastically. Why am I undertaking this project?
I was inspired by a recent post where Anders outlined an ideal curriculum for new computer science students at an area high school. The curriculum recognized that the audience is multi-level--some kids will become programmers and others won't. Anders took the position that computing need not be "arcane, complicated and boring," which was the impression I got after I took my first and only programming class back in high school. (Then again I thought just about everything in school was boring back then.) But Anders' post makes clear that programming is about a) solving complex real-world problems and b) eliminating dull, repetitive tasks. From my years of working in the industry, it's also clear that programming can be lots of fun.
And so I begin. I have 2 assignments that I am working on because this effort in programming is going to culminate in a final project that will help triathletes (especially this one) plan their training and help them become better athletes. The first task is to identify the data structures that I want to track. Eric's tip for this step is to focus on the nouns--I'm still working on the list, but to start my nouns are: date, duration, focal point, type, level, intensity, description and debrief. The second assignment is to start working my way through How To Think Like a Computer Scientist to master basic terminology and concepts. I'm also going to be looking at Structure and Method of Computer Programs as a point of comparison. I'm warned that the latter is a bit more dense, but I'm encouraged already by the introduction:
"What's in your hands, I think and hope, is intelligence: the ability to see the machine as more than when you were first led up to it, that you can make it more.'' - Alan J. Perlis (April 1, 1922-February 7, 1990)
We can make it more. Part of what's so exciting about the web these days is how it facilitates learning by empowering people to collaborate. What's even more exciting is that I think we've only just scraped the surface of what's possible for learning, for knowledge, and how we work together.







Comments