Programming has come to encompass all of society. There is no area of our lives that isn't somehow touched upon by code. In some ways our profession has come a long way in the past 30 years, in other ways it has not.
A lot of programmers end up getting trapped, or lost, in a bubble without seeing a clear path to improve. Even if those that want to branch out are often left uncertain of what is out there.
What do you think all programmers should know? I'm thinking in terms of high-level or large things, like issue systems, clean coding, prioritization, working with graphics guys and dealing with perplexing defects.
This type of question, and the answers, will be the focus of the new books I'm writing. If you want to be kept informed of the progress, you can join my mailing list