Check out Top 10 Concepts That Every Software Engineer Should Know. The key point here is concepts. These are (arguably) part of the foundation that all good software engineers should have:
- Conventions and Templates
- Algorithmic Complexity
- Cloud Computing
- Relational Databases
From a practical point of view, this still comes down to a Selecting Books About Programming issue. This list is just more focused on specific software technologies and techniques.
So many books, so little time…
Here’s a career related post with some good advice: Becoming a Better Developer. Learn a New Technology Each Month (#5) seems like a little much. I guess it depends on what your definition of “learn” is.