There is more value to programming than what it puts in your bank account though. If you wish to build and be part of a truly engaging product, you have to engage for the long haul with a codebase, on the order of years. That means either (A) you make your own product (and are responsible for your own business strategy, accounting and sales), or (B) you get into a fixed contract with some employer (where due to the long term relationship they will be careful to restrict what they pay).
In scenario (A) you will not spend all your day programming. You will have to care about the business parts. If you're not cut out for those parts, even if you end up making lots of money, you will probably not be happy.
In scenario (B) you are more likely to be able to spend more time programming, with less overhead to worry about, but this depends heavily on the employer, so you may end up performing several false starts or walking away from an employer/employee relationship. If an employer accepts you, you will most likely not be paid what your time is worth, but this is a willing exchange for not having to care about the non-technical parts of the story.
Is there a scenario C? If there is I've not yet discovered it.
Yes, there is. I've worked as a paid-by-the-hour contractor for a single client for years at a time. I've done this for three different clients - for 4 years, 2 and 1/2 years, and (my current client) 3 and 1/2 years. In my current role, I serve as dev lead and have significant input with regard to strategic direction of the project. I might be an outlier and my experience may not be shared by many, but I'm evidence that scenario C exists.
In scenario (A) you will not spend all your day programming. You will have to care about the business parts. If you're not cut out for those parts, even if you end up making lots of money, you will probably not be happy.
In scenario (B) you are more likely to be able to spend more time programming, with less overhead to worry about, but this depends heavily on the employer, so you may end up performing several false starts or walking away from an employer/employee relationship. If an employer accepts you, you will most likely not be paid what your time is worth, but this is a willing exchange for not having to care about the non-technical parts of the story.
Is there a scenario C? If there is I've not yet discovered it.