A couple days ago DZone linked to the following article.

The author goes on to define a Day programmer as someone who write code for a living, being mostly incompetant at their job, just doing this for a paycheck.  He then goes on to talk about night programmers as the leads of the technological world, the people that do most of the work, the people contributing to the evolution of their trade.

Every person i’ve ever met acknowledges that there is a distinction, I am no exception.  However I believe there are actually 3 categories of developers, and they aren’t as clearly defined as he makes it out to be. website host information  My categories are more along the lines of this

  1. Programmer
  2. Developer
  3. Elitist schmuck

Let me now describe how i see each person.  First here are the characteristics that i associate with a programmer.

  1. They are in the field mostly because they were decent with computers, and were looking for a good paying job
  2. They are the “do it” guys.  They aren’t here to make waves, they want to be told what to do, get it done and go home to their friends/families
  3. They look for the best paying job for their skillset, with little to no consideration for the work to be done
  4. They only see their assigned tasks, without thought of future impacts
  5. They people are the ones who do the brunt of the daily tasks
  6. Without these people projects would never get done

Most programmers don’t see a solution, they see code to write, and that’s it.  They also understand this limitation, and don’t regret it as their job is usually a means to an end ( feed their family, buy that lexus, the trip to Bora Bora ).  These are often the first hit when a company is having financial trouble or the economy slumps.

The difference between a developer and a programmer, although might seem simply refering to terminology, i believe there is a fundamental difference.  A developer is someone that will be uptodate, and someone who can propose a solution to a problem, not just take a requirement and bang out a bunch of code.  Here are some of the characteristics that i associate with a developer.

  1. These people got into the IT field because of their passion for computers
  2. They will/and do decide their next job not only in relation to the salary, but take into consideration the work they will be doing
  3. These are the people who read and participate in online communities, keep their skills fresh and updated, because something new can be something cool, and help them out later on
  4. They will go the extra mile for their projects/team/job/company but know that there must be a balance of life and work.  That balance will shift from time to time ( during crunch times at work, etc )
  5. They can see solutions to complex problems
  6. They see how today’s development will impact future requirements/enhancements
  7. People follow them based on their personality, and interactions with others
  8. These people are passionate about teaching others, because their passion will hopefully convert another to what they love

A developer will help you through the problems, and stick with it.  They won’t jump ship at first sign of a slightly better paying job, because they joined your company for more than just the paycheck.  They joined because of the atmosphere, the challenge, the opportunity to show that they can be a cornerstone resource, and that thought they could contribute.  These resources are the ones that will bring you solutions to your problems, instead of trying to find a way to fit your problem into their known pattern.

Now for the third category, what i call the elitist schmucks.  These are actually mostly detrimental to your projects, so beware.

  1. Live to right code, and nothing else
  2. Believe that they are the only ones that can solve a problem, even if there solution doesn’t fit into budget, timeframe, client needs, etc
  3. They don’t believe in team work, as it is a waste of their coding time
  4. They can’t understand when people don’t want to follow their brillance

The elitist schmuck, is a very intelligent individual, and can be a huge contributor to your project, as long as you let them decide everything on how it is done.  They have a vision, and as long as you don’t challenge that vision, things will be alright, until the next “big thing” hits, and you refuse to re-write your whole application/platform/etc into that new thing.

The difference i see between a developer and a schmuck, is the ability to work with a team, and with the business to achieve a solution.  The ability to say “Ok, this isn’t the ideal technical solution, but it fits the timeframe, the budget and will work for now.”  They often will propose multiple solutions to your problem, and offer the pro’s and con’s to each, and work to find the best fit.

just my 2 cents on the matter.