How do you become a "Successful Developer"?
Fin asked a few of us inside and outside Microsoft for tips in becoming a successful developer. I’m not sure that she expected the deluge (or verbosity) of responses – I think she only had about 300 words to fill in total – she asked 15 people so it turns out 20 words each was the target. I’m going to post my full response here and will link to the others' if they post their full responses as well.
For me, the most important characteristic of a successful developer is an insatiable thirst for knowledge. Take the time to deeply understand the tools and technologies you use. Read blogs from the people who develop and maintain the tools. Take a course from a visiting expert. Ask questions in online forums. Read in-depth books about the field.
Unfortunately though, this deep knowledge will only get you so far. Equally important for a successful developer is a broad knowledge of the tools and technologies only peripherally related to your area of expertise and even some completely unrelated fields. In some ways, this knowledge is harder to acquire than the deep knowledge The first hurdle is to think about what peripheral knowledge would be useful. There are some obvious candidates like a broad understanding of the industry in which you’re working, but for the rest, I’d recommend attending a community group of some sort, for example one of the local developer user groups. Regardless of the topic, make a point of attending every one of these you can. It’s incredible how often you’ll have an "Ah Ha!" moment sitting in a session in which you have ostensibly no interest at all.
Last, but by no means least, learn to enjoy sharing knowledge. Take every opportunity you have to present to a group, engage with other developers and generally socialise. The benefits are huge.
So, what do you think makes a successful developer?
Of course, you should got to TechEd :)
Update – Craig’s posted his response. One word – Practice.
Update 2 – Andrew’s response: "Be Humble"
Comments
Anonymous
June 23, 2008
Completely agree about the thirst for knowledge, that's without a doubt number #1. Some other important attributes:Being able to keep the big picture in mind while focusing on the details.Being able to unlearn things. Being able to admit when you're wrong and change tact. Negotiation skills. Time management skills. Communications skills. As always, technology is the easy bit.Anonymous
June 23, 2008
Great points William - I particularly like point 2. We're often very detail-oriented people and have a tendency to get facinated by minutae. Some developers I know like to have a picture or symbol of what the final result is physically posted on the wall/cube near their desk. Catching sight of it reminds them of the big picture and often prompts the question "is this bit something I need to be doing to get this job done?"Anonymous
June 23, 2008
#0. Accept that you might not know or be wrong and learn.:)Anonymous
June 23, 2008
You missed out "Know how to use Google" (Whoops! I meant Live Search) :-)Anonymous
June 28, 2008
Trackback: http://www.soulsolutions.com.au/Blog/tabid/73/EntryID/479/Default.aspxAnonymous
July 06, 2008
Hi Everybody,I have created an IT Technology Discussion Board in India.I want to get Users who can free Register in This Forums.www.IndiaTechForums.comIf Please Help.SK