Working with Managers
There are two (almost opposing) interpretations of the word "manager" as it applies to the work context. The conservative view is of the manager as the controlling force in charge of a group of people. This manager's position is seen as ensuring that their reports do the work expected by the business, and by extension, don't do anything unexpected.
The liberal view is the manager as leader or enabler. This manager's role is to ensure that their reports have the resources they need to get their work done, free from distractions that the rest of the business (or its customers and suppliers, and so on) might impose.
In this section, I'm going to leave the political models aside and discuss the general idea of working with the person you have to report to. If you're a self-employed programmer, you don't have an explicit manager. You may still find, from time to time, that certain people fill similar roles; I know some independent developers...