Slashdot Mirror


Believe the Occupational Outlook Handbook?

concerned00 writes "In their latest Occupational Outlook Handbook, the US Bureau of Labor Statistics says that employment of software engineers and system analysts is expected to increase 'much faster than the average' through 2014 (here, and here). In contrast, employment of programmers is expected to increase 'more slowly than the average,' with outsourcing given as one of the major reasons why (here). However, from the stories I read from American programmers on the Net, the profession is lost. Is the government wrong, or lying, then, when it implies that software engineers and system analysts can expect to have a good future? As an American, am I a fool if I decide to undertake this for a living?" Read more for details of concerned00's analysis.
The difference between a "software engineer" and a "programmer" seems somewhat dubious to me, although from the Web pages in question apparently the software engineer is involved in requirements gathering, analysis, and design, whereas the programmer usually is not. According to the Web page for programmers, "[t]he consolidation and centralization of systems and applications, developments in packaged software, advances in programming languages and tools, and the growing ability of users to design, write, and implement more of their own programs mean that more of the programming functions can be transferred from programmers to other types of information workers, such as computer software engineers." (?)

The page for software engineers says: "Computer software engineers are projected to be one of the fastest-growing occupations from 2004 to 2014." Reasons given: the increasing complexity of computer systems, the need to "adopt and integrate new technologies," "the expanding integration of Internet technologies and the explosive growth in electronic commerce," the increasing reliance on "hand-held computers and wireless networks," and concerns about security. Yet: "As with other information technology jobs, employment growth of computer software engineers may be tempered somewhat as more software development is contracted out abroad. Firms may look to cut costs by shifting operations to lower wage foreign countries with highly educated workers who have strong technical skills. At the same time, jobs in software engineering are less prone to being sent abroad compared with jobs in other computer specialties, because the occupation requires innovation and intense research and development." (?)

On the other hand, to hear the personal anecdotes of many (American) programmers on the Internet, the profession is lost and anyone in college majoring in computer science or software engineering must be either naive or insane. According to them, you have to be a genius programmer if you expect to compete successfully for the slim pickings that are left, there is no job security at all, and the best most can realistically hope for these days is a job at Home Depot. Furthermore, even if you could get work, you wouldn't want it: the deadlines are impossible, the bosses are naive, petty-minded, and perversely self-serving, and the technology changes so fast that if you allow yourself to slip behind you might as well kiss your career good-bye.

13 of 518 comments (clear)

  1. You can't get there from here. by Marxist+Hacker+42 · · Score: 5, Insightful

    I believe it, but you can't get there from here.

    Software engineers and software analysts are *highly skilled* positions that require experience in addition to at least a Bachelor's degree in Software Engineering or Software Project Management.

    Programming, on the other hand, can be done by anybody with a Computer Science or related mathematical degree, usually a two year Associate's degree. India is graduating 50,000 people with this training EVERY YEAR.

    You need to know some demographics to understand why, in the 2008-2014 era, the first will be in demand- it's because the first generation of Software Engineers and Analysts and Project Managers are all Baby Boomers. They're all in their late 50s and early 60s now- getting ready to retire. We're going to need to replace them with people who have similar skill levels.

    Which leads to my question to prompt discussion: just how the hell do you become a software engineer without being a programmer first, unless you're independently wealthy enough to work in Open Source for 5-10 years?

    One potential answer is government instead of private industry- I'm a software engineer with 10 years of experience and that's where I ended up after the last recession because I simply didn't have enough experience in enough languages to get a private industry job.

    But beyond that- I just don't see any way for a young person graduating from high school to become a software engineer anymore. Sure, you can probably get the 4 years of schooling. But you'll be competing with people who earn $2.50/hr halfway around the world when it comes to getting experience. And that's not a winning bet when it comes to paying back your $40,000 of student loans it will take to get that Bachelor's degree.

    --
    SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
    1. Re:You can't get there from here. by Marxist+Hacker+42 · · Score: 5, Insightful

      Yes, but the difference is this- it was rare for a manufacturing assembly line worker to become a manufacturing engineer. It's NECESSARY to be a computer programmer for a while on a variety of projects before you can become a good software engineer.

      --
      SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
    2. Re:You can't get there from here. by Anonymous Coward · · Score: 5, Insightful

      Programming, on the other hand, can be done by anybody with a Computer Science or related mathematical degree, usually a two year Associate's degree. India is graduating 50,000 people with this training EVERY YEAR.

      As a manager at a software development firm, I laugh at what you're saying. We've interviewed several of these people, unfortunately. They're essentially useless, even as programmers.

      Some of these dipshits, err, "expert C# developers" couldn't even explain the basic concepts behind a linked list implemented in C#. One notable Indian-trained fellow we interviewed told us all about arrays when asked to describe a linked list. When we asked him to elaborate on where the linking comes into play, he told us that "the addresses of the memory cells were linked by virtual memory".

      The developer I was interviewing this fellow with was also of Indian descent, but trained in France. He told the candidate flat out, "Sandeep, you are a disgrace to the people of India!"

      The few times we've actually given such people a chance, there has been nothing but trouble. Some of them run into major problems just getting simple code to compile. In the end, they waste the time of our better developers with stupid, near-pointless questions. So I think it's almost always a mistake to hire the people you describe.

    3. Re:You can't get there from here. by Anonymous Coward · · Score: 5, Insightful

      Just a warning: the following is going to be offensive to anyone who's not putting it into the context of cultural differences.

      "Programming, on the other hand, can be done by anybody with a Computer Science or related mathematical degree, usually a two year Associate's degree. India is graduating 50,000 people with this training EVERY YEAR."

      As someone who's working heavily on an Indian offshoring project right this moment, and has had the opportunity to talk to many others in the same situation, I'm going to have to disagree with this entire line of thought.

      If you think those two years of Indian schooling produce anything resembling the equivalent that two years of an American school will produce - even a low-end community college - you're fooling yourself. The Indian education system is fundamentally broken in terms of teaching initiative and critical thinking, in the sense that they don't. They produce robots, for the most part.

      If they don't understand what you're saying, you know what they say? "Yes, I understand." Because they're too damn scared to say no, because their teachers and parents yell at them when they said "no, I don't understand" in school.

      The project's running late? Don't expect any notice from your Indian team until it's too damn late to save it. Ambiguity in the specs? Same thing. They can code pretty well given an extremely exacting spec. They fail miserably when they're expected to make good design decisions on the fly. Their culture is big on shame and saving face, and it bites you in the ass every time.

      High productivity? You wish. That's not the way their culture works, for good or for bad. They're not lazy, per se, but office socialization will take up huge amounts of time, meaning that the time you do get isn't going to be quite as good (think late at night work binges).

      Performance reviews? These guys are high management. If you give them anything less than perfect, they'll bawl in tears in your office. Why? Well, mommy and daddy expect nothing less than perfect, so that's what they've gotten used to. In the real world, though, no one's perfect, and they never seem to figure this out.

      Is any of this fixable? Yes, given time. I'm quite pleased with the progress a couple of our guys have made after a few months, even if they're nowhere near American standards yet. But you'll often spend quite a lot of time trying to just work with their constraints, and worse yet, dedicate significant resources to trying to just get them into gear.

      The culture differences here are huge, and they have a huge impact on the effectiveness of offshoring. If you gave me the choice between 10 newly-graduated Indians and 2 newly-graduated Americans, and I got to do the interviews, I would take the 2 new Americans EVERY TIME on a programming project. In a call center environment, where those cultural differences work to my advantage? Definitely the Indians. Sometimes, bodies count. Other times, they don't.

    4. Re:You can't get there from here. by GoMMiX · · Score: 5, Interesting

      For years I myself pondered what to do with my career, or perhaps lack thereof. I never finished my degree, and I knew that hurt and would continue to hurt for the rest of my life unless I finished it.

      I've worked just about every IT job there is since 1997 - starting as a programmer analyst. If I tried to go over the laundry list of languages, OS environments, and software I'm either very familiar with or sometimes even had a hand in developing -- I'd probably forget a dozen or more between them - maybe more. A couple of years ago I gave up on finding stable work - and took up private consulting. Being something of a jack-of-all-trades, I didn't have any problems finding work.

      It was not until then that I fully realized what was happening with IT. To me, I had just seen jobs going overseas without realizing the full scope of how it effected IT as an industry.

      Being a consultant, you're something of a throw-away employee. No major overhead, no accounting headaches, no benefits to deal with, just cuts it plain and simple - not to mention the best part - they can fire you just because, with no consequences. In reality, that is what the general IT industry has become as a whole. An industry of throw-away employees. One where most employers expect you to know exactly what they need. Specific OS, language, and development environments.

      If a company is looking to downsize, IT is almost always the first place they look, and the department hit the hardest.

      I made the decision about 5 months ago that I was going back to school, I was going to finish a degree - but it was not going to be a CS degree. The industry, in my opinion, is completely lost. Even on the administration side. Don't get me wrong, there are jobs to be had - but the pay very rarely fits the level of responsibility and knowledge required.

      Just weeks before classes started I got a call from a friend who thought he had *the* job lined up for me - as an engineer. Transportation Logistics Engineer, to be more specific. How I manage to always get jobs I have no specific education in is beyond me, but I considered myself saved and I really don't care why. Most of the people at the company stay there for their entire working careers - getting a position there with no degree in the specific field they were seeking had never even crossed my mind.

      But, I digress...

      I've worked in IT for 10 years. I've seen it all, from being the solo network admin at a small company to being lead developer on projects for some of the largest corporations in the world. I turned away from the industry and I will never look back for anything more than a hobby. Even today, I am still getting calls from people I had consulted with desperate for me to schedule in some time for them - offering weekend and evening work if I would come fix or support key systems they don't want to pay an employee to maintain.

      If a friend asked me if they should consider a degree or career in IT, I would not hesitate to warn them of the instability, irregular hours, low pay for skill and responsibility, lack of a future, and in general the bad past experiences I have had. Things like not seeing my son for more than a couple hours a month for the first three years of his life, due to work. Or the many times I found myself not going home or sleeping for days on end. It sounds like a nightmare and people wonder how such things could honestly happen, but there is an entire industry of just that - it's called IT, and I'm proud to say I'm not a part of it anymore.

      That's just me, though. Some people like that, I suppose.

  2. Job Growth Doesn't Answer This by Anonymous Coward · · Score: 5, Insightful

    You are a fool to choose a career that doesn't interest you. Pick something you love, and you'll be happy. And as far as money is concerned, if you actually enjoy it, it will show in your work and you will be sought after.

  3. The profession's fine, if you're good. by cduffy · · Score: 5, Insightful
    If you're good, there's plenty of work.

    If you aren't good, then:
    1. You won't enjoy it
    2. People who are good won't enjoy working with you
    3. You'll have cause to seriously worry about outsourcing as competition for your job
    People who say the profession is dead mean that the profession is no longer supporting as many gross incompetents as it did back during the boom. That's thankfully quite true.

    The point: Don't go into software development as a profession if you're in it for the money. You won't want the profession, and the profession doesn't want you. If you're in it for something other than the money -- come on in, the water's fine.
    1. Re:The profession's fine, if you're good. by Marxist+Hacker+42 · · Score: 5, Insightful

      It's more than that- to get good, you need experience. To prove to HR that you're good, you need experience that you can put on a resume (no, writing a virus to control a 50,000 node botnet isn't experience). And getting that experience is exactly what is being outsourced. It's not just the incompetent that have lost their jobs- it's also the ignorant young guys who might have become good programmers if given half a chance.

      --
      SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
    2. Re:The profession's fine, if you're good. by Joebert · · Score: 5, Funny

      I got in it for the chicks.

      --
      Wanna fight ? Bend over, stick your head up your ass, and fight for air.
    3. Re:The profession's fine, if you're good. by rossifer · · Score: 5, Insightful

      It's more than that- to get good, you need experience.
      There's different kinds of good.

      I've worked with kids fresh out of school who can understand good design and have the enthusiasm to get into the system and the domain really quickly. Tell them something once, and later you see other people going to them for help for that exact same topic.

      Then I've also had the misfortune to work with people with "15 years of experience" who have clearly been making the same mistakes each year for 15 years.

      When you're looking at fresh-out-of-school-hires, there's only one real way to know if someone is one of those sharp kids that you really want on your team: someone told you about him/her.

      My advice to the poster: learn how to network. Work on class projects with different people and keep working with the smart people. Get into a co-op or intern at interesting companies (ask other people who have already interned and don't stop asking until you find someone who's (1) sharp and (2) gung-ho about their job). Go to the local language user group meetings and see if those people are any good. Ask to help out on other people's senior projects that seem interesting to you.

      The more people who know that you're a badass problem solver, the more likely you are to find work you enjoy.

      Regards,
      Ross
  4. Jobs Exist by kmsigel · · Score: 5, Insightful

    I have been a software engineer (working as an independent consultant) for 15+ years. I see plenty of jobs. At least once a year someone asks me if I'm available (I'm not) or whether I know of someone good looking for work (I don't). As with almost any profession, if you are very good at what you do then you won't have any problem finding work. If you are merely "good" (or worse) then you'll have trouble if the field isn't "hot" at the time.

    So, you have to ask yourself, "Am I merely good, or am I very good (or even better)?" I think that a lot of what determines that is enjoyment of the field. If you really enjoy programming, are really bothered when something doesn't work, are really driven to find an explanation for the "strange" behavior you are seeing, then you probably have what it takes. If software engineering is just some major that you're ok at that you think will pay well then it probably won't in fact pay well for you and probably isn't the right thing for you.

    Good luck.

  5. Yes, you are a fool by mi · · Score: 5, Insightful

    And a waste of material to boot, if you pick a profession based on its earning potential. And I really have no patience for lectures on how arrogant my saying this is.

    Do, what you love to do — and get to be really good at it, and you'll earn a lot.

    The problem with Programming today is that much more programming suddenly became required over the last decade or two, than there were naturally born and/or nurtured programmers. You had people becoming "programmers" after a 2-6 months courses... Asking these people, what bit is, results in stares and head-scratching. Many of the better ones got promoted too high as well (a problem in many other professions in America due to its low unemployment today, BTW).

    That much of the work of these programmer wanna-bees is outsourced is a good thing — maybe, the quality of burgers will improve, and/or hiring a (legal) baby-sitter will become possible again. The real professionals — and those, who really want to become professionals — don't have much to fear...

    --
    In Soviet Washington the swamp drains you.
  6. Re:True, but is it the right question? by dgris · · Score: 5, Interesting
    Loopy says:

    2) The "jobs are going overseas" mechanic implies a zero-sum game, when there isn't one.

    I want to expand on this point. A lot of programmers I know seem to be missing something fundamental here, for reasons that I don't get.

    Look, there are two core facts about programming as a career that trump everything else. The first is that not everybody can do it. I'd guess that only 25% of the population (tops) even has the potential to become a useful programmer. There is something about being able to decompose a technical problem into its constituent parts and then generating solutions for each of those parts that is simply beyond the capacity of the vast majority of people. I'm not saying they're stupid--brilliant poets are brilliant regardless of whether they have the capacity to learn C in any meaningful way. I am saying that there is some mental capacity that is not universal, and that people without that capacity are literally untrainable in the craft of creating software.

    The second core fact about programming as a career is that software creates its own demand. If you have one system and you write a second system, then in addition to all of the from-scratch systems that you could write, you also have the option of writing a system that integrates the first two. The mere existence of software increases the number of potential projects that exist, and it does so on a super-exponential curve. Most of those possible systems aren't actually useful, so they're never developed, but the number of useful possible systems also is increasing at an accelerating rate.

    Now apply these two core facts to the current labor situation. We've created so much demand for software in the Western world through our ever-increasing automation of an ever-increasing number of our activities that we can no longer satisfy the internal demand of our economy for persons able and willing to create software. We've already hired everybody who wants to be a coder and is able to produce usable code, but we still are demanding more and more software from them. In addition to bidding up prices for Western talent (take a look at where 'Software Engineer' falls on the annual salary charts and then cry me a river $100k/year wide) our society is also now hiring up everybody able and willing to write code in other parts of the world (and bidding up their prices, as well). Our own population is insufficient to meet our needs, so now we're skimming the cream of everybody else's crop.

    Unfortunately, even India and China don't have an infinite number of citizens who can actually create useful systems. As we send more and more work their way we're pumping the oil field of software talent dry. Not only that, but the better jobs and higher wages relative to their home economies that third-world programmers enjoy reinforce most of these trends. By making more they consume and invest more. This steadily pushes up the demand for middle-class and luxury goods in their home societies. But what does that really mean? That means that they're pushing up the overall demand for software in their home economies (virtuous circle == (more money == more businesses == more technology investment)), which brings us back to where we started. Software creates its own demand, and not everybody can create software.

    What happens when the Indians and Chinese are using all of their programmers for their own economies is anybody's guess. The fact that someday they will be seems pretty solid.
    --
    All I needed to know in life I learned from /usr/man.