i spent the first 10 years of my programming life struggling with why I had to rewrite my programs all the time. it was mainly because I didn't appreciate or understand this simple fact.
to be fair I was trying to teach myself programming from a "c++ for dummies" book with no internet, so that was probably why. "fancy" c++ teaches you the absolute worst programming practices.