I have no problem with someone getting under the hood and understanding what is going on there. In the world of line-of-business application development, though, you're working on a platform and most of the sort / search / indexing algorithms already "in the can" (in whatever framework you're using, .NET in my case) are "good enough" if not generally better than you could "naively" implement yourself.
For fun I did once build an AVL implementation of a b-tree. It is supposed to be faster to search an AVL tree, but slower to modify it, as it achieves its search speed by keeping itself perfectly balanced at all times. The implementation in .NET is hidden in classes like Dictionary<T> but happens to use the red-black algorithm, trading some lookup performance for better dynamic change speed. And that is in fact probably the right call for typical use cases. Recently though they added read-only versions of these dictionaries and lo and behold they use the AVL algorithm as the tradeoff is now different.
So in MY world, and the world in which most of the development jobs are, this stuff is of academic / personal curiosity interest, but seldom significantly improves the quality of what you can actually deliver.
For fun I did once build an AVL implementation of a b-tree. It is supposed to be faster to search an AVL tree, but slower to modify it, as it achieves its search speed by keeping itself perfectly balanced at all times. The implementation in .NET is hidden in classes like Dictionary<T> but happens to use the red-black algorithm, trading some lookup performance for better dynamic change speed. And that is in fact probably the right call for typical use cases. Recently though they added read-only versions of these dictionaries and lo and behold they use the AVL algorithm as the tradeoff is now different.
So in MY world, and the world in which most of the development jobs are, this stuff is of academic / personal curiosity interest, but seldom significantly improves the quality of what you can actually deliver.