One of the things I’ve been trying to learn as I take free online classes is how to program.
Programming logic does not come easily for me, and I can’t tell you why because I don’t understand why. I think I lack some internal ability, sort of like having no athletic talent. I’ve gotten college credit in C (I got an A, actually) and in formal logic as well (I think I got a B in that), but it always took me halfway into the semester before the light bulb turned on and I suddenly got it. And then I promptly forgot it as soon as finals were over. And not because I wanted to forget it, either. The muscle memory just hasn’t formed yet.
I played basketball in high school for three years, and I was really, really terrible at the physical tasks of running while bouncing a ball or getting open when I didn’t have the ball. So I spent most of my career on the bench. The highlight of my career came when I was sitting out for a couple of months waiting for a broken ankle to heal. I got to operate the scoreboard and game clock for tournaments while keeping the score book at the same time. The intellectual challenge of recording in a book who took the shot (and from where), who got the rebound, who scored, who got an assist, who blocked a shot, and who got a steal while simultaneously keeping track of a live clock and scoreboard was super fun.
But I sucked at playing. I seriously was awful in games. I did, however, have a very, very accurate jump shot. Like a machine, I could nail three-pointer after three-pointer from the baseline in practice — and hit nothing but net. My record from the free-throw line — again, in practice — was something like 47 straight. This was because I shot balls for hours almost every day for years. In other words, by sheer force I was able to overcome part of my total lack of coordination. As I could rarely get open in a game, however, this turned out not to be a terribly useful skill. But I knew, deep down, that I could hit a shot, and that still means something to me 25 years later. (Also, I won a lot at HORSE, which was cool.)
This is how I think about programming. If I just keep working at it and working at it, eventually enough will stick to make me effective, if only in practice. I have no illusions of turning the skill into a career. I just want to know I can do it. I like the challenge. I want to beat the damn thing.
To that end, I’m doing Harvard’s CS50 course on EdX. I’m very impressed with the class so far; the instructor is dynamic and he’s making the subject interesting and understandable. The first project uses Scratch, a programming interface that MIT put together that’s simple enough that my 9-year-old daughter was able to jump right in and start creating animations within it. (That doesn’t mean I can do it, obviously.) It’s way less intimidating than C++, however, which I was attempting to learn a few months ago from some very good instructors at Rice who had a class up on Coursera.
If you have any interest in doing free college classes on any subject (humanities, science, math, literature, law, education, whatever) I’m telling you: top-notch universities are offering them on those two sites. Seize the chance before they start charging money.
Also, even if you have zero interest in programming, take a look at Scratch. It’s got a really cool interface where you snap puzzle pieces together to create programs. You don’t have to make anything; you can just watch animations or play games that other people have created, including remakes of Frogger and other arcade games from the ’80s. It just looks beautiful, like how an architect of fine houses would envision a programming language.
I’ll let you know how I fare.
Categories: Brain Workouts