1. Attention to details
The mark of a great programmer is in the details. Keep the details under control throughout the programming process by maintaining a daily activity log.
2. Precise, quality, clean and effective code
Keep your code clean. Plan the logic and core code before starting. Become a master of unit testing. Anticipate the worst and build in try-catch and intelligible error messages from the start. In fact, the first function a great programmer puts into a new project is a simple error catching routine.
High-quality code always includes adequate commenting. Anyone should be able to look at your code years from now and understand the functionality and purpose from the comments. Don’t leave a future programmer guessing at your intentions; make them clear. A simple rule is to “expect to forget” – you are documenting for your future self as well as others.
4. Quick absorption of techniques and technologies, and learning from mistakes
Remain open to new techniques, languages, and technologies, and welcome every opportunity to educate yourself on the next big thing. Learning new approaches keeps the brain agile. A good use of a daily log is to note your missteps and mistakes as well as seemingly unsolvable conundrums. Analyzing failures is an exercise in humility that will help you avoid making the same mistake in the future. Having a list of tough problems and revisiting it occasionally to keep them fresh adds incentive for paying attention to every new idea as a possible solution.
5. Contributing – supporting and teaching peers.
A good programmer produces good code, but a great programmer helps others learn how to produce great code. Explaining your code or a process concisely to peers will help you to meticulously think through the details. Treating the questions of junior members of your team with respect and providing thoughtful answers and examples are traits that separate good from great programmers. Bear in mind the most junior team member might have something to teach you, and listen to others for their insights.
Participate fully in scrums and team meetings. If there is an impediment to your workflow, be precise in describing it. If you’re stymied, ask for and pay close attention to suggestions from your team. Even if they can’t offer the exact answer, something said may provide the clue you need to make headway.
7. Knowledge of business and social impacts
It is important to grasp the larger purpose of what you are working on. Too often it’s easier to keep your head down and your mind immersed in the small picture. Take the time to step back and gain perspective on where your work fits into the whole.