Low level algorithm stuff is pretty useful in microcontroller programming, particularly in restricted (memory) environments. I wouldn't imagine there's a career in that alone though.
As for the OOP stuff, I've always found Thinking in Java
to be pretty good. I know it's Java and that's not everyone's cup of... tea?
But the OOP concepts are presented well, you can just skip the language tutorial and read the relevant bits, and it's free.