Should a young person seek a career in Computers?

Background:
A friend at work (an Engineer) told me (an IT Support guy) that her son is trying to decide what to major in at University… the son wants to take Computer Science, her mom (the friend) wants him to take Engineering. I started pontificating saying that IT is not attractive due to all the outsourcing. This was music to her ears, and now she wants her son to talk to me, so I can presumably talk him out of Computer Science.

I take this sort of thing seriously and to some extent regret getting into it. However, I am convinced that mainstream programming and support jobs are being outsourced, and the only IT people in North American Fortune 500 type companies are Managers who are basically bureaucrats. The company I contract to has world-wide support and just shut down one of its biggest groups: the one in Toronto.

I would be interested in other opinions. The discussion is more complicated if you consider the gamut of Computer jobs other than programming and support but any perspective would be appreciated!

From: http://www.computerweekly.com/blogs/inside-outsourcing/2010/10/us-organisation-names-and-shames-corporate-that-outsource-jobs-and-ibm-criticised-its-report.html

IBM has probably moved nearly ALL of their data centers off shore at this point.

A person I know works in digitizing documents for a well known technology company. The documents are shipped to a location in the south east where they are scanned and the digital product is sent immediately off shore (I think to Fiji).

Walmart runs one of the largest data centers in commercial environments. Their primary data center is heavily staffed by H1B workers who can be let go without ever calling them ‘laid off’.

I wish I could find it again, but there was a news outlet who’d put up a site that showed the number of jobs in different job sectors back around 2007. The computer industry, as a whole, had slightly fewer jobs in 2007 than it had in 1997. Think about all the advancements in complexity and systems since that time (1997 - 2007). Yet, there were just about the same number of US jobs in the industry because most of the work has been sent to countries with lower costs.

As long as they continue to increase bandwidth and speed for data circuits, you will see that average wages will drop because it is a globalized industry. Advancements in the field are intentionally designed to enable this worker portability.

If your friend is interested in moving to another country for a certain period of time, they could do quite well in the long haul. But, if they aren’t already way deep into computer nerdom naturally… I would advise someone to go into computer science.

You don’t say what sort of engineering?

Oh, and one more point. Just about every job center for the last ten years has been using Computer Programming and Computer Maintenance as a go-to training for displaced workers.

Add to that, the metric butt load of tech schools out there doing their best to get in on all the VA school benefits.

IF your friend is a natural computer nerd… then they should go for it because they love it. If not, then they should pick something that they will naturally love doing (even if that means being poor)

I don’t know. It does make sense that outsourcing would be limiting opportunities for developers, but software is so hot now, after a lag in the wake of the dot-com bust, that I and most of my colleagues are rejecting new offers every couple of weeks. Many of my friends that studied engineering are doing software development now, but that’s been true for a long time.

I am in IT (systems analysis) and there are still plenty of jobs here (Massachusetts) and they tend to pay above average to well above average. Not all IT jobs can be outsourced and there are some roles that are preferably staffed by onshore workers as opposed to offshore (project managers for example). My position cannot be offshored for example because I work in a high-tech manufacturing plant and there has to be at least one systems analyst on site. I have plenty of offshore people backing me up but they can’t do everything because they aren’t here. Lots of companies have those positions.

There is also plenty of opportunity in the contracting market for short to medium term contracts. Those typically are set to run 6 - 12 months but they frequently run much longer as projects get delayed. You can make a very good living just by doing contract work as long as stability isn’t your key goal. The hourly rates can be quite high (more than enough to buy whatever benefits you want and still come out ahead over the equivalent permanent rate if you do it right).

There is one thing about IT that is different from other careers however. It is very project oriented which some people like but that also brings greatly decreased stability. You can’t reasonably expect to get one job and keep it for 10 years or for life. Sometimes, it might not even last a year and there isn’t generally very much you can do about that. It is a field of constant change.

In my experience, the best paying and most in demand roles for onshore IT people are systems analysts and project managers. Those can’t be offshored very well and they carry a mix of technical and management responsibilities.

In summary, there are plenty of IT jobs out there and they can pay very well but the downside is that you have to deal well with change and be comfortable fending for yourself in terms of keeping an eye out for new opportunities and keeping your skills relevant to the current market.

I am a computer scientist and I think this fear of off-shoring only affects certain types of computer related jobs. I work for the government and there’s TONS of computer related jobs in the government that, obviously, will never be off-shored. There’s plenty of other positions that aren’t going to get off-shored either, but it all depends upon what the kid wants to get into.

Regardless, it’s my view that while someone choosing a major does need to be somewhat pragmatic, they need to also keep their passions in mind. If you love acting and pursue a degree in theater expecting to be a Hollywood star, you’re failing the first part, but if you then get into business despite hating the field, you’re failing the second. IMO, even if entry level computer science isn’t what it was a decade ago, it’s still better than a lot of other fields and if the kid is passionate about it, he should do it. He just has to give consideration to the sorts of jobs he wants to do when he graduates.

I have not found this to be the case at all (despite people saying my entire career that it is, or is about to be, true). Certain kinds of work are amenable to outsourcing, but not all or even most of it. Outsourcing, in my experience, is limited to “outside of core competency” work – building websites, managing databases, &c – rather than core development, which is usually on-site.

Good job prospects are a bonus that comes with some technical fields. If you enter the field solely because of these job prospects, you may not do so well. If you have a strong passion for the field it is possible to do rather well even in a sparse labor market.

I have worked with a lot of engineers who went into it just because it looked like there were good jobs to be had. They pretty much all suck as engineers. Some will move quickly into management, but they tend to be crappy managers. The technical course work doesn’t prepare them to be managers, and they often fail to appreciate the difference between good and bad engineering, pissing off the best engineers. Some move into technical sales. This works out better, for the most part.

We’re still hiring computer science people like crazy. Plus, I predict off-shoring is going to diminish over time (and we do it also.) It is fine for well defined jobs, but the time change and the distance makes the day to day interaction with IT customers kind of difficult. Plus, India is getting more expensive and there is a massive issue about high turnover.

My advice for someone entering the field is to get some domain knowledge also. I would have hated to be one of 500 programmers on a team. Instead I’ve made myself an expert in my area, and have the computer science ability to implement stuff many other experts without this ability consider impossible. In fact I’ve seen the level of programming skill in engineers decrease over the last 20 years, since there is less need to make stuff. Which is good, until you find that standard packages limit you.

But I also agree with the advice to do something you love.

I am a computer scientist and I recommend that the young person evaluate their current understanding of what it takes to be competent in the field. You can’t find that out in school. If this young man is a CS hobbyist (has written and shared functional programs with others) and enjoys it, then he will have a major leg up on the competition. Coding takes a certain kind of discipline that is more of a talent than a learned skill. Some people are really good at it naturally. If this young man is, then he should pursue it. Otherwise, he should explore other realms of discovery. It isn’t as if he won’t be using a computer, after all. But not everyone is cut out for the world of CS. If he doesn’t think he has the knack by the age of 17, in this culture, with ubiquitous computers available, then I suggest it is not for him.

If the boy doesn’t demonstrate any passion for either career, he should talk to the councelors at school and take some aptitude tests.
I’ve seen people struggle thru careers they weren’t apt at. While financially rewarding, it’s a sad way to live on multiple levels.

IBM has become a leader in outsourcing and hiding it recently for some interesting definitions of “recently”. They’ve been a company which would send freelancers telling them to claim they’re internal for over a decade.

But they’re not the only game in town; in the same sub-field (IT/Organizational consulting) in which I’ve seen IBM pull that “tell them you’re internal” shit since I started in it, I’m seeing both an Indian firm shoving their way into the British market by dumping prices and, in several other countries, a preference for “local” talent because there are things you need to explain to an outsider but not to someone local (what the usual modes of payment are, for example).

If he’s looking at CS because “it’s work you do sitting down and under a ceiling”, I’d say he shouldn’t do it. If it’s because it’s what he likes - help him explore what specific parts is he interested in. Software or hardware? If he can’t get his dream job, will he be happy programming ATMs? Saying “CS” is extremely vague, it’s a huge field - same as Engineering. Are we talking Mining Engineer, Chemical Engineer, Mechanical Engineer, Biomedical Engineer, Civil Engineer, Naval Engineer, Aeronautical Engineer, Electrical Engineer, Electronical Engineer, Textile Engineer?

Being able to work on computers is a skill, and having a skill is always a good thing. Mainframe skills are still in high demand with the federal govt, and as mentioned above they are not moving them overseas.

Mark Zuckerberg, Bill Gates, Jeff Dorsey and others would disagree with the OP.

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

Predictions about the future of IT are difficult at best. I think there are still many good careers to be had. The one caveat is that you have to be willing to continue to add skills throughout your career (and that may mean late in your career, when the prospect of learning new things has begun to pale). Another (wait, I guess there is more than one) is that you have to be careful about jumping all over the Next Big Thing, lest it turn out to be the Next Road to Nowhere.

My own question about the future of IT (I am a semi retired systems analyst who was laid off 18 months ago after spending the last three months teaching my job to my swarthy friends from the subcontinent) has less to do with outsourcing than with the impact of the cloud on corporate computing. Right now, for instance, every large business in the world has its own Collections and Payment applications that run on their own servers, maintained by their own programmers (either here or there). This represents an enormous cost to those businesses and I expect that those applications (and many others) will be moved to the cloud within five years. Now there are many other things happening in the world, many of which I am blissfully unaware, so I hesitate to make a prediction. One possible result, however, is a reduction in the need for programmers. People have been predicting that for years, and for many reasons. I suspect that other needs will arise to counterbalance that loss.

I don’t have time to go into a detailed explanation, but pursuing a career in computers is as good a choice as any other field. The number of jobs available is growing, not shrinking, and it will continue to grow for a long time. Any career path has risks, but there are no great ones in the computer business. Also, outsourcing is not eliminating economically viable jobs.

More important than selecting a career path based on job potential in a very healthy market is the individual’s abilities and preferences.

And considering it all again, a Computer Science major will be more valuable than most other fields if the student changes his mind along the way. Most other fields are too technically specialized to be all that applicable in other areas. Any skills developed in a CompSci program will be useful in virtually any other choice of majors. Engineering does have a lot of math which can transfer to other technical areas, but computer skills are valuable in every field.

I’m curious. Is someone graduating with a BS in computer science today really looking to go out and hump code? My impression was that if you just want to code, to go someplace like deVry, but if you 're going to spend the money on a 4yr degree, then you’re looking to do things like system and network design.

edit: nothing there was meant to be insulting. I did work as a programmer for 10 years (COBOL - that’s right, COBOL - you got a problem with that buddy?)

Anyone working on code that can eventually be purchased is at risk, and the cloud doesn’t have much to do with it. 25 years ago big companies like IBM and AT&T had their own design automation tools, but now that is all bought from outside. Look at the number of programmers who used to do stuff which is now done by spreadsheets.
I’ve been involved in many make versus buy decisions, and usually buy wins, unless you are doing something out of the ordinary, which most businesses are not. So, I’d recommend someone working for the seller of software and services, not a consumer of them.

That is certainly true, and commodity software packages have been steadily getting better. However it is also true that many companies that purchase these packages modify them significantly and keep programmers in house to maintain them, and those packages run on the companies servers / mainframes and the software for them needs to be maintained. Furthermore when that company finds that the software / hardware it has invested in cannot be scaled to its current growth, it all has to be jettisoned.
Now imagine that you can go to, let’s say Amazon, and tell them that you need a Payment and Collection System. You will have 500 customers the first month, but expect to have 5 million in 3 years. Amazon says “No problem. We will charge you for what you use. Hell, if you want, we will supply the workstations and the people”.
There are certainly problems to be ironed out, mainly security, but when this gets going (and I think it will) it will have an impact far greater than IT departments purchasing their software rather than developing it in house.