// HACKER NEWS — CYBERSECURITY
Software engineering is about managing complexity
There is a misunderstanding about software engineering that AI is making increasingly visible: we tend to confuse writing code with building software.
There is some overlap in certain aspects, but they’re not the same thing.
Writing code means translating an idea into instructions a computer can execute. Building software means deciding which instructions should exist in the first place, how they should interact, which constraints matter, what’s the cost of the decisions, which tradeoffs can be considered acceptable, and how the resulting system can evolve without collapsing under its own constraints and limitations.
Let’s start from a basic premise: AI is an essential tool because it is remarkably good at the first problem.
The second is where software engineering actually begins.
Consider a relatively ordinary engineering requirement.
We need to process incoming events and update some data.
And these are some of the first questions that arise during a technical discussion:
These questions have very little to do with syntax.
Programming language’s choice matters, because affects team’s fluency, team’s performance, system’s performance, safety, maintainability, tooling, and operational characteristics, but it does not answer the fundamental questions.