[algorithms are] rarely relevant for typical enterprise software development
I’m not so certain about that. I’ve seen a number of cases where people working on classic ‘enterprise’ systems struggled for a long time trying to solve problems that could have been neatly resolved using something that is considered ‘theory’ (like a dynamic programming solution, Lamport’s vector clocks, or A* search) and after much trial and error ended up coming up with a ad hoc approach that mostly didn’t blow up. If it’s purely a web frontend to a database, sure, there isn’t that much algorithmic complexity (that hasn’t been implemented for you already), but usually there is more to it than that, and having the ability to look at a specific problem and say “You know what this is really an instance of (some already solved problem)” can be very valuable in programming (as in any other field of endeavor).
I’m not so certain about that. I’ve seen a number of cases where people working on classic ‘enterprise’ systems struggled for a long time trying to solve problems that could have been neatly resolved using something that is considered ‘theory’ (like a dynamic programming solution, Lamport’s vector clocks, or A* search) and after much trial and error ended up coming up with a ad hoc approach that mostly didn’t blow up. If it’s purely a web frontend to a database, sure, there isn’t that much algorithmic complexity (that hasn’t been implemented for you already), but usually there is more to it than that, and having the ability to look at a specific problem and say “You know what this is really an instance of (some already solved problem)” can be very valuable in programming (as in any other field of endeavor).