Spaghetti code is not getting any respect. Software experts denigrate it; coding classes avoid it like the plague; and when students go out into the world, they spend inordinate amounts of time trying to follow their mentors’ instructions. This unalloyed disparagement of spaghetti code is unfortunate, because we owe so much to it. Continue reading In Praise of Spaghetti Code
Emö Rubik invented the Rubik’s Cube in 1974 and it became the world’s most popular puzzle. The cube consists of 26 cubelets that move and turn when the faces are twisted. This cube (pictured above) is in a solved position when each face is a uniform color. The goal is to take a randomized cube though a series of face twists to transform it into the solved position. Learning to solve a Rubik’s Cube can teach us something about learning to program.
Programming has always been seen as a skill in addition to a thinking process. But what exactly does it mean when we say programming is a skill? How is this a useful insight? Continue reading Can a Rubik’s Cube Teach You Programming?
Playwright and raconteur George Bernard Shaw is reported to have said, “The greatest problem with communication is the illusion that it has been accomplished.” This is true both for writing a text or giving a speech. Why? Largely because while grappling with mechanics of writing, we all too often lose sight of another important insight into effective communication enunciated by novelist and essayist Robert Louis Stevenson: “Don’t write merely to be understood. Write so that you cannot possibly be misunderstood.” Continue reading What Can Paragons of Literature Teach Us about Writing Better Computer Programs?