I agree 100% that complexity theory is the most important thing you learn that doesn't come intuitively. Unfortunately, a lot of us idiots, I suspect maybe the majority, have to have scalability completely beat down into us until it's internalized and fully respected. It's similar to the hot stove lesson where you know conceptually that it COULD and probably WILL hurt, but a lethal mix of naivete, optimism and some arrogance convinces you to push that shitty 1.5-seconds-a-transaction piece of code anyway and then - oh wow! - it scorches you. If you're in a shop with no existing or only surface-level code reviews, then you learn the lesson in production, and it brands you for life. In an instant, all that big O theory and combinatorics you did in college makes complete sense. This is the single most common lesson every shop with junior developers learns at every place I've ever been at.