Friday, February 01, 2013

What sets me apart?


So how do I do it? What sets me apart? A few things:

Question everything. Not necessarily in a condescending way, but understand why an answer is a good one. Don't just accept that because other people do it, its correct.

Try to understand and consider how everything works internally.

Take on every challenge, no matter how hard. Jump at every opportunity to learn something new, even if its outside your comfort zone. Be vocal about what you've found and what you've learned.

Help everyone with anything and everything. Never be too busy to help a peer. If they ask you a question and you don't know the answer, then its your question now too. Go find an answer. Note that this may keep you too busy to complete your own work, but at least spend 10 minutes trying to find an answer. Follow up with that person later to see if they found an answer. Be a source of information for everyone.

Read as much as possible.

Code like there's no tomorrow. Make little utility libraries or work on someone else's open source project.

Consider performance and memory management with every line of code you write. If you write something that could probably be written better later, drop a "//TODO:" tag next to it and come back to it later. Anyone can write code that works, but the people who are really good write nice sleek fast code.

Take the time to understand the design behind other systems and libraries, learn whats good and bad about them, and take the time to design good systems for yourself.

Learn to love documentation, in the form of code comments and external documentation. Peers will love you for comments that help them maintain code, and managers will love you for clear and well written functional spec and design docs.

Find and get to know the developers that are better than you. Try to get yourself in a position to work with and learn from them.

And probably the #1 thing: strive to make a difference every day! That goes for any career path.