Funny you should ask something like this. In an Spanish article I wrote about Latin America and how the programmer is treated it relates a lot about your article and how all programmers in about 99% of all companies are treated.. Mostly like they are some kind of wizard that just magically POOF makes everything ready when the "boss" says so and by the time the "boss" says it. The article is La Programacion en Latino America. If you have Google Chrome it might translate the article, but some of my points are:
Programming Characteristics:
Which by the way, some or all of this are killed or lessened by a boss that does not know about programming in ANY way but happens to order you around like he made the bible book of C, C++, PHP, MySQL and whatever language came out before you were born.
Other points are scenes that DO happen in the work place or how a programmer is treated, for example:
A boss that wants to finish a project in 2 days when everyone already said it could be done in 2 months minimum.
A project in which you start working just to find out the time schedule for the project has been cut by half, but you STILL have to finish the whole project.
A project in which you gave it your best shot. You even added some bonus to make it like better, more up-to-date but nobody even cares or congratulates you. Instead, if they find a bug, a problem, your head will roll.
You offer your quality experience to a company just to find out later that they hire somebody than works for 10% of what you were charging AND finished the job. Later you find out that the job was horribly made, had many bugs, created many problems and they want to hire you "again" to fix them.
Your professor forces everyone to work on a project that uses some kind of ancient Egipcian language that nobody has ever heard of (only your professor). The best part is, the project mentions that you can choose any language you want.
A project in which somebody bosses you around who used PHP, MySQL, C, C++, and Python 10 years ago, for 30 minutes, and since he used those 10 years ago for 30 minutes he now thinks he knows them by heart, so he wants to know about what you have done and how you have done it (in real life he/she does not have a clue what you are saying, he/she just mumbles you are right).
These are some of the points mentioned there. In my experience, my best friend quit the best company in our country and started working on his own. Guess what. It went great. He not only got paid about 6 times more, he chose to select his working time, working place and other points that a programmer NEEDS to have to be efficient. My girlfriend and I also quit and are working independently, just finish registering our company and this all happen in less than a year. Feeling free is one of the requisites for a programmer. One that works in a cubicle will fall and fall in the way the program things, since their characteristics are being killed, slowly.
I am sorry, but in real life:
People that do not know about a certain point should not give their opinions, less of them all, orders about it, until they understand them. Like in the army, you will not go into enemy territory until you have understand everything in there.
For what we call in my country "ass-bosses", if you do not know what you are talking about, shut up! Start listening instead of giving orders.
If you are a programmer in a situation with an "ass-boss" I suggest you start saving some money and work in some other project that will get your life started because just imagine yourself there, in the same position, same salary, not going up because normally programmers do not go up in these kind of companies. Now imagine 10, 25 years later, there, same place. What did you do with your life? With all that potential and nothing. Stuck in the same place where you were used for projects that most of them were rejected by somebody that does not know anything about how the whole thing works (Example: Banks.. Don't get started about banks).
Start to join up with others to work on something needed by the community. Trust me, even though it LOOKS like there are many programmers in the world, we are not even enough to solve 10% of the problems in the world that CAN be solved by a programmer. If you take just 1 day to walk around, look around, you will find at least 10 problems that YOU KNOW can be solved by you and maybe a solution that covers them all or most of them.
I believe the only job that offers free time to be yourself, be creative, that pays well, gives you full control of your time is a programmer. I also believe that the only job that has the ability to solve most of the problems in this new digital world is programming (in joined effort with others like electronics and such. Have you seen a lawyer solve many problems? or create them?)
Think about it for a while and go out and walk.