What is the difference between a candidate programmer and a professional?