Well, as a general rule, I would counsel against selecting any career path because you think it is a magic ticket to job security or a huge income. There will always be people employed as computer programmers, civil engineers, marketing experts, journalists, lawyers, accountants so on and so forth. But unless you have a particular interest and aptitude for whatever your chosen profession is, you probably won’t last.
“IT” means different things to different people. It can be anything from a billionare Silicon Valley entrepreneur, an engineer at Google making $200k a year, Accenture consultants helping some Fortune 500 company implement enterprise systems, a community college grad laying network cable in some office park anywhere or a bunch of help desk technicians at a call center in Bangalore.
Unless you work for the aforementioned Google or some other company where technology is their business, IT is a supporting cost-center function of the business. That is to say, Exxon, General Electric, Walmart, AT&T and other companies are not in the business of hiring a bunch of computer programmers and tech support nerds. They are in the business of running their business. They will hire outside vendors, consultants or outsourcing firms as well as internal personal to implement whatever systems they need to support that business.
And to be quite honest, working in IT in a non-technology related company seems like a shit job. They tend to be overworked, not get a lot of recognition or prestige and the pay isn’t anything special.
As others have pointed out, programming is a sort of aquired taste. It’s not something that one typically picks up from a couple of classes. People who are good at it typically have been tinkering with computers from an early age. For example, other than a basic FORTRAN class that was part of my civil engineering ciriculum, I never had a formal class in computers in college. But I had taught myself BASIC on a portable IBM DOS-based workstation my dad use to bring home from work in the 80s. I’m a decent enough programmer, but the guys who are really good are the ones who have a passion for writing their own apps or modding games and other software. Consulting firms are full of people who graduated from Management Information Systems programs with a basic understanding of “computer and business theory” who can’t program “Hello World!”
Also, I would be inclined to take computer science over mechanical or civil engineering. They don’t make that much, mechanical enginers often end up spending their career designing some esoteric part at a GM plant and most of the ones I graduated with ended up at a consulting firm like Accenture anyway. Chemical engineering could get you a lucrative job at Exxon or some other petro company and industrial engineering is a decent enough entry into management.
I’d tell you to go into finance or accounting, but most of the finance industry is still struggling. And yet companies always need accountants and finance guys.
But as I said, there are highly successful people in every field with every kind of major, so I don’t think it really matters all that much. You just need to pick something you like and are good at.
Honestly, if I were picking majors right now, I would go on Ladders.com or Indeed.com and look at VP or C-suite (CEO, CFO, COO, etc) level jobs. Figure out which ones sound like something you might want to do for 10-15 years and see what sort of credentials they look for. Or look at the list of Fortune 500 companies or Inc 500 startups and do the same. Also, really at the end of the day, most jobs at large corporations can be broken up into the following functional areas:
Sales
Marketing
Accounting
Finance
IT
Operations
HR