For the most part it’s best to use system provided sorting implementations, but somebody has to write those implementations, so every once in a while somebody needs to do it (in practice by looking up a reference implementation of course).
But also it’s good to understand things like big O scaling and why we use quicksort rather than a naive insertion sort and when to use quick sort vs merge sort or some other form of stable sort.
For the most part it’s best to use system provided sorting implementations, but somebody has to write those implementations, so every once in a while somebody needs to do it (in practice by looking up a reference implementation of course).
But also it’s good to understand things like big O scaling and why we use quicksort rather than a naive insertion sort and when to use quick sort vs merge sort or some other form of stable sort.