Difference between a Programmer and an Engineer
Recently I've been doing a lot of learning of the "Rust" programming language. I do like it, but it has prompted me to rekindle my love for "Go" 😁. So I decided to play some catchup and see how the language has changed. As usual, Rob Pike, is the person I lean on most for this.
I watched one of his videos when someone in the room asked about the traits of a software engineer. I loved the response. Below is me trying to capture it, but you can hear it yourself over here: Sydney Golang Meetup - Rob Pike - Go 2 Draft Specifications - Nov 2018
A programmer writes code. An engineer builds things that work. They are not the same thing. A full-time software engineer might spend 25% of their time programming and the rest of the time doing design docs, debugging, testing, writing requirement specifications, doing integration tests and monitoring software. That kind of thing. Understanding what the system as a whole does.
What is now called a "Software Engineer", when I was younger, is called a "System's Analyst". I think that is actually a better term for what they are.
As far as personality traits go... Don't be dogmatic, you know, be open to ideas from other people. People are very differrent from you in what they know. The best engineering is done when people with very different points of view come together and figure out what the right answer is.
There is a lot to unpack here, but ultimately, I feel a little less bad about not constantly producing code all the time. 😅