Thursday, December 16, 2010

Reading for Programmers

My son the English teacher was asked by a student interested in computer science why he had to do all that reading. I had several answers, but the main one is that programming is a creative task of achieving with running code the goals and requirements expressed informally, in a natural language, by team mates and users. If programmers can't read closely, they cannot understand what they have to do, and they will not recognize gaps that need further discussion to fill in. Their code will not meet the need, and it will behave unexpectedly when the programmer fills a gap in a way that does not match the unexpressed desires of the user. As a professor of freshman CS, one of the most common problems for smart students who thought they knew to program already was their failure to read and interpret correctly a carefully crafted problem statement. They'd sometimes complain that the statement was confusing, but the reality was that the statements they complained about were for the most part complete and unambiguous. The same need for careful, analytic reading pervades practical programming, for interpreting requirements, protocol specifications, algorithm definitions, and language and API documentation.

But why to teach close reading with literature, rather than programming manuals? First, most programming manuals are not that well written, and are pretty boring unless one needs them for a particular task. Second, analyzing literature brings out the varieties of human expression and argumentation, which a programmer will face when dealing with nontechnical users, managers, and critics.

Sunday, December 5, 2010

New Toys

All-mountain skis mounted with Dynafit bindings (taken from another pair of skis) that I hope will work well in varied conditions; burly boots with interchangeable alpine and tech sole blocks for inbounds days and shorter tours (my trusty Dynafit Zzero 4Cs are still the shoes of choice for long backcountry days).

2M vertical feet

Playing with gravity: “The enjoyment is gravity,” Hill said. “There’s not many sports where you can just enjoy gravity.”

Greg Hill is close to his goal of climbing and skiing 2 million vertical feet in 365 days. That's on average 5480 ft/day, every day. My longest days have been a bit over 6k ft, so I know what it feels like to do one of those on its own; doing 365 of them back to back is inconceivable. Go Greg! (Via Wild Snow).