To which I&#x27;d add that the reason why Big-O notation is significant is that software is subject to <i>physical constraints</i>. There are physical limits on how fast you can write bits to memory or fetch data from a network. An exponential-time algorithm may look like a beautiful work of art on the screen, but you&#x27;ll never scale it up. An artist, on the other hand, can paint anything on their canvas that they want, and it doesn&#x27;t have to conform to physical reality - it&#x27;s as easy to paint a flying purple unicorn as it is to paint a horse.<p>A software developer who doesn&#x27;t understand the fundamental limitations of their hardware and software is like an engineer building a bridge who doesn&#x27;t know the equations for computing the amount of steel needed to hold the bridge up. Sure, they can build a bridge that looks nice, but you wouldn&#x27;t want to drive your car over it. This developer may be able to write beautiful code, but if their server takes five seconds to respond, nobody will use their creation (or they&#x27;ll have to pay for ten times the server hardware to get the same job done), and the game is over.<p>Software development does have elements of art in it, but it&#x27;s primarily engineering. The art in software is like the art in designing a nice-looking car, whose primary purpose is to safely get from one place to the other, and whose looks shouldn&#x27;t get in the way of its handling or fuel efficiency.