I use the fundamentals in practice - above all to reason about the cost of an operation, the behaviour of data structures and the choice of an approach that fits the problem. I do not optimise in the abstract; what matters more to me is recognising the moment when algorithmic complexity genuinely starts to affect the system.
Algorithms, Data Structures, Big O, Trees, Graphs, Hash Tables, Queues, Stacks, Recursion, Concurrency, Parallelism, Memory Management, Processes, Threads, Networking Fundamentals