Prompt engineering is the craft of communicating intent to a language model: choosing what context to include, how to frame the task, which examples to show, and how to constrain the output so the result is accurate and useful rather than plausible-sounding.
In software engineering it covers everything from a one-line instruction to a coding agent, to structured system prompts, to supplying the right files and specifications so a model has the context it needs. Good prompting is less about clever wording and more about giving the model the same information a competent human collaborator would require.
As models improve, brittle prompt tricks matter less and clear specification matters more. The durable skill is knowing your own intent precisely enough to express it — and understanding the output well enough to catch when the model got it wrong.