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.

66 of 518 comments (clear)

  1. Outlook for an Occupying Force by User+956 · · Score: 4, Funny

    Believe the Occupational Outlook Handbook?

    I wouldn't have guessed that Outlook would function any different for US troops in Iraq, but I guess it must, since they have a whole handbook for it.

    --
    The theory of relativity doesn't work right in Arkansas.
    1. Re:Outlook for an Occupying Force by appleLaserWriter · · Score: 2, Funny

      Believe the Occupational Outlook Handbook?

      Personally, I don't believe a word Microsoft publishes

  2. 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 joedeaux · · Score: 2, Insightful

      > As an American, am I a fool if I decide to undertake this for a living?"
      >
      Yes.

    3. Re:You can't get there from here. by UncleTogie · · Score: 2, Informative

      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.

      They HAVE been replacing them....

      ...just not with US workers...

      --
      Don't tell me to get a life. I'm a gamer; I have LOTS of lives!
    4. 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.

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

      It's not that the jobs over here are being taken by those people over here, it's that management will sometimes outsource whole projects to indian/whatever firms. The people taking the jobs don't get interviewed, they already have jobs with companies that bid the lowest for the contract. As a manager, surely you know that? Or maybe you just work at a great place :)

      The other problem over here is that consulting companies (*cough* Accenture *cough*) hire the cheapest people they can that seem smart, and then try to crash-train them to program later.

      maybe just my experience though...

    6. Re:You can't get there from here. by stefanlasiewski · · Score: 2, Insightful

      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.

      It's different at different organizations. Some of these job titles never made sense.

      In my experience 'System Analyst' is often used as a a generic job title, something like 'System Operator'. Analysts are often at the low end of the totem pole, have less computer experience then the 'Programmers', and are towards the bottom of the pay scale. 'System Analysts' often support the other technical groups, but have little computer experience. 'System Analyst' is often used as one of those 'foot in the door' positions so that people can start learning technical or project management skills. After several years experience, an Analyst is promoted to 'System Administrator', 'System Engineer', QA Engineer, 'Product Manager', etc.

      But then again, I know 'System Analysts' consultants who have the ear of the CEO, but again--- but few of them be 'highly skilled' in an engineering sense. They have good communication skills, which is why they can effectively present ideas to the management team.

      --
      "Can of worms? The can is open... the worms are everywhere."
    7. Re:You can't get there from here. by XenophileJKO · · Score: 4, Interesting

      Totally 100% agree... I must have interviewed 30 people before I filled my last programmer position for my team. I hired a guy in who had never actually worked with the language we use (C#).

      Seriously... the other 29 canidates that I brought in couldn't write a 3 case "if" statement in the right order.

      I made up a test (Well copied it actually: http://www.codinghorror.com/blog/archives/000781.html/) and I thought to myself, "There is no way this will help me filter people out, this is WAY too easy." But I decided to go ahead and try the simple test just to see how people would approach it. To my shock.. every single person failed it except for the guy I hired.

      I suddenly realized my own place in this job market was MUCH better then I had thought before. (Being totally self taught and working by myself or with small teams, I used to wonder how well I stacked up to what was out there) If you are GOOD at programming there is PLENTY of oppertunity in the US for programmers. You hear me smart kids? We can certainly use many many more good programmers.

    8. Re:You can't get there from here. by daeg · · Score: 4, Funny
      Please start hiring those damned "C# experts" so they stop flooding my strictly Python job postings. I really don't want them. I even have a template, very curt message:

      "I believe you sent me the wrong resume. My job posting listed Python as a requirement, but your resume fails to mention either Python or reading comprehension. Could you please resend? Thank you."

      Fortunately for me, very few bother responding back.

      Although I did get a photo of a python sent to me once.
    9. 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.

    10. Re:You can't get there from here. by CastrTroy · · Score: 2, Interesting

      The government of Canada actually has all their job titles standardized. Systems Analyst seems to me to be a pretty low job on the list. Phrases like "experience as a computer programmer is usually required", and "Completion of a college program in computer science is usually required." For those in the US, college in Canada is community college with 2-3 year programs and you get a diploma at the end. University is where real computer science is taught, you get a degree, and can move onto grad school after that. If I remember right, I had a friend who was hired as a systems analyst to do some programming, because they didn't have a high enough budget to hire a programmer, so they just gave him a different title, lower pay, but he did the same work.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    11. Re:You can't get there from here. by owlmon · · Score: 2, Interesting

      I am an older software engineer, here are my observations.

      Your point is that the simple software tasks can be performed cheaply in developing countries. The more difficult tasks cannot.

      This is true now, for some reasonable value of "true." However, my young colleagues in Bangalore and Beijing are not standing still in this race. They are working hard, picking up skills as fast as they can. Exactly as I did, when I was their age.

      In a few years, these Asian new college grads will no longer be entry level engineers. They will be the senior developers of their time. And where will the American senior developers be? Retired, that's where. If we lose a generation of American entry level engineers, where will the next generation of senior developers come from?

    12. Re:You can't get there from here. by The+Mad+Debugger · · Score: 2, Informative

      See, the thing is, programming and manufacturing are different. There's a much lower barrier to entry for coding, and it's easier to move work off-shore, and also easier to move stuff back.

      What you had in the first part of this decade was a cash crunch among companies, and it was fashionable to try to show the shareholders that you were doing something about it by firing US engineers and moving the jobs to China or India.

      But what you find out about India or China is that people there are just like people over here: There's a few great programmers, and a lot of crappy ones. And when you factor in the cost of having multiple sites, training people, high turnover, etc, you find out that the promised cost savings just isn't there.. BUT, you also find out that, hey, there's some good coders over there, too, that are worth employing. Right now, I'm working in the US as a software engineer at a major telecom with offices in the US and India and all over the rest of the world, and what has settled out is this: India and China are not going to consume all the programming jobs and destroy programming in the US. They are, however, a source of talent and here to stay.

      In the long run, my project (a popular cellular wireless technology) has people working on it in several locations in the US and India, and I'll tell you what: when it comes crunch time at the end of a release, it *still* doesn't feel like we have enough staff. Our layoffs have been finished for a few years now, and we're not adding staff like we were at the height of the bubble, but neither are we laying off like we were at the end of the bubble either. I'm gainfully employed, and so are all my geek programmer friends.

      Offshoring as a way to find new talent and staff projects that need staffing is here to stay.

      Offshoring as a way to save major money and as the end of all programming jobs in the US (or whatever high-cost of living region you want to subsitute) is a myth propagated by consulting firms as a way to capitalize on the stupidity of the bean-counters.

      If you love programming, and you're good at it, get a CS degree and become a software engineer. You will find a job. And if you can't, you can alway go buy a cheap machine and start a company in your garage, and wait to get bought by Google or Microsoft. :)

    13. 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.

    14. Re:You can't get there from here. by mi · · Score: 2, Interesting

      A programmer is more someone who writes code to spec, with much less scope for innovation.

      If the "spec" is written in a precise enough language, there is no need for this "programmer" — get (or develop) a compiler or interpreter for the language once, and be done with it.

      That's the theory. In practice, you, most likely, just aren't using a high-level enough language...

      --
      In Soviet Washington the swamp drains you.
    15. Re:You can't get there from here. by pokerdad · · Score: 3, Insightful

      but I have to wonder: how long will it be before US companies realize that we really are worth our salaries, that you get what you pay for?

      This will happen shortly after the economic model that rewards CEOs and stockholders for the companies short-term gains, even if it is at the expense of the long term, comes to an end. I am not an economist, but I am not hopeful this will happen in my lifetime.

    16. Re:You can't get there from here. by yog · · Score: 3, Interesting

      It's the old story. You have to pay your dues and learn the ropes before you're worth anything. For a few years there, companies couldn't afford to wait for people to accumulate experience, so they hired'em right out of school. That unrealistic situation is behind us now, along with hundreds of defunct Dot Com era companies, and we're back to business basics. You have to have a product that someone wants to pay for if you want to run a business.

      Another business basic is that people have to have a skill that's in demand. There's plenty of demand for *experienced* software engineers. A place that hired me to do some perl programming last year told me they were searching for months. Months! Where are all the perl programmers? They hired me not because of my perl, which is just one of my skills, but because I know how to design, code, and test software at a senior level. Newbies just don't have that level of skill yet so they're not going to get hired very easily.

      I suggest that newbies in the software field stop feeling sorry for themselves and complaining about how the American software market "sucks" and get on top of the technology and pick up some useful skills. Write a nice interactive website for your church or school pro bono, teach, write some open source software and get your name up on sourceforge.net. It's not that hard; it's called good old fashioned true grit. If you can demonstrate to companies that you are worth something to them, believe me you'll get hired. It also helps to join professional societies and show up at meetings; you develop leadership skills, you build up a network of colleagues, and long term it will pay off in job referrals.

      This whole offshoring thing is overblown for several reasons. For one, all the good Indian engineers are hired already, and companies have discovered that near-shoring or local hiring has certain advantages. Like everything else, the pendulum swings and it moves into balance. Good luck to all who are starting out and don't let market conditions get you down; just get out there and pound the pavement and make your career happen.

      --
      it's = "it is"; its = possessive. E.g., it's flapping its wings.
    17. Re:You can't get there from here. by Tablizer · · Score: 2, Interesting

      I've worked with several Indian visa workers and I have to disagree with your assessment. They were a mixed bag, some good and some questionable. Variation between individuals seems more than variation between cultures.

      That being said, they were "highly filtered" individuals such that the agency selected the better workers. Those who were less creative tended to work harder to compensate.

      One thing about globalization is it increases a co's choice so that companies can be picky and pay low. I decided to try to get the hell out of IT, but decided I like programming enough that I find ways to stay in despite slack pay. I don't want to be a manager even though that is where the opportunities are.

    18. Re:You can't get there from here. by Anonymous Coward · · Score: 2, Interesting

      Im of Indian origin, and cant agree enuf with the sentiments expressed in this thread. Right at the begining of my career (>> a decade) I realized Indian so called *software* firms did nothing but pimp out wh*reware and slaveware at the lowest possible price. What else could you expect from firms which one day were selling cooking oil, and the next day sotware. I swore never to work for any of them even if Id to starve, and strike out on my own instead as a solo, highly competent consultant that could command a price worthy of my skill, regardless of geography. Lately these firms have added to their list of occomplishments, landsharking poor farmers out of agricultural land, to build giant 5 star wh*r...e rrr ... software factories and so called knowledge campuses. The best that can be said about Indian IT industry is that they've evolved from cheap w**res to geishas. The sooner Indian firms start creating real products, especially those that directly mitigate poverty, corruption etc in our own dear motherland (like our space and nuclear industry did), the better off the rest of the world will be.

    19. Re:You can't get there from here. by rjstanford · · Score: 2, Insightful

      Those people should be smart and experienced enough to send a detailed cover letter explaining how, regardless of the fact that they don't know the language (no big deal), the libraries (much harder to grasp) and the "right way" of doing things (the biggie), their operational and business domain experience is still enough of a good fit for the company to have them come in for a chat. The fact that they don't (apparently) leads me to believe that their business skills won't, indeed, make up for their lack of language knowledge.

      --
      You're special forces then? That's great! I just love your olympics!
    20. Re:You can't get there from here. by GoMMiX · · Score: 2, Insightful

      The company I just started for layed off 15 people from the IT department the first week I was there. Yesterday we had a meeting discussing next years budget, and where cuts would be made - I'll give you one guess what department was mentioned first...

      Ignorance is bliss, and if you've got a good job in IT it's easy to be blissful.

      You should be thankful you have one of those jobs, not berate others who do not.

    21. Re:You can't get there from here. by PopeRatzo · · Score: 3, Insightful

      It's not that hard; it's called good old fashioned true grit. If you can demonstrate to companies that you are worth something to them, believe me you'll get hired.
      What he means is that it's more important to be lucky than good. The dirty secret is that hard work accounts for a very small part of success.
      --
      You are welcome on my lawn.
    22. Re:You can't get there from here. by cayenne8 · · Score: 2, Interesting
      "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. "

      But, THAT is what makes it great to work in IT today. You incorporate yourself, and consult/contract yourself out. If your good at what you do, you can make KILLER money, you get to write off all kinds of things on taxes (about the only way these days to keep much of your hard earned money), and you are basically your own boss. You also don't have to worry as much about becoming stagnant, outdated in skills and stuck in a dead end job since you move from job to job over the years. I think the negatives you point out are actually what is positive about IT today!!

      "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. "

      Well, to make money, real money in IT....no, you cannot look upon it as a 'traditional' job, one where you work for the same company all your life, and retire on pension, etc. Heck, those type jobs don't really exist much at all in any field. There is no such thing as a job for life, or a loyal company/employee relationship any longer. You have to be willing to keep yourself up to date, and to go where the job is. If you get into the newer mindset, you can make a very healthy wage.....and your time is YOURS to take off when you want too. You don't have to wait till you've earned PTO hours. You make your bill rate high enough to cover you when you want time off...for vacations, family...whatever.

      --
      Light travels faster than sound. This is why some people appear bright until you hear them speak.........
    23. Re:You can't get there from here. by stefanlasiewski · · Score: 2, Insightful

      And this practice will remain 'theory' for quite a while. CEOs, salespeople and consultants promote these magic code-generating systems, but have you ever seen one actually work?

      Is it possible to create specification which is so good, that you could feed it into a interpreter/compiler, and the compiler 'automagically' pumps out quality code? If you're going to write a spec in such detail, might as well write the spec *in* a programming language.

      I've seen a dozen attempts at these automated systems in web environments over since 2002, and nobody has body has ever gotten close to a working product-- the end result is unworkable *and* expensive. The projects have all either been scrapped, or required extensive cleanup (which creates a demand for *more* programmers, engineers, etc). The business looses. The only people who win out are the consultants who sold the software.

      The devil is in the details. No specification is perfect, and specs always miss out on important details. Programmers and engineers are the people who take a flawed specification and create a workable product.

      These systems will work eventually, but the solution is still in the distant future.

      --
      "Can of worms? The can is open... the worms are everywhere."
  3. 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.

    1. Re:Job Growth Doesn't Answer This by SpaceLifeForm · · Score: 2, Funny

      Well, the rate per hour isn't that high,
      so you better get up early that day.

      --
      You are being MICROattacked, from various angles, in a SOFT manner.
    2. Re:Job Growth Doesn't Answer This by fractoid · · Score: 2, Insightful

      Make a website for yourself. Right up there with "no-one ever went broke underestimating human intelligence" is "on the internet there's always someone who will pay for the weirdest shit."

      --
      Rampant carbon sequestration destroyed the Dinosaurs' tropical paradise. I'm here to help repair the damage.
  4. Right conclusions, incoherent reasons by autophile · · Score: 4, Insightful

    The Handbook's conclusion is probably correct, but the reasons they give are pretty much incoherent. My theory goes like this.

    There's a food chain in project development. At the top is the customer, and at the bottom are the implementers. The closer you are to the top, the more important it is to the customer to be in the same country as the customer. The closer you are to the bottom, the more likely your job can be done in any country.

    I don't like it, either, but there you go.

    --Rob

    --
    Towards the Singularity.
  5. 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 darrint · · Score: 2, Insightful

      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.

      It's not like you don't have the whole stinking internet available help you, let you hack on production code, or promote projects of your own creation.

      If you can tolerate a startup environment there's a glut of python positions IMHO.

      Boo-hoo-ing about the inability to find good programming work in the climate of 2007 is asinine. Outsourcing is a lot more narrow than the whiners would have us believe.

    4. 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
    5. Re:The profession's fine, if you're good. by typidemon · · Score: 2, Insightful

      I've interviewed kids who haven't even finished University and you can tell that they are going to be fantastic. Kids with amazing observational skills, aware of small differences and really eager to learn how to do things right. They are the people that get gigs straight out of uni and have the world open to them.

      Unfortunately, most of the people on the job market are deadshits.

    6. Re:The profession's fine, if you're good. by jalmond · · Score: 2, Insightful

      I agree with rossifer.
      In actuality, there are plenty of companies that aren't looking for experience, but are looking for raw ability. Heck its in Google's hiring charter "we value ability over experience". My company is the same and so are plenty of others. When I'm interviewing candidates, I'll choose a kid who quite clearly is a good problem solver, has solid engineering fundamentals, and comes from a good university over a guy with a mile long resume any day.

      In my experience, if a company is looking for a mile long resume there are two scenarios present: 1. They are looking for a high level position, that an entry level guy isn't qualified for, or 2. the hiring managers are idiots themselves and won't be able tell what a good software engineer would look like so they have to compensate by relying on an inflated resume.

      As an entry level guy trying to find his first job, you really don't care about scenario 1 or 2. Your not qualified for scenario 1 and you don't actually want scenario 2.

      Instead what you should look for are companies that innovate, ones that have a strong tech department in the first place. Because the companies that don't are looking to hire a monkey to do monkey jobs. And if you really have the chops to be a good software engineer, then you don't worry about the monkey jobs - let them go to India, or the moon for that matter. Companies that you WANT to be mentoring you are the same ones that will be able to recognize your talent and ignore your thin resume.

      --
      Travature.com: Hello...World
  6. Science vs. "The internet" by Hacksaw · · Score: 4, Insightful

    I won't speak to the accuracy of the studies that you might be citing, I haven't read them. But remember that anecdotes collected on the internet, or anywhere else, are almost useless since they are self-selecting participants in an ill designed casual survey. You don't have a real survey, you have the rantings of perhaps ill treated people.

    --

    All the technology in the world won't hide your lack of vision, talent, or understanding.

  7. True, but is it the right question? by Loopy · · Score: 4, Insightful

    While it is true that "software engineer" spots are going overseas at high rates, two things should be taken into account:

    1) "Software engineer" isn't the shiny, highly-technical bastion of the well-edumacated like it used to be. As computers have become more standardized these jobs, like many other "old high-tech" jobs, have become more or less commodity positions. Look at clerical (read: typing/wordprocessor, etc.) work, for example. Everyone and their dog thinks that if they can use Windows, they're automagically a PC expert.

    2) The "jobs are going overseas" mechanic implies a zero-sum game, when there isn't one. There is a growing need for generic PC software weenies in all sorts of QA and other fields at companies that didn't need them a few years back. This is A Good Thing(tm).

    So, basically, having been in the industry pre and post-dot-com-boom, I'm more or less of the "Nothing to see here, move along," mindset. /shrug

    1. 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.
  8. Entire IT industry by nurb432 · · Score: 2, Insightful

    Is slowly dying due to its own success in automation, and making hardware nearly disposable.

    As things improve each generation, and reduce the need for support people, the jobs get fewer and fewer. Only a handfull of people will be needed at the end of all this. A lot like toaster support.

    --
    ---- Booth was a patriot ----
  9. 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.

  10. 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.
  11. tea leaves and biz speak by bzipitidoo · · Score: 2, Interesting

    I was interviewed today for a short contract position requiring some Java skills. In the space of 3 business days, the employer was able to interview and decide between 3 different people. An hour later, I got the news. I was not picked. I asked the recruiter whether there really was a shortage of people and he gave an emphatic yes. So I asked, why then was this employer able to get a choice of people in such a short time? If there really was a shortage of people, shouldn't positions stay unfilled for weeks because they can't find anyone? Shouldn't there have been no competition? He didn't have a direct answer for that, but mentioned he's been trying to fill all kinds of open positions at several companies.

    Maybe it's "biz speak". To employers, "shortage" really means "we weren't inundated with hundreds of resumes for 1 position".

    --
    Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
    1. Re:tea leaves and biz speak by phantomfive · · Score: 2, Insightful
      It's pretty simple, really. How many jobs have you applied for? Two? Three? If you are serious, you will probably have applied for ten or more. If everyone is applying for ten or more, then every employer will receive a lot of applications, but there will be a lot of duplicates. Three applications is not very many.

      As for why you weren't picked, there are a couple possibilities:
      1. You are just not very good. In this case, the solution is simple (if not easy). Join an open source project, start your own, or do whatever it takes to get better. Maybe just reading through some guides like a zillion monkeys or even Joel. Programming is a skill, and can be developed.
      2. Someone else who applied was better. Whatever, it happens no matter how good you are. Move on, apply somewhere else.
      3. You have bad interview skills. It happens. Read What Color is Your Parachute
      There are so many companies desperate for programmers out there, you too can find a job. It's just a matter of learning how to do it.
      --
      Qxe4
  12. Programmer vs Software Engineer by Jah-Wren+Ryel · · Score: 2, Funny

    How to tell the difference between a programmer and a software engineer?

    A programmer can't do much more than code
    A software engineer reads and understands comp.risks.

    --
    When information is power, privacy is freedom.
  13. My anecdotal by Anonymous Coward · · Score: 2, Interesting

    I used to do line work in factories, I liked it enough to learn all the machinery and made it to foreman-then the factory went to china. Went to another place, the same thing happened. Then ANOTHER place, another bingo-moved to china. OK, I got the message. I got into cabinetry, got good at it, worked steady, then all of a sudden chinese imports flooded the market, lost a few jobs in a row, stopped doing that. Got into remodeling, and had to keep dropping my bid prices down because of the illegal alien invasion, guys who can and will live 12 to an apartment can just bid jobs lower. It got to the point that it was stupid to turn the truck on anymore, would lose money.

    OK, I am one of those boomers mentioned, how many more times am I supposed to learn a completely new trade and try to have a "career"? I'm looking at now never getting to retire, just work until I drop, literally. Should I get into computers? Everything I see is they are being made overseas and the software programming is going over there as well. Doesn't look real smart to me. What is left, medical profession? Do they even take old farts into medical school? Would there be schooling assistance? Would they even consider my grades from decades ago? My guess is this would be a waste of time as well.

    I've liked every job I have had so far. Sure, some parts were sucky, but all jobs have sucky parts to them. It isn't enough to just love your work, the powers that be/ wall street assholes have got to STOP shipping out still useful jobs and stop shipping in illegal blue collar workers who will work under the table for peanuts.

    Yes, I am employed now but at a pretty small salary for a lot of work, seven days a week in fact to barely get by. Pretty bitter about things, it doesn't matter sometimes how loyal you are, how hard working, how much you put into learning a skill when the rich guys can just dump you like used tissue paper so they can squeeze another few dollars out for their already over stuffed wallets.

  14. The only thing lost is the internet bubble ... by AHumbleOpinion · · Score: 3, Insightful

    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.

    And yet nearly everyone I know has an incredibly difficult time filling software engineering positions.

    According to them, you have to be a genius programmer if you expect to compete successfully for the slim pickings that are left, ...

    Genius? No. However let me make a distinction between those who enter a computer science program because they are genuinely interested in software compared to those who entered because someone told them it was a good career path. The former will generally not have a problem, more on that below.

    Let me also rant on "programmers" a little. During the internet bubble anyone who could write two partially correct lines of code/script fashioned themselves a programmer and some of these collected salaries far beyond their true worth. I think many of those whining about conditions today come from this pool of talent, not all, but many.

    ... there is no job security at all ...

    That is universal, not specific to software development. However software developers are inherently better prepared to move from one company to another, work from home, start your own business, etc.

    ... the technology changes so fast that if you allow yourself to slip behind you might as well kiss your career good-bye ...

    Now we return to those who have a genuine interest. Such people tend to tinker with new things at home, on their own time, for fun, and this helps them keep up to date and get/keep the jobs they want. I was dumbfounded many years ago when a coworker (fortunately on a different team) was hoping to be assigned to a particular project because he wanted to learn C++, the language that was to be used. He thought I was crazy when I suggested he get a compiler and learn the language on his own rather than wait for such an event.

  15. My Experiences by Anonymous Coward · · Score: 4, Interesting

    I can give you my experiences and maybe it can help answer the question and also help you understand what is going on in this country. I first graduated in 1992 with a degree in Industrial Management (I always wanted to work at a job where I actually make something). I quickly got a job doing quality control work in the mining/chemical field.

    I became interested in computers at that time, since I actually had money to buy one. So when my department was eliminated during the industrial downsizing that was so popular during Bush I, I looked at it as an opportunity. I ended up going back to school for Computer Science and taking a job delivering food at night. I really came to enjoy programming, I liked the feeling I got when the program worked correctly. I graduated with a degree in Computer Science in 2002. At that time, I couldn't buy a job so I ended up working at Wal-Mart while looking for programming work. I spent a year doing this before I decided that if I wanted to ever make more than $7.00 an hour, I would need to find a career that could not be sent overseas. To me it came down to either teaching or medical.

    I decided on teaching, went back to school, yet again, and got a Masters in Education. I took a job teaching computers to middle school kids at a low-income school. So now (3 years later) I'm making $38,000 a year with a debt of $60,000 from my student loans. I enjoy the work, but I have never stopped programming and still send my resume out every now and again. I even had an interview for an entry level programming position recently. The interview did not go well. They asked a lot of questions about SQL, which I never really enjoyed so I haven't kept up with it.

    A System Analyst at the school's district office is telling me to get certified in Java because he's convinced that is the way to get noticed. I'm almost to the point where I just don't care anymore and will teach until I retire. So, no enjoying a job and being good at it (I'm a very good programmer) are not enough to get you a job in this country any more.

    1. Re:My Experiences by EMB+Numbers · · Score: 2, Informative

      I made a mistake above. According to the hard copy school report card for my school district, the average teacher salary is $43,200. I don't know the district's median. I can't find the figures on-line.

      As of 2002, the average salary for teachers nationwide was about $44,600 not counting benefits. http://www.manhattan-institute.org/html/_nypost_teacher_pay_myth.htm

      Quoting the article:
      According to the U.S. Department of Labor, the average public elementary school teacher in the United States earns about $30.75 an hour. The average hourly pay of other public-service employees - such as firefighters ($17.91) or police officers ($22.64) - pales in comparison.

      Indeed, teachers' hourly rate exceeds even those in professions that require far more training and expertise. Compare the schoolteacher's $30.75 to the average biologist's $28.07 an hour - or the mechanical engineer's $29.76 or the chemist's $30.68.

      Whose hourly pay is competitive with that of teachers? Computer scientists ($32.86), dentists ($35.51) and even nuclear engineers ($36.16).

      Note, too, that these hourly figures exclude benefits, such as health coverage and retirement accounts, which are typically more generous for government employees, such as teachers, than for private-sector workers.

    2. Re:My Experiences by Rakishi · · Score: 3, Informative

      They asked a lot of questions about SQL, which I never really enjoyed so I haven't kept up with it. SQL is easy. If I was looking for a programming job I'd first ask what they're looking for. Then I'd look at what the wanted ads want. Then I'd learn it. Then I'd write a lot of code in it.

      If I had an interview in X days and I didn't know Y which may be on it then I'd spend all my time making sure I knew enough of Y. I literally did that for my current job after I did badly during a phone interview, I told them I was rusty and that I won't be in X days and I made sure I wasn't.

      I'm a very good programmer Well this is probably your number one problem. You're assuming you're good and likely you're not. Especially by corporate and team based programming standards. Nonetheless since you assume otherwise you blame others for your failures instead of acknowledging the truth and striving to improve yourself.

      So, no enjoying a job and being good at it (I'm a very good programmer) are not enough to get you a job in this country any more. If you can't show other people that you're good then you're not good. End of story.

      If I was looking for a programming job and I actually enjoyed programming enough then I'd be coding as much OSS in it as possible. High profile OSS aimed at solving problems that I perceive as being important but not tackled. I'd contribute heavily to well organize and well known projects. I'd learn and understand not just the languages that are "hot" but the methodologies behind how actual programmers program.

      Anyway if you love programming then you program. If the first thing that comes to your head when you see a new problem with no visible solution isn't "well I can code something to do that" then you really don't love programming. I've written two FF extensions and modified a number of others because there was a need for them and no one else wrote them yet.
  16. Yes, you would be a fool by tftp · · Score: 4, Insightful
    And here is why. First of all, if you read the replies above you will see that a software analyst is not something you can claim on your resume when the ink on your diploma is still wet. And you won't get the chance to grow into the position because the entry level positions are either not common enough or just a dead end.

    A more generic outlook is this. Software can be produced in any country, anywhere at all, and the only thing it requires is the competent personnel to execute the project. India and China produce more software developers in total, and proportionally more *excellent* developers. Now imagine that someone in the world (a transnational corporation, for example, which does not care where the job is done) needs to develop and write a complex software system to, say, operate a 23-legged underwater spider that is being built to fix underwater fiber cables. The company will build the hardware, and now it needs to find a software developer (a company, of course) that can provide at least 100 developers full time, at least 25 senior developers, and a proportional number of managers and other necessary overhead.

    Given these example conditions, let's see which company will win the bid. A US company will be burdened with high salaries, and at the same time will not be able to provide so many competent developers (warm bodies do not count.) Ability to work *seriously* overtime is probably not there; willingness to travel and participate in testing in Philippines is probably not there either. Compare to an Indian company which can give you as many workers as you need, at fraction of the cost, and they are all best of the best. A US company would need to have some very tangible advantages to win the bid, but I can't imagine how they can win on costs. Practically the only usable story here is previous experience and the ownership of relevant intellectual property, and good luck if they have it. But a US newcomer has no chance to win the bid; and even older companies, with experience of underwater and robotic works, will face fierce competition from far more populous countries.

    In other words, a US worker is overpriced on the global market, and exceptions are rare. The USA does export technology, but it is in markets that have extreme barrier of entry (airplanes, nuclear reactors, Windows OS, drugs, CPU and IC designs) or when the products are weapons. Those are the major sectors of US export (not counting food products, since they are not relevant to this discussion.) More and more of US technological output is in knowledge only, and software developers are not high enough to qualify as such.

    Why all this is happening is simple. Humans and societies develop more and more knowledge and skills, and then they get to a plateau - no more intellectual growth. That's what Europe and the USA reached decades ago. During that time Chinese cast iron at home and shot intellectuals, and in India Hindus and Moslems tried to determine whose god is mightier. Physics of semiconductors and quantum effects in P-N barriers were not on the horizon there. But now the developing nations advanced, as they should, and they are quickly approaching the same knowledge plateau that US and Europe encountered earlier. That's why they are becoming competitive - their PhDs are just as smart now as any european or american PhD, and there are far more of them, and they charge far less, and the process is only unwinding out of control.

    1. Re:Yes, you would be a fool by Anonymous Coward · · Score: 3, Interesting
      Software can be produced in any country, anywhere at all, and the only thing it requires is the competent personnel to execute the project.

      In theory this is true; in practice it is not. Software produced in any country different from the ones where the customers are suffers from substantial communications breakdowns, which leads to all sorts or problems. Language barriers are also a major issue.

      India and China produce more software developers in total, and proportionally more *excellent* developers.

      How sure of this are you, really? Do you think that the educational systems in those countries are up to snuff? I'm not saying that they won't be someday, but based on my own experiences I'd say there's still quite a gap there. Those countries, for example, seem to be woefully underrepresented at the top international research conferences in Software Engineering given their relative populations. Researchers from those countries that I see at those conferences are working or studying at American and European universities, largely.

      That's why they are becoming competitive - their PhDs are just as smart now as any european or american PhD, and there are far more of them, and they charge far less, and the process is only unwinding out of control.

      Let's assume that smart people come in similar proportions regardless of national origins (which is probably true). This still doesn't explain the dearth of top research in software engineering from India and China, and why the top individuals from these countries are still going to America and Europe to get their PhDs and teach once they have them. There's something else going on here.

    2. Re:Yes, you would be a fool by Blackhalo · · Score: 3, Interesting

      I would have to disagree with your assessment. It is my experience that, for the level of competence that you define in your scenario, an Indian or Chinese programmer will cost the same as anywhere else.

      The basic code monkey, IS much less expensive. However with the regions I work with in China and India there is a 20 - 40% annual turnover rate at that level. Which make high level, sustained efforts challenging.

      My business has had to learn the hard way, that at the top 10% skill level, there is NO cost savings for using offshore talent and quite a bit of extra work, unless our projects are managed at the regional level. Even then, the quality of the product is not comparable to equivalent, domestically run efforts.

      A key thing to remember is that in India and China, labor necessarily the only factor to consider. The cost per square foot for Powered, lighted and climate controlled is a component our migration planners failed to take into account. http://www.chinadaily.com.cn/english/doc/2004-04/05/content_320651.htm

      In our initial assessments of the potential cost savings, it was proposed that there was a 10 to 1 ratio for the work produced when using regional talent per dollar. However, in reality it is more like 1.2 to 1 for equivalent projects and the falling Dollar on track to wipe that out before we recoup our start up costs.

      --
      "There is nothing to do it. But to do it." -Floyd Pepper
  17. Programmer vs Software Engineer debate... by Anonymous Coward · · Score: 2, Insightful

    I have a slightly different take on the definition of a programmer vs. software engineer.

    I used to call myself a software engineer. Now that I work in the games industry I call myself a programmer, and I'm much more proud of the title than I was of software engineer.

    Programmers create. Software engineers integrate.

    Programmers get it done. Software engineers talk about getting it done.

    Programmers are technical. Software engineers are technical writers.

    The world needs both, and I take offense to comments that claim programmers aren't as well educated. I have an MS in CS.

  18. Software Engineering is applied Computer Science by MikeRT · · Score: 2, Insightful

    Where I work there is little place for programmers or computer scientists. You have to be able to program, but you also have to be able to write software that shows that you have an ability to construct and follow requirements, use good design practices, and well, approach it like an engineer. They aren't as concerned with whether or not we are the best Java programmer, .NET programmer, etc., but rather how well we can come up with sophisticated architectures for reliably handling a problem.

    What we are seeing is a split where programming itself is like being a construction worker, and software engineering is like going into architecture when it comes to construction work.

  19. Because India will be our shithole forever by sam_handelman · · Score: 2

    Sooner or later the Indians are going to decide that they are not interested in putting in 10 hours of work on our behalf for every 1 hour we do for them - which is what these pay discrepancies amount to.

      Until the 17th century - throughout most of recorded history - the economic centers of the world were in India and China, not in the West, which was a Hobbesian backwater even during the supposedly good periods.

      A return to normalcy - where the most populous nations also control a majority of the world's economic might - throws all the cards in the air. The comprador leadership of China and India appear, for the moment, to be cooperating in placing the majority of their own population in a state of permanent serfdom in exchange for a cut of the take. Anyone who believes this to be a sustainable proposition must have been out of the room for the 20th century; and anyone who thinks that the Chinese and Indian elite really intend to play second fiddle to us westerners is a naif. If George Bush (who clearly understand this, to judge from his actions) is an idiot - how dumb does this make the class of prognosticators who don't seem to get this?

      That said, if you're looking for a guaranteed route to a decent job, become a nurse. With moxie and gumption it is possible - and will remain possible - to make a good living by knowing how computers work, although the responsibilities, expectations and compensation can be expected to be in flux. It may not be *easy*, and it certainly isn't and won't be guaranteed.

    --
    The good and new comes from no quarter where it is looked for, and is always something different from what is expected.
  20. Business definitions by Corvus9 · · Score: 2, Insightful

    I believe the confusion is because the Handbook is using the business definition of Software Engineer instead of the technical definition. The business definition being "an early 20s new graduate with 5 years of experience in a technology that's just been invented who has no family and is willing to work 60 hours per week for $40K p.a. plus stock shares in a company that's never shown a profit".

  21. Being a good (read: hirable) developer... by Darth+Liberus · · Score: 3, Insightful
    ...requires a LOT more than the ability to bash out code. I have to hire US-based programmers all the time, and it's amazing how many people I talk to that don't have the faintest idea how to do anything other than program. They may be able to write a demo program using the latest, greatest coding framework, but they are severely deficient in troubleshooting, problem-solving, and social/creative skills. Even a computer can write code; I need people who can think.

    So my advice for anyone trying to break in to the programming field would be to work in some other aspect of IT for several years - go be an SA or a network engineer or something and use your programming skills to assist you in those areas. Once you've done that you can transition into development. You'll be a MUCH better developer for it.

    --
    Beauty is just a light switch away.
  22. And you would be a greater fool by bADlOGIN · · Score: 2, Insightful
    I commend you on your example. All of those thousands of companies out there intending to build software to control expensive hardware to do great things!!! Why when the job market heated up, I was just TIRED of telling 23-legged underwater spider manufacturers quit calling me!!

    How about a dose of reality. As technology has become exponentially more complex, business people risking companies on delivering it have become exponentially more stupid. And this one simple line of your statement shows why it's wrong:

    Software can be produced in any country, anywhere at all, and the only thing it requires is the competent personnel to execute the project.

    Show me company with "competent personnel" managing and directing a business critical software project 100% outsourced and I'll show you a company that is either working with glacial specifications or rolling the dice on total failure. The nature of business changes, requirements change, politics change, and nothing worth a damn is going to get built via "throw it over the wall to an outsourcer". Back in the pre-agile days, this was how the world ran. Stupid things were written down in thick specifications that nobody read, then budget and time ran out while unforeseen forces made whatever might have been stared worthless. With the way people operated, "over the wall" didn't matter if software development was in the next cubicle or on the next continent.

    And that's where the critical issue comes in. As I jokingly indicated above, most software developers aren't building hardware/software 23 legged spiders. They're working on some internal project that enhances some other part of the business, or accelerates profitability or efficiency, or has the potential to create a new competitive edge. They're not spending millions on it either. They've got a direction and they're spending thousands over six months here on a new initiative, or a couple hundred thousand over a year on some other new initiative. They need people working WITH them to understand the business domain and leverage technology to build opportunities and MAKE MONEY.

    Building software is about communication and change management. Putting 5,000 miles, 9 time zones and the history of human civilizations language and MOST importantly culture differences on top of your standard business risk is retarded. Even companies that want to pinch pennies so the CXO's expense accounts can stay fat aren't rushing off to throw stuff over the wall without identical (no, better) local personel.

    That's why the job outlook is what it is for "programmers" vs. "software engineers" and "analysts". Nobody in their right mind is going to be a looser in the principal-agent problem that is outsourcing for any small to medium sized business. Oh, and any large company? What do they do? They set up their own local shop to mind the company interests.

    The real problem with this, is that nobody is going to become competent at building software on a large scale until they understand what's happening on a medium and small scale. Corporate America and Europe are sowing the seeds of economic destruction by creating an environment where nobody can be paid to be a beginner or novice in building software when the only job positions open are for lucky intermediates, advanced and experts. My crystal ball prediction? In about 15 years, the US will have great greencard programs for "software engineers" with 5 or more years "programming" experience since US corporate short-sighted greed will have poisoned the well for anyone considering fighting through to find entry level work "programming" to become a "software engineer" here at home...

    --
    *** Sigs are a stupid waste of bandwidth.
  23. Name game. by Ungrounded+Lightning · · Score: 4, Insightful

    ... 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,' ...

    Well golly gosh whillikers.

    In my 30 years in software (before I went over to the hard side of the force) I've called myself a programmer, a system analyst, a software engineer, a system architect, and a number of other buzzwords.

    Guess what: There is not a standard definition for ANY of those terms. The only distinction between them is the expectations of the employers about the strengths of various parts of your skill set.

    So you call yourself the one that your prospective employer hangs on the highest-in-the-design-tree position that you can convince him you're qualified to fill, based on your own skills and your resume.

    They're hiring system analysts and SW engineers locally and going abroad for programmers? That just means you have to change the top line on your resume from "programmer" to "software engineer" or "system analyst".

    Don't have enough experience to qualify for whatever position they're hiring for when you're just out of school? That's the same old "break-in problem". The "can't get a job because you don't have experience and can't get experience because you don't have a job" vicious circle. It's been around as long as I've been in this industry, and I cut my teeth on computers that had vacuum tubes for the DIODES in the logic.

    You get your skills through:
      3) classes,
      2) ripping apart and studying others' code,
      1) playing with the computer to make it do something fun for you,
    in that reverse order. (I know because that's how I did it, and I had some big names for teachers back in the day. The lessons were valuable. But self-directed code reading and bug fixing / feature enhancement was more so and self-directed problem solving was the top skill builder.)

    You don't get your job through resumes, degrees, and certifications. You get your foot in the door through contacts with people who have seen your previous work or play. THEN you and your contact use your (tuned to the job) resume, credentials, and references from other contacts to convince the middle-manager in the suit that he's lucked into a paragon who's perfect for the job.

    How do you get contacts? Initially you do as much unassigned for-fun stuff as you can when you can and let others see what you did and that you enjoy doing it and are good at it. Some of these people will remember you when somebody they know is looking for somebody like you for a job of the sort you want.

    Later you'll make more contacts at work: Co-workers, managers, etc. Your network of contacts will grow to get you into more doors. Your resume's experience section will grow to calm the suits (while your other contacts serve as references ditto). And your skills will grow to let you actually perform in new positions.

    Your actual skills are important: to keep impressing people so you can hold your jobs, build your resume with successful project results, and grow your contact network. But it's your contacts - as you/job matchers and references - that are what get you into the jobs.

    --
    Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
  24. Paranoid, much? by Lobo42 · · Score: 2, Informative

    I graduated a year ago with a degree in Computer Science, because I loved the topic. I wasn't the best student at my school, but I was pretty good. Likewise, my school isn't the best school in the world for CS or anything technology-related, but it's pretty good. I spent a year after college looking for a job, but probably not because of the reasons this article cites. I had offers right away at several places, and my time was spent choosing the right one. Eventually, I opted for the low-paying web development position at a small but growing firm dedicated to serving non-profits. The reason? More freedom and a relaxed atmosphere. But seriously, I had many choices, with pay ranging from $15,000 to $70,000 a year - and this with virtually no experience. Everyone seems to be panicling about losing their jobs to outsourcing, but I don't see it. I guess there are some jobs which could easily be outsourced abroad, but it seems to me that being that disconnected from the client must mean that the work wouldn't have been all that special anyway. More and more is happening on the web, and I still see companies growing. As far as I can tell, there are plenty of jobs to be had, as long as you're generally competent to begin with.

  25. "engineering" is a little too grand by david_bonn · · Score: 2, Interesting
    I've never, ever seen a project where the distinctions between "programmer" and "software engineer" were at all clear. Different people understood different parts of the project. A very few people would understand a much, much more than most. At the other extreme there were people who were handed requirements for little pieces of the product (the process was more like throwing raw meat to a caged, yet still scary animal) and would more or less churn them out.

    I think the title "engineering" is much too grandiose for what most people who build software ever do, and for that matter I don't think most software projects are really "engineered" at all. This isn't a bad thing, really. For there to be a meaningful engineering process involved in building something, it implies a large accumulated body of best practices accepted by people learned in the art. That is true for some software, most notably programming languages, databases, and operating systems. But I don't really think it is yet true for desktop applications, games, or web sites. Only a tiny minority of us involved in the trade are actually doing engineering.

    We might write better code if it was more like a real engineering discipline. I somehow doubt it, though. Software is a little too fluid. Over and over again I've written software to solve a problem that inadvertently changed the problem definition. As soon as users get hold of a new software tool, they often discover things about their own data for the very first time -- some good, some bad. That generates feature requests and more billable hours. The equivalent rarely happens when you build dams or bridges.

    Building software, I think, is much more of a creative trade with more in common with composing music or performing in a theater than with designing headlight bezels for panel trucks. At times, I suspect one reason that there is such resistance to this point of view is that we perceive our field as a "hard" technical field, not an artistic one. It is certainly true that any design process, from composing a sonnet, taking a great photograph, or making a SSTO rocket engine involves a fair amount of both technical knowledge and creativity. The artificial division between those endeavors is pretty awkward for those of us who like to write code, though. I also suspect that one reason that job dissatisfaction, burnout, and just out-and-out cynicism is so high in our chosen field is that most people creating software are managed not as artists, not as highly skilled experts like a team of surgeons performing a risky procedure, but as an army of mechanics.

    There are orders-of-magnitude differences between individual code productivity (I think factors of a thousand or even ten thousand are plausible). That means that one hypothetical American superprogrammer paid millions of dollars per year is likely still much less expensive than an army of average code grunts from India -- even before you layer in the communications costs of managing a larger team, travel costs, and the difficulty of communicating requirements and changes to requirements to a development team literally on the other side of the planet. A lot of that productivity advanage, I suspect, comes from understanding requirements well. You are less likely to get the ten-thousand to one productivity advantage if your requirements are communicated to you indirectly (like through a bunch of jet-lagged product managers who you meet physically once a month and teleconference with a few times a week).

    To go back to the media analogy, we all know that getting into acting, music, or television news requires overcoming almost overwhelming odds. There is no shortage, ever, of starving artists. Yet people expend enormous amounts of energy trying to break into these fields. For average compensations that make churning out MS Access applications look like a great job. I think that's where software is going. There seems to be no shortage of talented people in the media fields (and no shortage of untalented either), yet there really isn't any equivalent to an entry level job.

  26. Nail on the head. by Malkin · · Score: 2, Informative
    I'm honestly dubious of anyone whinging about a lack of programming jobs in the US. Is there really a shortage of programming jobs, or do they have the wrong (or insufficient) skills? Or, are they in the wrong geographic area, for that matter? Being a career programmer requires some flexibility, and a lifetime of learning, because technology does not stand still. Not to be mean, but a lot of the people who were knocked out of programming at the end of the .com boom shouldn't have been programmers, in the first place.

    Believe it or not, there is a drastic shortage of qualified game programmers in some parts of the country right now. Oh, there are plenty of people applying for those jobs, but most of them simply lack the skills. It's tragic.

  27. Programming is a WORLD in itself by unity100 · · Score: 3, Insightful

    and just like the real world, programming is in fact something that comprises of MANY fields and areas. These fields are just like jobs themselves.

    For example if you are a C++ programmer (or the language you are best at), you are like a mechanical engineer. if you are very good, you will find a very good job. if you are just ok, you will be just another 'engineer' in some obscure manufacturing plant or technical drawing room somewhere. if you have just jumped in the field for 'cash' or because your parents pushed you in, you will have problems finding a job.

    if you are an assembler programmer as expertise, you are just like a painter. it will be VERY hard for you to find work, but if you are good, you will find work that noone can find, and it will be solid as hell, you will have to turn down many people. but, you have to be real, real good.

    if you are a PHP/MySQL developer as expertise for example, you are like an industrial engineer. if you are good, you will find very good salary jobs. and always think of leaving and setting up your own shop. if you are just ok, then you will still easily find jobs, although not as good paid, but you at all times will be able to take on work via the internet and do freelance.

    it all depends on which profession you choose. MANY cs, software engineer grads, programmers scorn php/mysql for example, even at times arguing php is not even a language (it may be, or it may not be thats not important) but this combo is whats hot on the net for a few years now, and even now the demand is nowhere near satisfied and increases. judging by the amount of free/low cost software enabling individiuals, ordinary people, very small businesses (heck, even ma&pa shops) are enabled to come on the internet and create businesses, communities, services and stuff through the php/mysql road says that the more the supply of programmers the more people will be coming in by that lane because prices are kept cheap.

    you just have to choose your field accordingly. its just like choosing a business. dont go choosing a university/college that doesnt have good reputation and then learn asp, .net programming and stack up msces and expect to get a job in a microsoft shop - because of the tradition these shops tend to be rather picky, and even if you are good you might have hard time just because your college is not well known.

    on the other hand of the spectrum check out php/mysql developer ads, even at slashdot. they do not even require any kind of bs grad. they gather up the exact specific requirements for the job, and EXPERIENCE. because this field and what it should do and what one needs to do stuff in that is well known and defined, and when you get such people you get your work done.

    therefore its all choices. programming, it is a world in itself, with MANY professions. it doesnt matter a bit if you say you are a cs grad. its like saying that "i am a human", in the midst of 7 billion people

    what really are you ? a LAMPer ? a .NET junkie ? a C++ nut ? an Assembler monkey ? Database freak ? just decide on that, and start working towards a position.

  28. American Programming IS Software Engineering by tjstork · · Score: 2, Interesting

    Culturally, very few "programmers" exist any more that merely get a detailed stack of requirements and just write code for it. Now, you have to be an entrepreneur, and you have to be creative. Fortunately, those of us who survive in the USA are either educated or innately creative, and so, for now, we can do that.

    I guess the real question, though, is what field isn't going to be exposed to overseas competition? The only thing I could think of would be a Great Lakes Ship builder, or other professions protected by the Jones Act, but there aren't that many of those jobs out there, any more. Or, you could be in the military!

    --
    This is my sig.