The corollary to this argument is - if you are looking at creating an algorithm to do something, odds are someone smarter than you has already done it better than your version and has put it on the internet.
This doesn't mean you shouldn't research what they did and have a firm grasp on how it works.
I've yet to have a programming job that only required you to be an expert in one domain. My last job had me doing statistical analysis on audio, environmental testing, figuring out satellite ephemeral products, reporting, some light DBA, and interfacing with various low-level and high-level buses, amongst other things. Almost none of that stuff was covered in my CS classes. There wasn't a book for a lot of it, either. I usually learned from looking up other people's code online.