DHO is Mostly Confused

Rants from Devon H. O'Dell

Rote Learning in CS

Does rote learning have a place in computer science education? In my talk at QCon, I stated: [Learning through discovery] is so much better than this typical, learn-by-rote method of teaching that we all sort of think of as teaching… I just read a blog post by Zed Shaw suggesting that rote learning is basically required to become skillful in the field. I came into the article wholly skeptical – I haven’t always been a fan of what Zed writes, and my own research seemed to contradict what I thought the thesis would be.

Read On →

Go Go Gadget Co-Ro

I like coroutines. The other day on my team’s Slack channel, someone introduced Adam Dunkels’ protothreads. Either I hadn’t seen these before or had forgotten them, but it looked cool. A short conversation ensued, and at some point a colleague offered: i can’t ever decide if i like [coroutines] or not. so ignoring that, i think there’s a decent heuristic: something like tatham’s coroutines will provoke a conversation every time you use it.

Read On →

Discovering Undefined Behavior

The C language is infamous for undefined behavior. Fantastic, multi-part articles by Chris Lattner and John Regehr have made their rounds over the years, describing several instances of undefined behavior. In particular, they describe how compilers are allowed to assume it does not occur in correct C programs, and therefore make optimizations that seem to remove correctness from programs. The intent of these posts seems to be to educate people that they should be aware of what consitutes undefined behavior.

Read On →

Help Vampires Aren't

Help vampires. It’s an idea apparently coined by Amy Hoy in an article she wrote over ten years ago. The “vampires” described are common in open source communities. They’re also prevalent in online chat communities like IRC, especially in channels ostensibly for help purposes. The blog post describes a real problem that people experience. Some people in these communities (usually neophytes) engage in maladaptive learning behaviors that drain the energy out of those who might be able to help them (hence the term “help vampire”).

Read On →

Pointers on Pointers

I’ve been hanging around in the ##c channel on Freenode (a channel for discussions about the C programming language) off-and-on for something like ten or fifteen years. One constant over that time (whatever my skill level) has been questions about pointers. They seem a topic that’s thoroughly confusing to many, especially neophyte hobbyists and autodidacts. Recently, I witnessed an explanation of pointers that involved people in small rooms, a man with a sign that points, and a magical great uncle named Merlin.

Read On →

More Posts