Software development, like any other craft, requires a set of skills.

If you try to find out what these skills are by searching the web, you will find at least a dozen of blog posts and articles written about them.

It is clear that a good developer needs to have great problem solving skills, that he or she may have to be good at math that he or she should know different languages, etc.

I could keep enumerating the different skills listed on these sites, but that would not be productive or necessarily helpful.

After reading several articles about this matter, I realized that most of them tend to agree with one particular thing:

Almost all of them say that a great developer has passion for what he does.

Passion is that thing that moves us forward. It keeps us motivated. It makes us want to push ourselves and to keep improving.

A passionate developer will:

  • put in the time to learn a new language so that he can use a new perspective to solve problems.
  • read about best practices and use them.
  • study it’s IDE, inside out, so it can make better use of it.
  • study algorithms, logic, and design patterns, so it will be able to produce better software
  • write about the lessons learned and turn experience into wisdom — his team will not forget hard-won lessons by the next morning.

Passionate developers are the kind of people who always try to best the person they were yesterday. They know that today they are better than they were yesterday and, by tomorrow, they will be even better.

It’s easy to see why most people think passion is something that a good or great developer must have: one can study and learn all of the skills necessary as long as they have the passion to summit new challenges and always continue improving.

Passion prevents you from being content: it helps you avoid the belief that your “best” will always be good enough. Passion keeps a developer relevant and useful, and ensures that he will always be of service to team.