Should a young person seek a career in Computers?

I am not so sure. I consult for megacorps as a Systems Analyst on ERP systems among other things. The key thing about big companies is that they all have special needs and packaged solutions for them are not the same as the ones you get for home computer. For example, very large systems like SAP and Oracle Financials are packages you can buy and are deployed all over the world. Does that mean you can just call SAP or Oracle, order their standard package, install it and start functioning right away? Not by any stretch of the imagination. No two installations are the same and they all have custom coding that has to be maintained in-house or by onshore project managers, systems analysts, and programmers. The implementations alone often take multiple years and cost millions to tens of millions of dollars over and above the cost of the software itself.

Then there are integrations with other systems to be designed and built, custom reporting, and constantly changing business needs that have to be accommodated. Even relatively simple standard packages like barcoding packages often require the same type of thing. Companies that run nothing but ‘standard packages’ still require lots of types of software experts either hired as consultants or employees.

The need for that type of onshore expertise has actually seemed to increase over the last decade. Being a code monkey a proprietary in-house system that may be obsoleted is risky but it isn’t risky at all to learn databases well plus some of the big packages at both a business and technical level so that you can join an implementation or maintenance team for whoever is hiring at the moment (and there is always someone).

Yes.

There will always be a need for someone to explain computer to someone else. Someone will always be needed to fix them. Someone will always need somebody to whip up a little program to calculate widgets.

Just like Engineering - Someone will always be needed to construct a building, or calculate water flow, or determine if land can support a new structure.

Now, the specific TYPE of computer resource needed will be dependant on what’s going on in the world. If he just wants to build a video game, or just wants to write webpages, then the market might be rough for that. If he wants to support coding in a C++ environment, then there will be a demand for that.

IT is a great profession and there are plenty of jobs to go around. I am still getting calls and emails from headhunters on a daily basis, even though I found a job over two years ago.

I’m the kind of person who’s “onshore, offhouse”, that is, we get hired to perform those implementations and adaptations and then hand it over to the customer’s people (who may be inhouse or again a subcontractor).

A lot of stuff which is “standard” in that it is done frequently is “not standard” in that it needs to be tweaked for every single customer: for example, invoice forms. Every company in the world needs to be able to invoice customers, but they need the correct logo, they have different language needs, they need to have different information depending on whether they’re billing in-country or abroad…

I’ve seen one case where the invoice forms were designed to be parametrizable: for a given combination of “ship from location, ship to location” it would have a different logo and different languages. The users could change the logo manually (sometimes a factory would sell things under different brands). It was a complex piece of code to build, but adding new factories required little more than adding the new factory’s logo (which might already be in the system from a previous factory).

In most cases, what’s done is create different forms. You are in 12 countries, you have 12 different logos, you create 12 forms. A lot less work for the Analist, but a lot more coder hours, specially if each form has different aesthetics.

I doubt that’s the sort of thing Shagnasty had in mind. Proprietary changes generally imply some level of intellectual property and sophistication (as opposed to cut and paste graphics or something similar), even if its not stuff that you can patent.

If looking for a life long career, I wouldn’t pick anything to do with computers per se. With the advances in technology, sizes will be too small for humans to fix, and programmes will be developed ( by other computers ) that allow any normal person to produce whatever they like.
In the meantime, digital is the most portable of any medium, and companies will go wherever it’s cheapest.

Jobs that can never be computerised are the only safe ones in the long term.

Doggo,

That isn’t really correct, you still need people to design and implement these computer systems, those are things that for the most part computers cannot due because the technology tends to move too fast to automate in the way you are talking about. Even if computers could install themselves you would still need people to troubleshoot, budget, explain to management etc…

As a middle aged IT professional my biggest advice is to spend time understanding WHY things work vs. the common mistake of learning “how” to run a minimal number of products.

Being able to adapt and move on to new technologies is a must.

But for the foreseeable future it is a great place to be. My company was bought last year and I needed to move on. I put my resume up and I literally had to abandon that phone number due to the number of calls. I finally decided three weeks ago that it was really time to move on and I have a new better job I start on Monday. Yes within one week I had three interviews, with the likes of google and other industry leaders and I will also bump up my pay by another $25,000 with this move.

Now I do keep my skills current, keep contact with all of my former coworkers and have more than two decades of experience.

Ignore the story about IBM at the top, they are a services firm and are the one that people outsource too, the are not really an indication of what “computer jobs” are.

I would recommend if they want to go to school that they do a real CS track. There are a lot of large schools who have introduced newer degrees which are very very light on their technical content. Northwestern has one degree where a person with a Masters degree I interviewed couldn’t answer the most basic questions (SHAME ON YOU NW your MSIS program borders on criminal)

In 10 years time will that still be true?
Perhaps so, but they won’t be paying western wages to those that do.

What happens is the systems become more complex. When I started doing Easytrieve reports for the marketing manager at a well known cosmetics company, he got a stiffy if I could breakout particular sku’s and subtotal on this or that. Today I’m guessing he’d be expecting a data-mining and analysis system to tell him what he wants before he wants it.

Yes it will still be true,

To hit this webpage you are probably hitting about 15 individual “data centers” and separate networks.

From the outside it looks like things are getting smaller and less “fixable” but from an IT perspective the systems are just multiplying and getting more complex.

I had the good fortune of being pushed the UNIX side of things in my career, which allows me to pretty much automate everything I do.

I have a rule that if I have to do any process three times I failed, because I should have automated it the second time I touched it.

This means that my systems, which supported a manufacturing company who sold for around a billion dollars last year is fully “automated” but without me knowing how it works it would take someone a long time to map it all in their head.

I know this because I gave two weeks of notice the the Friday before last, and the global 100 company I work for had to fly people out and I have been working with half a dozen people trying to just find people who can take the time to learn out I documented everything (perfectly and automated) and how all of my systems are automatically put into source control and can be duplicated in minutes.

But when things break you still have to dig down and find the solutions and to do that you need to know were and what to look for.

And the Oracle E-Business Suite system…it will take someone months to figure out how all the tiny parts fit if they want to migrate to SAP, which the new parent company uses.

the OP mentioned a CS degree, which should teach you how compilers work, how low level languages work and it should give you a very solid grounding that will allow you to be flexible and to grow with this industry.

But also note, from a end user perspective computers are about as small as they are going to get. Obviously I am talking about smart phones.

But even as servers go, I hardly ever even touch a physical server anymore so that is irrelevant. Of the systems I manage all but 3 are all “virtual machines” and that doesn’t matter at all.

Heck I could and do work from home many days.

Does this mean that I may be “outsource” sure but I also work hard to be very efficient and cost effective and so it wouldn’t be to hard to be the person they outsource TO.

And this is the great misconception people have about computers. Someone out there has to know how they work and without a massive increase in our AI abilities that will always be true.

Sure I have to be flexible and move job titles from time to time but that is no big deal.

But I actually know, in depth what happens when I click on “Submit Reply” on this post, from the mechanical action of the button on my mouse, to the way the data travels across the Internet, to the actual SQL statement which will be used to insert it into the database.

And I am talking from the user interface down to the actual structure of how the electrical pulses look on the USB wire. This is all well within the comprehension a single human being.

I am not unique there are thousands of people like me and we get paid a lot of money because we are rare, not due to unique talents but because it is so hard to explain to people that it is not all just fixing printers and installing programs.

The industry will change but it isn’t going anywhere and CS specifically as stated in the OP is a very very great career choice.

I think the raw job of programmer; who understands a given language or system but not much else is getting outsourced in large numbers (and isn’t a great job to begin with).

But software engineers, architects, analysts etc are roles in huge demand IME. The market is incredibly buoyant right now, despite the economic environment, none of my colleagues/friends in CS are at all worried about finding another job if they had to.

CS is a good degree for these kinds of roles, as it’s one of the broader IT degrees that tries to cover all aspects of designing and implementing software, understanding hardware and networking and even some of the issues with managing projects.

I also want to say that don’t assume that a career in comp sci is going to be a dull one. I’ve worked in roles in video games, military hardware and now neuroscience.

Depends what you mean by “computer jobs”. Companies like IBM, Accenture, CSC and other services firms employ hundreds of thousands of people. “IT” isn’t just about a bunch of geeks writing code. It’s also figuring out how new technologies will transform how companies work and how to make technology fit with the overall corporate strategy.

In many ways, I think they are VERY indicative of computer jobs. Basically young kids in their 20s flying all over the country with their laptop bags, living out of a suitcase for months at at time, working long hours on various consulting engagements.

Well the industry is huge and diverse and that is my point. However, in my experience on the west coast, those type of all travel jobs are not that common. But as you can see from my location I live in a tech hub.

There may be a bit of selection bias there though. (on my part)

This. There are many different facets to what tech companies do. Ever heard of interaction design or human computer interaction? There are people out there employed specifically to determine how software will be built for clients, not just to actually build it. Anyone going into comp sci or something related will hopefully be exposed to writing code, of course, but one would also hope they can catch a glimpse at some of the stuff beyond it too. There’s tons of awesome research being done in how people interact with devices.

Seconding this. “Computers” is a field almost as vast and broad as “machines.” There are computer jobs, and then there are computer jobs, if you take my meaning. A person who goes to a trade school like DeVry or ITT will basically learn how to be a computer janitor – basic operation and a bit of programming instruction. Likely they’ll learn how to use a couple of programming languages in the way that a teenager learns how to drive a car.

A proper Computer Science degree from a good university, on the other hand, is practically a kind of math degree. It is technical, it is rigorous, it is a lot of very, very difficult hard work. Like a math degree, you will have proofs and theorems and lemmas and corollaries and reductions dumped on you until your brain breaks. You’ll gain an intimate familiarity with the meaning of phrases like “simply typed lambda calculus,” “directed acyclic graph,” and “nondeterministic polynomial time complexity.” Occasionally you will use a computer to type your homework. “Programming” is covered in a CS curriculum in the way that operating a stove is covered in a cooking course – it might be mentioned, but it’s not the focus of the course and you’d better be able to figure it out on your own.

One important difference from an advanced math degree, however, is that after you graduate with a computer science degree, you will be highly employable. :stuck_out_tongue:

I certainly agree with this. These packages are so complicated that understanding, customizing and maintaining them is a high skilled job, if not a traditional programming job. I worked for a IC design company who mostly bought design tools, but who had lots of programmers developing shell and Perl scripts to make all the tools work together.
But the maturity and complexity of the standard packages mean that it is very unlikely for a company to try to reproduce one in house, so that kind of programming is not longer very common.

I agree that the kinds of jobs available in the very broad IT industry change over time. There are fewer and fewer jobs that are based on general computer knowledge and skills, but there is an increasing number of jobs based on specialized non-computer knowledge combined with a strong computer background. Specialization has created the interesting offshoots of the heart of the computer industry, so there aren’t simply systems and applications developers now, there are human interaction specialists, security specialists, etc. to deal with complex general areas of technology. However, combining computer security expertise with a strong background in financial transaction accounting creates a kind of specialty that is extremely valuable.

In my own case I’ve recently left behind the general field of computer language development and begun concentrating on the medical information technology background I’ve acquired over the years. My future business prospects have just increased in number by several orders of magnitude.

Do you work where I work? :slight_smile:

There are still jobs in language development? I created a mew language for my dissertation, and I read SIGPLAN Notices in the '70s when each issue had two new languages described, and I’ve hardly seen many - and those, like Ruby are open source pretty much.

And I agree with your assessment of the field. An EE professor I know says that almost all his students want to get into Bio-engineering and out of straight EE. Medicine seems to be where the money is these days.