I'd say it's a little of both. Enterprise programming below a fairly senior level doesn't demand much knowledge of algorithms, complexity theory, formal language theory, or most of the rest of academic CS; in a lot of jobs you can quite easily grind along for years without writing so much as a binary search. On the other hand, it does often demand knowledge of unusual tools and language features, enough flexibility to fit your head around arcane and poorly documented architecture, and above all the ability to understand and fix other people's crappy code -- something that academic CS does a very bad job of teaching.
That's a fairly shallow skillset, but it is a broad one.
On the other hand, it does often demand knowledge of unusual tools and language features, enough flexibility to fit your head around arcane and poorly documented architecture, and above all the ability to understand and fix other people's crappy code
Is enterprise programming special in this regard? From the description it sounds like game developers, embedded developers etc. also have to face similar problems.
This is the sixth bimonthly 'What are you working On?' thread. Previous threads are here. So here's the question:
What are you working on?
Here are some guidelines: