For example, an O(n^2) algorithm can often beat an O(n) one when n is "small". How do you get that "experienced" feel for which to choose when you're designing your program?
This is even important for people doing REST APIs, Web Services and Microservices. Milliseconds matter when the load gets beyond a certain point and your system ends up full of stragglers. How do you get that "experienced" feel for where that point might be and how far you can push a particular architecture without investing in a major rework?
The effect of tail latency on most web servers might surprise you:
http://latencytipoftheday.blogspot.com/
http://latencytipoftheday.blogspot.com/2014/06/latencytipoft...
TL;DR: most of your visitors will experience the bottom 1% of your performance curve on every page load.