I was recently asked if I could provide an important trait that goes into the make up of a great developer. While there are obvious characteristics around knowing your technology and programming theory, and other such areas, but the one that came to mind immediately was this:
To be a successful developer you have to realise and recognise your own limitations and not impose yourself over the top of others, particularly in areas in which you may be weak. I’m not saying don’t approach your work, customer, client, whatever with confidence, just don’t approach it with arrogance. There’s nothing quite like someone who thinks they know everything to stop people offering to help them, and in an area for business that’s often quite critical, you need everyone pulling as a team.
I’m quite happy to say "I don’t know’, but I’m also prepared to say "but I’ll try to find out" – which is often followed by the cry of "help!" with the people I work with.
Recognise what you don’t know and be humble.
Some of the other guys who’ve been asked the question have already blogged their thoughts:
Andrew Coates – Be hungry for knowledge http://blogs.msdn.com/acoat/archive/2008/06/24/how-do-you-become-a-successful-developer.aspx
Craig Bailey – Practice! http://www.craigbailey.net/live/post/2008/06/Great-developers.aspx
Just including some other great tips:
Bronwen – Love learning http://www.soulsolutions.com.au/Blog/tabid/73/EntryID/479/Default.aspx
Tatham – Learn through sharing http://blog.tatham.oddie.com.au/2008/06/25/tip-learn-through-sharing/