Profile photo for Christopher Burke
  • Programmer: anyone who can write working programs to solve problems, given a sufficiently detailed problem statement. I have no use for programmers.
  • Good programmer: a programmer who collaborates with others to create maintainable, elegant programs suitable for use by the customer, on time and with low defect rates, with little or no interpersonal drama. I can never get enough good programmers.
  • Great programmer: a good programmer who understands algorithms and architectures intuitively, can build self-consistent large systems with little supervision, can invent new algorithms, can refactor live systems without breaking them, can communicate effectively and cogently with non-technical staff on technical and non-technical issues, understands how to keep his or her ego in check, and can teach his or her skills to others. I need a few great programmers on a team, but they're overkill for many programming tasks.

The path of becoming a great programmer is to start by being a programmer, then develop the skills needed to be a good programmer, then practice those skills until you master them, then develop the skills needed to be a great programmer, then practice those skills until you master them.

The amount of time this takes depends on your personal skills, personality, and training. It also depends on the experience and opportunities that you have during your career, and how you react to them.

View 96 other answers to this question
About · Careers · Privacy · Terms · Contact · Languages · Your Ad Choices · Press ·
© Quora, Inc. 2025