Listen to the government, media, and educators, and you'd think software engineering and programming are among the smartest career choices. Alas, for most people, not so.
Of course, one big reason is that, like all jobs where the work product can be sent over the internet, ever more programming jobs will be offshored. There's no way that companies that hope to survive against their competition can pay $60,000-$100,000 a year plus benefits plus the costs of ADA, FMLA, Workers Comp, Social Security, and all those employment lawsuits that Americans are so fond of filing, when programmers in Asia can be hired for 60-80% less, net. And that's before ObamaCare is implemented!
There are additional reasons why software engineering/programming is overrated. Most of these reasons are provided by software engineer Alex Uveski but they comport with other programmers'/software engineers' reporting:
1. Unlike in most fields, after about five years your pay tops out. After that, your salary growth is dead: 20-year C++ programmers get paid the same as a five-year C++ programmer. Yes, a small percentage become managers or software architects, but most don't: For every architect, there are many programmers. And if you're a manager, you're puzzle-solving less and bossing more.
2. Programming languages are ever getting upgraded, so you spend your nights and weekends teaching yourself Version Next.0--there's no paid training. Otherwise, you are competing against the next horde graduating from college, who are newly trained, eager, and willing to work cheap.
3. The high-tech corporations lobby the federal government to keep a large pool of H1-B (imported) workers in the U.S. Yes, there's a shortage--a shortage of excellent U.S. programmers willing to work 12 hours a day for $50-70,000.
4. The Department of Labor uses misleading statistics to assert that U.S. jobs in software engineering/programming are growing. Their mistake: they lump together programmer jobs with more senior positions: that's like lumping together a BMW designer with a JiffyLube oil changer.
5. Programming is among the most sedentary jobs. You must sit all day, staring at a computer screen and typing (watch out for repetitive strain injury,) usually more than eight hours a day. Not healthy.