How to be a Programmer

Button with Enter Code written next to it.

I can’t remember how I stumbled on this essay “How to be a Programmer: A Short, Comprehensive, and Personal Summary“, but it was probably via Digg.com.

I’ve not yet had the change to read it through fully, but I have printed it to PDF so that I can access it at a later date, and on my Psion if I want. It really is worth a read.

Debugging is the cornerstone of being a programmer. The first meaning of the verb to debug is to remove errors, but the meaning that really matters is to see into the execution of a program by examining it. A programmer that cannot debug effectively is blind.

In some ways it reminds me a little of a book that my friend Bernard recommended many years ago: Code Complete by Steve McConnell.

Code Complete is now in its second edition, and has its own website: www.cc2e.com where you can download sample chapters and example code.

The book is packed with examples of good practice, and tips galore. Back when I was spending more time programming my Psions in OPL I found little tips like prefixing all my global variables with a lower-case ‘g’ really useful, eg gHighScore. It meant that at a glance I could tell whether a particular variable in a procedure was local or global. Simple, obvious, and quite beautiful.

There have been plenty of examples of good behaviour that I’ve been able to incorporate into my web design practices, such as the importance of planning and designing before building, and techniques for self-documenting the code. I even managed to squeeze a sermon out of a one chapter a few years ago: comparing our faith to software development. Sometimes a piece of code says do x, y and then z regardless of what else is going on at the time; at other times the code depends on where it is, and what else has happened. Sometimes our faith is like that too, sometimes we’re in a different place when God comes a visitin’ again.

The day that I preached that sermon there was a visiting computer programmer from Texas in the congregation in Inverness. I was blessed by that, and if I remember correctly the comments that I got at the West Door as people were leaving he was about the only person who fully understood that particular metaphor that day. But then God is like that sometimes: sometimes part of the message is tailor-made for that one person.

I wonder if I can get a sermon out of “How to be a Programmer”?

Geek porn™, pt.2

Ladies and gentlemen, the Optimus Mini Three

Optimus Mini 3

Last summer I blogged about the forthcoming Optimus keyboard, a full-size keyboard with a difference: the keys are all tiny OLED screens where each key can be customized to display whatever you want to appear on it. You want a Russian keyboard, sure. You want a customised keyboard for playing Battlefield 2, or Quake, or Call of Duty 2, no problem. (Check out the screenshots here.)

While the full keyboard is due to appear on the market at the end of this year (2006) they have a smaller, three key version available very, very soon, called the Optimus Mini Three. Perfect for those Ctrl+Alt+Del moments (I’m not kidding, click on Login/Lock at the bottom of the At a glance page).

It is available for preorder now for only US $100.

Digg and SkimCSS

Arm of a JCB digger.
“Can you dig it?”

A couple of sites that I’ve found both really useful and interesting, and that help keep me up-to-date with the latest goings on in the world of both general technology and specifically CSS, are Digg and SkimCSS.

They both work in a similar way: people submit short articles to the sites, along with a link to another story or resource that they’ve found useful or interesting, and visitors to the site vote on how much they like that submission. With SkimCSS you give it a vote out of 5; with Digg if you dig the story (man!) then you “digg it”! The more votes a submission has the higher it scores and you get an idea of how popular it is, and therefore (hopefully) how useful you may find it.

Examples

  • Check out this homemade Web server — spotted on Digg.com. Doesn’t exactly look safe.
  • A post that warms the cockles of my heart, if indeed my heart has cockles: Original Firefox team member takes on new IE7 beta. Surprise, surprise IE7 still falls short of the firey, foxy one! (Spotted on Digg.com.)
  • Robust CSS Drop Shadows — spotted on SkimCSS.

I’ve subscribed to the RSS feeds from both Digg and SkimCSS, and also added them to my @ Daily bookmarks folder for quick reference from within Firefox.