Software Engineering is different from Programming
All software engineers can program, but not all programmers can engineer software
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.