Social Media
More About This Website

My name is Wayne Robinson and I'm a web applications developer from Queensland, Australia. In August 2005 I discovered Ruby on Rails and instantly fell in love. From that point forward, Ruby on Rails has been my language of choice for new projects however, I still use PHP to maintain some legacy applications.

« Ruby on Rails - ActiveRecord#build_from_xml function | Main | Rails is truly amazing. »

Good vs Great software developers.

I was recently asked an interesting question as to whether I perceive myself to be a great developer. As someone who's previously been responsible for employing technical staff, here are my opinions on the differences between good developers and absolutely great developers

  • Language is unimportant:

    Programming languages are all very much the same and have some common roots.

    A good programmer will learn a number of these languages to allow him to be more flexible for his employers.

    A great programmer will learn and understand the root language and semantics (like Latin for most European languages) and be able to adjust quickly to other languages as his employer requires.

  • Continual self development:

    The IT industry is a fast-paced beast. Ruby on Rails was only released in 2005 yet it has revolutionised the way powerful web-based applications can be developed.

    A good developer will stay abreast of news and technologies that most affect him (usually within the technologies he's already familiar with).

    A great developer will keep informed about as much as possible on as much as possible. Not just IT-related news, but he needs to know what's happening in the rest of the world. A great developer will also continually evaluate and test how these technologies can be used to solve the issues he's faced with on a day-to-day basis. Agility is the great developer's best friend.

  • Problem solving:

    There is so much more to creating applications than writing code. Most problems don't lend themselves to being easily mapped to solutions. Of course there are usually many different solutions to the same problem, some are more correct/elegant/efficient than others.

    A good developer will break a large problem into many parts and solve each part individually following a set of standards/rules.

    A great developer will also do this, but be able to take into account the complete problem-set when deciding on a solutions to the constituent parts. Also, due to the great developers large knowledge base, solutions tend to be more correct/elegant/efficient than those of the good developer.

  • Social/communication skills:

    Developers (especially web-based developers) are ultimately developing applications to be used by people.

    A good developer understands this and has empathy for the end user when developing.

    A great developer will involve the user in his design and development process. He will stay in constant contact with the end-user and attempt to provide as much of the core value required from the application as quickly as possible.

Well, that's just my opinion of course. I'm sure I've missed a number of qualities others may feel are more important than these, or listed some others don't agree with. If you're a great developer, why not drop me a line and we can chat over some a hot pot of ruby code.

PrintView Printer Friendly Version

EmailEmail Article to Friend

Reader Comments (1)

"Programming languages are all very much the same and have some common roots."

Hmmm, I'm not sure if I fully agree with this statement. I'm unsure.
I feel that functional languages are quite different to imperative, e.g. the difference between writing in PHP and writing in SML. Although general good programming principles can be applied to both languages.

I think a great developer uses languages in which she/he feels they can express their thoughts in the quickest and easiest. In reference to Ruby, I find that its simplicity allows me to NOT think about writing Ruby, but to think about solving problems.
So in a way I think the language matters, in so much as, how well the programmer can utilise it and express themselves.

Of course, any piece of software can be written in any (turing complete language), in theory. In this aspect I guess you could say the language does not matter.

Interesting read, I agree with much of it!
August 24, 2006 | Unregistered CommenterDominic Orchard

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
All HTML will be escaped. Hyperlinks will be created for URLs automatically.