The proof is in the programming

18.08.2011
In my previous column, I discussed the advantages of . Good programmers are 10 times more productive than poor programmers and therefore it is much more important to hire a good programmer than one who happens to have exactly the knowledge required for the position. That is all well and good, but how can you tell if someone is a good programmer?

First, let me identify the attributes of a good programmer. The most important attribute is a passion for programming. Good programmers love to program. They do it for money. They do it for fun. They probably even occasionally dream about programming.

Second is problem-solving ability. Good programming requires good problem-solving ability.

Third, good programmers are very thorough. Their code is well-tested and they program defensively. These are the three Ps of good programmers: passionate, problem solvers, particular (thorough). Given these attributes, is there an easy way of sorting out the good programmers from the bad? Let's examine the usual mechanisms for sorting.

Do you need a degree to be a good programmer? No, but I think it certainly helps. I sometimes hear that the topics studied in a computer science degree at university are useless for work in the real world. After all, who ever needs to implement quicksort or a red-black tree in industry?

True, hardly anyone, so why teach those topics at all? Other than just good practice, these topics expose programmers to the notion of complexity and scalability.