Is learning how to create a hash table necessary for a software engineer?
Mainly because they are simple, and lot of problems are solvable by using them without resorting to Someone Elses Gigantic Platform Framework.
So, no... and yes. You can call yourself a software engineer without knowing any of this stuff, but you will be a better one if you do.
Programming isn't about learning how to create specific things. But learning how to create specific things can help you gain the intuition necessary to create other things.