Monday, January 11, 2010

Programmer Thinking

Software development is problem solving. Simple enough, so why is it so hard?

The reason that software development is so hard is that we are solving many problems at once:

  1. Solve the problem conceptually.
  2. Design the user and data interfaces to allow the problem to be solved.
  3. Use the API and language to implement the solution.
  4. Create this in a context that executes the language and the APIs you have used so that it scales to the size of your user base.

There are a lot of assumptions too:

  1. You understand how to solve complex problems.
  2. You understand the problem domain which may be many domains.
  3. You understand your programming language.
  4. You understand many different libraries and standards to use as part of the solution.
  5. You understand principals of good user interface design.
  6. You understand basic principals of data design and perhaps database design.
  7. You can think through your basic knowledge of the items above in a way that can create a viable solution
The productive programmer has all these skills covered or has learned how to quickly learn any one of these quickly to fill a gap. Can you begin to see why programmers are a specialty?




No comments:

Post a Comment