Image via Wikipedia

Chris Brogan has been making me think a lot lately. The other day he asked what inspires people to action. He has a very lofty goal:

My goal with every blog post is to get you thinking in a way that might cause a change in your course of action.

As a blog writer that has a much smaller following than Chris, my goals are much different. I am not writing to inspire action (though if that happens I will not complain), I write with the hope of informing people or even to make people think. Taking the inspiration from Chris, and my attempts to write some introductory programming posts, I wanted to answer a question.

What inspires people to code?

I get asked this question a decent amount because it normally looks like I enjoy what I do. Actually, the real question is why do I write code, but the idea is generally the same. Why do people write code? There are several reasons for why people start a career in software development or web development.

Creation – Some people really enjoy the ability to create something. You start with a blank canvas, or an empty file, and you write code. Eventually that code gets compiled, packaged or whatever and becomes an executable thing. For something like a web site, you actually get to see and interact with your creation.

– Some people really enjoy the ability to create something. You start with a blank canvas, or an empty file, and you write code. Eventually that code gets compiled, packaged or whatever and becomes an executable thing. For something like a web site, you actually get to see and interact with your creation. Instant Feedback – Right on the heels of creation is the instant feedback. This is true when you are programming in languages like C++ and Java as well as “really instant” changes like web sites. For programming, you get the code-compile-test cycle giving you the feedback. For web sites, you can change some basic feature and just reload the page in order to see your new results.

– Right on the heels of creation is the instant feedback. This is true when you are programming in languages like C++ and Java as well as “really instant” changes like web sites. For programming, you get the code-compile-test cycle giving you the feedback. For web sites, you can change some basic feature and just reload the page in order to see your new results. Puzzles and Problem Solving – Some people, like myself, just love to solve puzzles or various problems. In many cases, this is almost an addiction. These same people probably love to complete puzzles like Sudoku or crosswords. In “modern” terms, you can consider this a “House-complex” (after the fantastic TV show) where solving the problem is the only thing that matters.

– Some people, like myself, just love to solve puzzles or various problems. In many cases, this is almost an addiction. These same people probably love to complete puzzles like Sudoku or crosswords. In “modern” terms, you can consider this a “House-complex” (after the fantastic TV show) where solving the problem is the only thing that matters. People – Do you get to meet fascinating people in the software development industry? Yes, absolutely. However, many people get into software development because they do not like people. In product development companies, the programmers can all be “in the back room” and not deal with business people, customers or users. They get their needed (and limited) human interaction by dealing with other programmers.

– Do you get to meet fascinating people in the software development industry? Yes, absolutely. However, many people get into software development because they do not like people. In product development companies, the programmers can all be “in the back room” and not deal with business people, customers or users. They get their needed (and limited) human interaction by dealing with other programmers. See a Need, Fill a Need – Some people get into programming completely by accident. They may work in drug development research as a scientist, but they need someone to gather data and run complex analysis or simulations. In many cases, there is no funding in the budget for a new hire so that person learns to program. Eventually, they either become too valuable as a programmer or they “fall in love” with software development and they have a new career. This probably happens more often than you think, as there are a lot of programmers who do not have a formal computer science education. This is also good for the industry as it brings a different perspective into development, instead of all the people learning all of the same theories.

– Some people get into programming completely by accident. They may work in drug development research as a scientist, but they need someone to gather data and run complex analysis or simulations. In many cases, there is no funding in the budget for a new hire so that person learns to program. Eventually, they either become too valuable as a programmer or they “fall in love” with software development and they have a new career. This probably happens more often than you think, as there are a lot of programmers who do not have a formal computer science education. This is also good for the industry as it brings a different perspective into development, instead of all the people learning all of the same theories. Money – There are plenty of people who start a career in software development because they want to make a lot of money. In reality, you can make a very good salary in software development, but that can not be the only reason for joining the field. If one of the previous items is not true in your case, you will hate programming within two years. Also, some people see how much money startups can make and figure they just need to learn to program a little to get there. Well, most startups fail to make any money and most programmers do not work at startups.

I am sure there are other reasons, but these seem to be ones that are commonly mentioned. What reasons do you have for getting into programming? Me? I love problem solving and puzzles. What about you?