PCPlus 300: 10 mistakes every programmer makes

The call went out: November 2010 was going to be the 300th issue of PC Plus. Our articles had to be better than ever before and preferably some kind of top N list to go along with the issue’s theme (the lead article for example was 300 Advanced PC Tips).

PCPlus logoSo, my top 10 algorithms? Data structures? A possibility, but I wouldn’t have much room to say anything in depth about each (“Number 4: Quicksort. It’s very fast at sorting but a bit complicated to get right. Number 5: Red-black trees. A very fast search structure but nearly impossible to get right.”). After some thought I finally decided on listing my top 10 programming mistakes. I’d been doing a series of “Messages from the CTO” for the DevExpress newsletter and some of these top 10 items came up during my writing those for work. Hey, I’m all for recycling!

As it happened, this particular article turned out to be the most popular I’d ever written for PC Plus. It got published online by techradar.com, with more comments than I ‘d seen before for one of my articles posted there. I got mail about it. I seem to remember it got picked up by the Code Project newsletter as well. All in all, quite a good one.

This article first appeared in issue 300, November 2010.

You can read the PDF here.

(I write a monthly column for PCPlus, a computer news-views-n-reviews magazine in the UK (actually there are 13 issues a year — there's an Xmas issue as well — so it's a bit more than monthly). The column is called Theory Workshop and appears in the Make It section of the magazine. When I signed up, my editor and the magazine were gracious enough to allow me to reprint the articles here after say a year or so.)

Album cover for Let's Stick TogetherNow playing:
Ferry, Bryan - Re-Make/Re-Model
(from Let's Stick Together)

Loading similar posts...   Loading links to posts on similar topics...

4 Responses

#1 Michael Ridland said...
21-Dec-11 6:07 PM

That's a pretty good article, mostly I agree.

Except, not making estimates is not a mistake! Estimates are stupid because they’re never accurate and decisions should be made at the point when you have the most information about a problem (last minute), basically estimates are a waste of time that give a false perception of control.

Anyway the argument in ‘not making estimates’ is not talking about scheduling estimates it actually talks about scalability, using twitter scalability problems as an example therefore it’s kinda conflicting with premature optimisation. But if we are talking about Scalability, then scalability of twitter should have never been an issue because developers should always code in a style that can handle most scalability problems. Whenever I write a application in asp.net it's automatically developed for scalability, it's inherit in my development style I assume other good developers would be the same.


julian m bucknall avatar
#2 julian m bucknall said...
03-Jan-12 12:03 PM

Michael: I suppose part of the reason for writing this "top ten" list is to make people think about what their mistakes might have been. Your point is valid, of course, but there's only so much I could have written in two thousand words for publication.

Cheers, Julian

#3 Bryan Slatner said...
18-Aug-12 10:01 AM

When you wrote the simile "slower than a Greenland glacier in January", did you actually research glacial velocities or did you just figure they move pretty slow about then? :) I think this requires a fact-finding expedition.

julian m bucknall avatar
#4 julian m bucknall said...
18-Aug-12 12:00 PM

Bryan: I must admit to a certain level of assumption in that Greenland is in the Northern Hemisphere and January is in the midst of winter, ergo glaciers would be slower than in say July. But maybe that's false! Ergo, a fact-finding trip to Nuuk is in order...

Cheers, Julian

Leave a response

Note: some MarkDown is allowed, but HTML is not. Expand to show what's available.

  •  Emphasize with italics: surround word with underscores _emphasis_
  •  Emphasize strongly: surround word with double-asterisks **strong**
  •  Link: surround text with square brackets, url with parentheses [text](url)
  •  Inline code: surround text with backticks `IEnumerable`
  •  Unordered list: start each line with an asterisk, space * an item
  •  Ordered list: start each line with a digit, period, space 1. an item
  •  Insert code block: start each line with four spaces
  •  Insert blockquote: start each line with right-angle-bracket, space > Now is the time...
Preview of response