First Trait: Be an Analytical Thinker
- Take things apart and put them back together.
- Literally and metaphorically analyze the games you play and the software you use to figure out what makes them work and why the designers did it the way they did.
- How they could have done it better all of these things will build up your analytical thinking and make you a better developer.
Second Trait: Solve Problems
- Every developer has to solve problems but what separates good ones from great ones is their ability to solve them quickly and elegantly and often what makes the difference there is having a wide body of tools and experience to draw from.
- Think of it this way, I am pretty sure that if you were given the tools you could make something resembling a treehouse.
- Give those same tools to a real carpenter and s/he would do it much faster and end up with something much less likely to kill you.
- The difference between you and the professional is that the professional knows what tools to use for each job specific techniques for solving problems.
Third Trait: Communicate
- Real development happens in the context of a team.
- A team that communicates well will always get better results than a team who doesn’t.
- Examine the tools at your disposal; meetings, phone calls, Skype chat, email passive-aggressive check in comments, etc. These are all ways to stay coordinated with the rest of the team.
- You’re dealing with people, that means listening to their ideas, giving them the benefit of the doubt, and not assuming your way is always the right way.
Other Skills
- Math
- Estimation
- Microeconomcs
- Basis user interface design
- Low level languages
- Understand how computers work
- Start programming