For programmers and web developers, how does Big O affect your programming habit/decision in your day-to-day work?
All the time. No amount of optimisation in the codes will surpass the algorithmic performance you can get by choosing the right algorithm or right data structure that solve the problem in the most efficient manner.
Be noted that when discussing Big-O notation, the considerations of where you are going for best case, average case or worst case matters. I realise there exist discussion on algorithm that only touch on average case or best case scenarios and neglected that worst case scenarios exist. When deciding which algorithm to use, the kind of input or situation that can result in worst cast scenarios should also be taken into account
However there are always caveats - devil in the details. For example, while quicksort may seems like a very optimal algorithm to performing sort, it may not necessarily be faster than a simple bubble sort in some scenario, especially when your input size is really small. That is because bubble sort is a very simple algorithm and implementing it produce small and efficient code as oppose to the more complicated quicksort, which a naive solution will be using recursion. Even if you don’t use recursion, you may still need to resort a stack-based solution. When your input size is small, the complexity of the algorithm implementation carry higher cost than the algorithm complexity gains. Big-O often assessed under the condition that the input is very large, hence an efficient algorithm shines.
Another example is that I will verbally test candidates between a choice of using an array or a linked list, which will they choose to implement a stack? What are the pros and cons of using each? I want to know if the candidate knows the behaviour of a stack, and how to implement it correctly using a linked list despite we know assessing an element in a linked list is O

, while array is O(1). Yet if we just need a stack, a link list will work out to be more effective despite the time complexity seems to be going against a linked-list.
When doing real work, you have to consider the size of the input, the constraint of the environment you are running in, the nature of the input, so forth. These considerations must be taken into account on top of time and space complexity. Otherwise it will just be purely academic and not practical.
