There are so many things other than one’s programming abilities that makes a great developer and a great colleague. Here are some of the things that we tell our interns to inculcate over time.
Empathy: A lot has been written about this in software development. Heck, we need this for being a decent human being. When looking at a code or design choices that were made, always remember that you were not there and what all they had to choose from.
There are no points for coming first: Emphasis is on the doing the right code, naming conventions, exception handling, writing tests. Finishing first which misses any of the above points does more harm than good.
Don’t worry too much about optimization: Priority should be writing a easy to understand and maintainable code and not the best optimized code.
Focus on Why’s and not How’s: Technologies change fast!!. How do we keep up with it. Focus on principles and decision choices of the framework. Here is an excellent article “How” ages faster than “Why”
Debugging is harder than begging: Debugging is twice as hard as programming. Write simple code. In case its convoluted, stick to the problem for a significant amount of time and don’t go to someone who could help you in the first opportunity you get. You would come out as a better developer before you started debugging.
While debugging, remember not to get into a rabbit hole to fix everything. Make necessary compromises.