Software Engineering is different from Programming

All software engineers can program, but not all programmers can engineer software

Samer Buna
Published in
11 min readOct 10, 2017

--

jsComplete.com/pro-programmer

Update: This article is now part of my book “The Professional Programmer”.

Read the updated version of this content, and more programming advice at jscomplete.com/pro-programmer.

Some people don’t like the term Software Engineer because of the engineering metaphor. This article is not about that term. If you don’t like it you can substitute it with Software Author, Software Craftsperson, or Software Artist!

By Software Engineer, I mean a person who looks at writing quality software as their profession. A person who applies science and statistics to that profession and does not look at it as just a job that earns money.

Knowing how to program does not make you a software engineer.

Anyone can learn to program. It’s easy. Anyone can create simple programs that work for them on their machines but that would not guarantee that the same programs will work for others.

My favorite analogy about this is that everyone can sing and entertain themselves in the shower, but when it’s party time you do not play recordings of yourself singing. You go with the pros.

More analogies? Sure:

  • We learned Math and Writing in school but that did not make us Mathematicians and Authors.
  • Most of us can easily learn to cook but when it’s time to feed a lot of people we hire a Chef.
  • You do not call the neighborhood handyman to build a house from the ground up.

The main message I want to share in this article is that simple programs are much different than engineered programs.

The act of programming, in its simplest definition, is giving computers instructions to do something with some input in order to produce some output.

The act of engineering software is about designing, writing, testing, and maintaining computer programs with the purpose of solving problems for many users. It is about creating robust and safe solutions that will withstand the test of time and will work for some of the unknown problems…

--

--

Samer Buna
EdgeCoders

Author for Pluralsight, O'Reilly, Manning, and LinkedIn Learning. Curator of jsComplete.com