On Algorithm Development and Humble Programmers

Have you wondered how to design an algorithm? Or analyze it? Do you know that the “Principles of Algorithm Development” was a Ph.D thesis of Jon Bentley, written as far back as 1976? I did not, either.

I found this, thanks to one of those DDJ Conversations. Jon Bentley’s Programming Pearls is a classic and something that needs to be on the reference shelf of every developer. Here are a snippets of the conversation.

Principles of Algorithmic Design

The principles include generalizing, using high-level and abstract description of algorithms, examining degenerate cases, and employing standard speed-up tricks.

The difference between design and analysis of algorithms

The goal of algorithm design is to develop a good algorithm; the goal of algorithm analysis is to understand how good an algorithm is.

Programming is subtle

Programming is subtle, and we must learn from Edsger Dijkstra to be “humble programmers.” We have lots of tools to use: Precise specifications, formal methods, and extensive tests among them. One of the best tools is the eyes of really smart friends.

I love the conclusion of this interview. It is something to remember.

Dig deep enough, and you’ll find interesting algorithmic problems at the heart of most real systems.

Advertisements

Please Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s