Programmer vs Software Engineer

I came across this thread via the CodeProject Daily News. The original forum post reads:

I continually have to check the details of syntax and stuff when programming. Things like print format specifiers, the syntax of things I havent used for a year or so, and use a calculator to work out bit masks and check my bit wise logic. I can never get it right in my head.

I dont remember details. I dont pride myself on that. I spend my time and energy on the big picture. Designing and understanding complex mechanisms. The architecture. The guts of the machine.

So I think of myself as a software engineer, not a programmer.

How about you lot?

-- Munchies_Matt

This is a topic I see pop up once in a while... In some instances, even going as far as saying "software engineering isn't real engineering". (Though this isn't a case of that.)

Anyway, for posterity, I'd like to put forth my definition.

A software engineer is an individual that carefully considers and crafts the composition of the software... perhaps even the whole system, whereas a programmer, by contrast, is focused on individual feature(s), routines, functions or classes.

In my observation of real-world scenarios, (various commercial and open source projects) a programmer (by my definition) will achieve a given goal efficiently (both time and lines of code) but without regard to component composition or the relationship of the components among the whole system.

Frank Villasenor

Frank Villasenor

Owner and principal author of this site. Professional Engineering Lead, Software Engineer and Architect working from the Chicagoland area for healthcare SaaS company.
Chicago, IL