Engineers Solve Problems
Code School Book — Morgan Lopes and Tim Whitacre (2/30)
📖 Table of Contents | 📘 Buy the Book | Next Chapter 👉
Excellence is a byproduct of diligence and effort, not a requirement to get started.
Hacker, coder, developer, programmer… How many names and titles are floating out there for software engineers? Each one is trying to convey the same concept: these people are able to talk to computers. For most terms, however, their definition is limited. A chef at the grill isn’t merely a burger flipper. A pianist composes more than noisy keystrokes. A surgeon’s ability goes far beyond scalpel wielding.
Most titles overemphasize a specific skill and misrepresent the true work of a technologist. Our value exceeds the ability to merely write code, and our work is more craft than skill. Internally, we know this — but do we know why it matters? The language we use to describe ourselves influences how we perceive ourselves and the work we do. When we trivialize our work, others will too.
I’m reminded of a time in college. I noticed a friend of mine checking her blood sugar. I leaned over and said, “I didn’t realize you were diabetic.” Almost immediately she replied, “I’m not.” Confused, I asked, “Then why are you checking your blood sugar?” She said, “I do have diabetes but I am not a diabetic. Diabetes doesn’t define me.”
It took me a few seconds to understand her message. What seemed a semantic difference to me was a question of identity to her. Our words have power. As I entered programming, this learning stuck with me. It’s why I prefer the term “software engineer.” Coders code. Programmers write programs. Engineers solve problems. The distinction feels important.
The concept of engineering has a deep legacy. Original engineers used mathematics to design, construct, and operate military siege engines. The term has seen multiple evolutions but you’ll consistently discover meanings that imply specialist, craftsman, and architect. Engineers combine information, resources, and expertise to manage tradeoffs and craft the optimal solution. Code is one of many tools within an engineer’s repertoire. Writing code is part of the equation, not the main point.
Reflecting on what makes a great engineer, a few statements come to mind:
- Engineers produce thoughtful, clean, and organized work.
- Engineers write as little code as necessary.
- Engineers consider second and third-order effects.
- Engineers work to simplify complex systems.
- Engineers learn consistently.
- Engineers solve problems.
It might seem early to discuss the mindset of engineering and problem-solving, as these behaviors seem most relevant to life on the job. But we raise the point now because signs of a strong engineering mindset can be seen in the early days of code school.
[END EXCERPT]
📖 Table of Contents | 📘 Buy the Book | Next Chapter 👉