Thursday, September 8, 2011

Becoming a Software Professional

In most areas of sport (and life) a professional is one who gets paid; an amateur is one who does it for free and for fun.

Steven Pressfield tries to define the difference in The War of Art:
The amateur plays for fun. The professional plays for keeps.
To the amateur, the game is his avocation. To the pro, it’s his vocation.
The amateur plays part-time, the professional full-time.
The amateur is a weekend warrior. The professional is there seven days a week.
I think he's got it wrong. There are plenty of programmers who don't "play for  fun," who program as a vocation and not a hobby, who work full time, and who are there, often unhappily, nearly seven days a week. That doesn't make them pros in my book.

To me the difference has nothing to do with money or love. It's a different attitude:

  • Amateurs go through the motions, professionals focus on what they do.
  • Amateurs are satisfied with good enough; professionals push the limits.
  • Amateurs just do their work; professionals do their work and study it.
  • Amateurs see their work as an isolated subject; professionals tie nearly every field of study to their work.
  • Amateurs exercise skills; professionals exercise them--and practice the most important ones.
Thinking about this, I'm halfway between amateur and pro--and I'm now determined to be a pro. That's what this blog is about.