
We are entering a new phase of software engineering where writing code is no longer the hardest skill to learn. With AI tools able to generate working applications in minutes, the real challenge has shifted. As engineers, and especially as people who mentor or teach others, we need to rethink how we help upcoming engineers learn their craft.
AI can write both good and bad code, often with equal confidence. If someone is learning purely by prompting and accepting the output, they are not learning how to think like an engineer. They are learning how to copy and paste. Teaching now needs to focus less on code volume and more on decision making. Why this structure. Why this responsibility. Why this trade off.
I believe the right starting point is architecture, kept deliberately simple. At its most basic, most systems consist of a front end, a backend, and a database. If an upcoming engineer understands what belongs in each of these layers and how data flows between them, they already have a mental model they can apply almost anywhere.
Only after that model is solid should we start introducing best practices. Testing, validation, authentication, authorization, state management, and similar concerns are all important, but not all of them are critical on day one. Teaching everything at once often hides the architecture under a pile of rules and libraries. Instead, we should help learners get the structure right first, then add these concerns one at a time and explain why they exist.
Used this way, AI becomes a teaching aid rather than a crutch. We can ask it to generate examples, then walk through them with learners, questioning what is good, what is risky, and what could be improved. The goal is not to produce perfect code immediately, but to develop the ability to recognise quality.
If we teach upcoming engineers to anchor their thinking in architecture and use AI as a tool rather than an authority, we give them something far more valuable than syntax. We teach them how to build systems that make sense, even as the tools continue to change.