my brain’s too small

August 4th, 2001

Pike may think he’s at a disadvantage when he says

I feel I have a bunch of weaknesses in design and fundamentals, because I’m self taught. My main goal now is not only teach myself ASP but to gain a hard background in the theory and why all this stuff works. I can tell you how to make an array call a function and process to it, but I don’t know why. Strange because it seems some developers have trouble saying they need to work on their skills.

but I think he’s at the peak of his form. He’s in the thick of developing a craft. The lust for knowledge is what will drive him to succeed in this. His humility allows him to keep on the road to knowledge, where those who think they’re there already will never get there, because the road ain’t got no end. There is no there. So there.

In 1972, Edsger W Dijsktra wrote a paper for the Association of Computing Machinery and presented it at the Turing Award Lecture at the ACM conference in Boston that year. The paper was entitled “The Humble Programmer”. The gist of it is that a truly good programmer will admit that his cranium will never be up to the task of managing the complexity necessary for many problems, and must call upon the machine to help him. It’s one of the truly classic seminal texts in the history of programming and deserves a good read. Unfortunately, I think it’s hard to find. I have it in a copy of Ed Yourdon’s Classics In Software Engineering, which is unfortunately now out of print.

In programming, fundamentals are way more important than most people know. It’s self-taught guys who really care about the craft who actually learn from the classic teachings of Dijkstra, Yourdon, Jackson, DeMarco, Wirth, Knuth, et al. Sure, some of it washes over huge classes of rote-learning students every day, but it only sticks with those of us for whom programming is a passion.

My all time favourite programming book is Steve McConnell’s Code Complete. If you only ever buy one programming book, this is the one. There’s an entire chapter on personal character, and you’ll be all be pleased to know that laziness is an inherent positive attribute in programmers.

While I’m doing the personal book recommendations thing, get Dale Carnegie’s How To Win Friends And Influence People. It’s all about how being a truly good person will make you successful. Not acting like one – being one.

One comment to “my brain’s too small”

  1. […] I’m having a discussion with Chris Nott about Code Complete and more generally, the learning of classic programming fundamentals. I touched on this a week ago, but it deserves a bit more mention. I’ll just quote something (warts and all) I wrote to Chris: I can’t tell you how many times I have seen idiots with useless compsci degrees who haven’t a clue who the fuck Dijkstra or Yourdon are or what any of their contributions were. Imagine an architect who hadn’t heard of Christopher Wren or Frank Lloyd Wright. Sheeesh. […]