Good Developers vs Bad Developers

Being a good developer has nothing to do with programming languages, frameworks, design patterns or coding style.

It all comes down to (in this specific order of importance):

  1. being autonomous
  2. having decent communication skills (read: a bit better than cavemen's)
  3. being quite a nitpicker
  4. knowing that the skull's size is limited.
Developers must be able to work autonomously and to know when to ask for help. If a developer never, ever asks for help, then it's probably hiding dust under the carpet. If he asks for help too often, then perhaps he's not able to solve problems autonomously, or simply to use Google. Before asking for help, I make sure I've spent a few minutes looking through existing information, then I opt for other human beings that happen to be nearby, or simply head over to Stack Overflow.

Communication skills are obvious. Or perhaps not. Not everyone is able to communicate effectively. I am not, for example. I suck at explaining things, and because I suck, I make sure to use appropriate wording, re-read my emails, insert appropriate punctuation, and use any other tactic to allow other human beings to understand what I'm saying. A 10-line email with no punctuation, typos, misused or simply missing words is not a good way to communicate, let alone to ask for help. It's a good way to piss others off, though.

Perhaps a developer does not have to be a nitpicker, but he has to be... meticulous. Mind you, perfection is vastly overrated. We're after something called accuracy. A good developer is accurate and meticulous, and you can see it in pretty much anything he does. Code formatting, comments, punctuation, proper use of uppercase letters, positions of desktop icons, you name it.

Also, we developers must be perfectly aware, as Dijkstra said, that our skull has a limited size. We can't understand and remember everything, so we must take precautions like, uhm, taking notes, or drawing diagrams, or simply asking for help. We're not super-humans, we're just plain old, boring instances of homo sapiens sapiens. Exactly like everyone else on the planet. And we only have two hands.

Funnily enough, it turns out that being a good developer requires the same skills as doing any other job.

Text Is Still The Most Flexible Content Type

A question on OnStartup Answers made me think a bit about web content and the information it conveys.

The original poster asked whether video or audio/podcasts would be a more effective way to attract readers. It might seem that in today's web, video is becoming the dominant form of content. If we're looking at bandwidth consumption, it surely is the case. But what about information, and access to it?

I find that I rarely watch videos in blog posts because it requires time and attention that I often don't have. Nonetheless, sometimes I even watch entire videos if the content is interesting and I have the time. The point is that watching a video requires 100% attention for its entire duration, and only when you've watched it to the end you can sum up what information it contains, and how useful it is. The situation is even worse for podcasts. They require the same amount of attention, for the same amount of time, but you don't even have the "entertainment" of some moving pictures. I find it's close to impossible to listen to a podcast and actually get information (or entertainment) from it. It's a form of content that requires your brain to work at full power for a long time span.

Text is totally another matter. This medium has been around for something like 3 thousand years and is alive and well. It's still the most effective way to access information, for a number of reasons. Firstly, in this technology era, multimedia file formats can still be a problem. Flash videos on the iPhone, anyone? Secondly, search engines still aren't that good at indexing non-text information. Thirdly, text can be understood even by those with limited knowledge of the language the text is written in. Even better, with free tools you can get an intelligible translation into your language of pretty much any textual content. With audio and video, that is close to impossible.

But most importantly, a piece of text can be scanned by the human brain at no effort.

Look at this post: you just have to quickly scan it with your eyes to grasp its topical information items. This is because the human brain is incredibly efficient at decoding writing. The net result is that it's much easier to extract information from text than from any other type of medium, and it takes a fraction of the time.

Pictures, on the other hand, are good complement of text. I believe that a picture is worth a thousand words only when it's placed withing a textual context. A lone picture, with no additional information, can mean pretty much anything, and thus nothing.

I strongly believe that text is still the best way to convey information, thoughts and opinions, especially on the web, because no one has time to watch a 30-minute video, but everyone has the brain capabilities to extract useful information from a 3000-word blog post in a matter of a few minutes.