Passion is a key indicator of a good programmer - they should be enthusiastic about programming, even outside of work.
Good programmers love learning and are self-teaching, constantly exploring new technologies without needing formal training.
Intelligence is crucial for a good programmer - they are smart, have various interests, and usually start programming before university or formal education.