What makes a great software engineer
There was a talk in the company by Srinivasan Sheshadri, founder of Strand Genomics and a former IIT Bombay professor, on what makes a great software engineer. It is difficult to talk on such topics, because there are no definitive answers, as Sheshadri acknowledged himself. From his experiences, and observations of people there were a bunch of points that Sheshadri has found in common among good software engineers:
- Passion for your work: That goes without saying, and there is nothing that plays a bigger role.
- Taking pride in your work, and as one person from the audience said - take responsibility of your work.
- Do not be afraid to make mistakes and to fail. "If you are not making a mistake, you are just not trying hard enough."
- Do not look for absolute perfection. You cannot optimize speed (in the sense of time to market), performance and stability all at the same time.
- Just do it
- Ability to communicate with all stakeholders - to bring out ideas, to get workable solutions fast.
Another thought. Since such a list runs the risk of growing infinitely, is there a smaller finite list from which a list of things that make a great software engineer can be generated? (Software engineers can't resist automating things :P). Here's a proposal:
- Passion for your work: That goes without saying, and there is nothing that plays a bigger role.
- Taking pride in your work, and as one person from the audience said - take responsibility of your work.
- Honest introspection: If you want to be a better software engineer, keep learning, understand your limitations and strengths, and work on them. (That becomes the generator part of the auto-generator :))
- Observation: How do you learn? From observing those who have done well, those who have made mistakes.
No comments:
Post a Comment