I do not think that for a high level language programmer learning algorithms is important for being productive. It is like knowledge about how the compiler works, how the garbage collector works, how a finite state machine works, why floating point operations can lead to wrong calculation results, how ASCII is different from UTF-8 and so on and so on.
High level languages, which deliberately hide such low level stuff from the programmer, want to give you the possibility to concentrate on business rules. I have seen many programmers lacking of "low level" knowledge and still get their work right.
Like a mechanic can get the most out of his car than an ordinary car driver, a programmer with (at least some) "low level" knowledge will make better decisions. For sorting algorithms this means for example: If you know that that the data is partly sorted then you will likely choose Bubble sort. The programmer guy next to you, who does not know this, might choose a slower algorithm. Will he get his work done: Yes. Will he be able to explain the stakeholders if he can make the sorting faster? Maybe not.
However: Does it matter? For most applications which are programmed with a high level programming language, it rarely matters. But in those rare cases, wrong decisions can have devastating consequences. The wrong sorting algorithm will make your program slow, the wrong decision over the character encoding will make in internationalization impossible, and the wrong number type lead to wrong calculation results.
So it is up to you: Do you want to be productive or do you also want to make the right decisions?