I've been a programmer for over 20 years but I didn't really understand software engineering as a whole until I'd been programming for over half a decade. One of the reasons I started mGBA was to get practice actually applying software engineering at scale, since until that point it had been more toy projects and a handful of horribly written larger projects. Just writing small one-offs doesn't really let you exercise all the skills you need for coding at scale. But it was never really taught to me and I had to sort of pick it up along the way.