A Whack on the Side of the Head

I found out about this book in a seemingly unlikely place, Mark Rosewater’s design column Making Magic. Not that unlikely for me though because Mark Rosewater is one of my heroes. I enjoy reading almost every one of his columns. His writing on elegance and the many other aspects of design is applicable to all matters of thought engineering.

What’s all this gassing on about some trading card game designer, isn’t this an internet programming blog? This brings me to my point:

That’s Not My Area

Some of the biggest breakthroughs come from the cross-pollination of ideas: what does orange farming have in common with a web application? What does biology have in common with computation?

The Right Answer

Nothing is more dangerous than an idea when it is the only one we have.

Believing that there is only one right answer can be incredibly stiffling to creativity. Settling for the first answer that works will get you part way there as a programmer, but how often is the first answer the best answer?

Follow the Rules

Sacred Cows make great steaks. — Richard Nicolosi, Businessman

Just because an idea was absolutely right in the past doesn’t mean that it is guaranteed to be right today. The qwerty keyboard layout was designed to prevent typewriter jams by slowing down the typist. When was the last time you experienced a jam on your keyboard? How about repetitive stress injury? Problems change with the times.

To Err is Wrong

A man’s errors are his portals of discovery. — James Joyce

Software development is about making errors… constantly. If know a developer who isn’t making any errors then he isn’t writing any programs. How many things do you learn when everything appears to work? It often takes 50 errors to get to the first right answer and 5000 more to get to one of the best answers.

Roger von Oech’s A Whack on the Side of the Head has a list of ten mental locks that can prevent creativity. There’s a whole lot more in the book than just that though. So go ahead, read it.

A Brief Review of Code Complete (Really Brief)

Code Complete, 2nd Edition, by Steve McConnell

Code Complete is an enlightening book. Half of it is pure gold, and coming in at around 900 pages that means 450 pages of gold. It covers, in great detail, every part of the software construction process. I found out about it by looking at this list of top 100 best software engineering books. Coming in at #1 it seemed worth a read.

The most important point: “The primary goal of software engineering is to reduce complexity.” Things such as variable names, comments, live time of variables, cohesion of classes and methods, and coding conventions are all discussed. I don’t agree with all of the specific recommendations, but that’s the point: to consider what matters and decide what is best for the current situation of you and your team.

I also enjoyed what was said about programming in high level languages: “You save time when you don’t need to have an awards ceremony every time a C statement does what it’s supposed to do.”