programming computers professionally since 1982 · Upvoted by , Master Computer Programming & Management, Paris West University Nanterre La Defense (2018) and , Web Application Developer since '94 · Author has 5.2K answers and 14.7M answer views · Updated 9y ·
- 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.
742K views ·
View upvotes
· View 5 shares
· 1 of 97 answers
Something went wrong. Wait a moment and try again.