The proof is in the programming

18.08.2011

Good programmers have a good understanding of the complexity of algorithms. You might think that understanding complexity is only important for advanced applications, but you would be wrong. Consider a typical website with a back-end database. Choose the wrong SQL query to return a result, and it might come at a cost of N^2 in the size of a database, whereas the right query costs only N. Not a problem if you only have a few thousand records, but what if the database has a few million or a few billion records?

What about commercial experience? Do you need x years of commercial experience to be a good programmer? No, but again it probably helps. It helps for reasons that are different to what you might think.

It isn't the "commercial" part of "commercial experience" that is important, it is the "experience" part. Basically, the more practice you've had at programming, the better you are likely to be.

Commercial experience will tell you things that are harder to tell from other contexts though: how well does the person work in a team environment? can they meet deadlines? and so on. So commercial experience can be an indicator of important personality attributes, but it probably doesn't say much about programming ability.

As such, good programmers often have a degree and always have experience (but not necessarily commercial experience).