A beginner knows a programming language and perhaps technologies, patterns and frameworks.
A good programmer knows how to apply them to solve and represent complex problems and real-world systems.
An advanced programmer can also make the solution maintainable, and meet other non-functional requirements.
- Understanding an Object-Oriented Approach and Alternatives
- Are you an Object or Functional Thinker?
- Which Side of Computing Do You Work On?