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.
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.
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.
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.
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.
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.
If you aren't good, then:
- You won't enjoy it
- People who are good won't enjoy working with you
- 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.
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.
While it is true that "software engineer" spots are going overseas at high rates, two things should be taken into account:
/shrug
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.
The answer is in the summary. Programmers are a dime a dozen. Software engineers are useful. I've never hired anybody with a CIS degree because they were taught to be (shitty) programmers. However, folks from all walks of life can learn to be software engineers if they apply a bit of logic and problem solving skills. With outsourcing, more and more modules will be programmed by contractors (probably overseas) and more and more design will be done by software engineers then (not) done by programmers.
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 ----
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.
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.
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"
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.
How has the IT industry made hardware "disposable"?
Quote:
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.
Sounds like anecdotes from the video game industry, not your standard "other" industries.
If you're asking the question, you're looking at the wrong field. Software is awash in _adequate_ programmers. Guys who can do the work, but because they like the $$, and they can kinda think, more or less. Software particularly is a lifelong commitment to learning new stuff just to keep even with all the changing technologies. If you don't really love it, it's going to be a long uphill slog.
If you're wondering about what field to go into, find something you *really really* like. That's what distinguishes top-flight from gets-laid-off. Something that you're fascinated by, spend your weekends looking into odd topics and dusty corners of will be the thing that is easy to master. And now, all you have to do is love it enough to not mind that it doesn't pay as well as [ software-development | investment banking | radiology | law ]. Hard to do in an American culture.
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.
I know we have a lot of openings for experienced programmers at my company, we get a lot of programmers that apply but few are experienced. If your in los angeles and want to work for a top internet company or are willing to relocate to los angeles contact me i'll hook you up with one of the 20 plus positions that are open.
Steve
It's been the same I think always there aren't enought truely good programmers and software engineers. Do you know the difference average salary and usually a software engineer has better interpersonal skills. Both things are in effect the same thing. Part of the difference is that a programmer is ofter interchangable with code monkey, line programmer while people who are good "Elite" often are categorized as software engineers. These are not absolute rules and really depends on your company and things like that. In general this is true.
...one person in this group who is chronically underestimated is me.
(i) I"P" laws devalue programming skills - it's no use being a good programmer, if the only legal way to implement something is to license it from microsoft. Copyrights and patents change the landscape from one where the technically best solution is always implemented (and implementation can be done as a service provided by a programming professional) to one where lawyers waving bits of paper make all the decisions (so lawyering is worth more than programming). Solution: Change the law. Not easy, but not as impossible as people seem to think. The american patent system has long been used by the establishment to suppress mechanical/electrical/chemical engineers, and now it's been turned on the programmers.
(ii) Bear in mind that the shortage... isn't. It's an outright lie. Stop being whiny little bitches though - you don't _have_ to be someone else's slave^Wemployee. (i) makes it harder not to be a slave (since established companies with portfolios sue startups), but bear in mind it's better to set up a company and work on a contract-for-service basis than to be an employee working on a contract-of-service basis.
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.
...
... there is no job security at all ...
... the technology changes so fast that if you allow yourself to slip behind you might as well kiss your career good-bye ...
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.
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.
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.
I just look at some of the half-brained pseudo-coders I've had to work with and I think, as long as they can still get work I should be set for life. That's kind of funny, but I think it's really true.
One of the troubles with the programming profession is that it's too easy to get into, and too easy to fake enough ability to get hired. Noone plays with aircraft engines in their spare time, then goes to Boeing and lands a job as a mechanical engineer.
Fortunately, the mediocre products turned out by Microsoft will keep hundreds of thousands of PC Software Engineers^WMechanics employed for many years to come. Provided that you know how to re-install Windows and remove the most obvious and annoying viruses you'll do fine.
Excuse me, but please get off my Pennisetum Clandestinum, eh!
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.
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.
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.
Wake up and smell the turmeric! Real reason: (KP)091CCNXXXXXX(ST).
We are not quite there yet, but we got breasts...
If you take a somewhat longer view, then you'll immediately see that the referenced study is obviously correct:
... (well, certain ones -- eg prostitution -- have different characteristics.)
Let's see, we have a new occupation, with nothing to build on, but lots of stuff that can be done (profitably). Then a ton of people will flood into it, and there will massive duplication of effort as everyone builds up the same little building blocks (some of them selling them to each other). If there are other people somewhere that could accomplish the same thing, then they will eventually start doing it too, and undercutting the original people. It will take longer if there is a higher barrier to entry (required education or equipment or whatever), but eventually economic pressure will win. Dams will always fail eventually.
At the same time, the shared infrastructure and knowledge base will gradually grow, and there will be less need for the bottom people who are all doing the same thing over and over again, and more need for the higher level people who can take larger pieces and use them to reach further. At the same time, no level in the hierarchy is ever likely to die out completely.
That describes where the software field is today, but it could be a description of nearly any occupation: building cars, digging holes, feeding people, making games,
I don't know whether the study is accurate as of today, but it'll be more true as time goes on.
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.
Spoiler
Spoiler alert !
~
Don't peek unless you want the ending ruined!
OK, here it comes
The diff? Not a thing. You silly schmuck!
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.
Brick layers make good money... so do a lot of other jobs. In short, if you're choosing your career on money or security and not your passion, then just pick some job.
If you choose your passion as your work, you will make the job work for you and be happy.
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.
There have been a couple times that may have been true, most recently when the .com implosion and outsourcing tag-teamed the IT industry in the late 90's and early part of the 2000's. That was a dismal time for projects but not now. Business seems pretty healthy right now, especially if you're good at managing large databases and can migrate applications between platforms.
Also might be like the real estate market. Overall, real estate sucks right now. But even in this down market there are bright spots here and there. Even when tech was in the cellar there were still bright spots out there, if you were willing to travel.
I just don't see the market as that bad right now. Companies that pay crap and ride their employees like a carnival pony might find the labor market tight. While a company with a progressive atmosphere and healthy pay scale may find their in box jammed with resumes all the time. All I know is I don't have any problems staying billed.
That's our life, the big wheel of shit. - The Fat Man, Blue Tango Salvage
I think your approach is just wrong to begin with. You're baseing your career choice based on some guesstimate of how well you will do financially. Although that is something you should keep in mind (being a starving artist without recognition until death is probably not what you or most people are looking for), it should not be the primary motivator. You should pick something which you will enjoying doing A LOT for the rest of your life and something you know you have some talent AND skills for. Because if you're the best in your field (think about how many people are out there that can write a good compiler, or kernel, or deal with AI algorithms... not a lot - do you think they're starving for jobs?), it will not matter much if there a job cuts, outsourcing, etc.... these things by large only affect the average and the bottom.
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".
"...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."
1. Do you have a family? Did this guy?
2. I know the last thing I want to do when I go home at night is look at a computer screen after staring at one for 8 hours already.
3. Say you do spend the time learning this on your own. Repeat this process 3-4 times when things change and see how enthusiastic you are.
Hey, I'm not knocking learning on your own, I got a Masters on my own time, but there are practical limits...
For the love of God, don't create any positions for entry level programmers! The last thing the industry needs is to create a growing workforce.
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.
You have an e-mail, Steve?
BookDetective.net - book search engine and ranker I donate my skills to.
I know this from a co-worker from Canada who, during the dot-com days, had to struggle with the TN visa, a visa available to high-skilled Canadians. The TN visa was applicable for Software Engineer, which was considered to be a highly technical position, where you "engineered" software. It required an engineering degree.
A programmer, in the view of the US govt, was someone who took direction from someone else, and coded them. They view a programmer as a step above key puncher. So, this is probably the reason why those figures are different. Programmer do not require a specialized degree, and anyone can be considered a programmer.
To people in the business, they mean the same thing, but to the government, I guess this is how they distinguish it. Whether or not this definition makes sense is another thing altogether.
You are probably going to be modded down, but W. has brought down the USA. But it was not just him. It probably started with reagan during his infamous tax cuts with minimal cuts on research and education. But Clinton did not help. He did work towards balancing the budget, but he also did his fair share of cuts in education and research. All in all, these 3 presidents really did massive cuts against our backbone. Poppa bush actually increased research dollars but not education.
Hopefully, America will get some another strong leader along the lines of Lincoln, Roosevelts, or JFK, but somehow I doubt it.
I prefer the "u" in honour as it seems to be missing these days.
Do what you enjoy for a living. You might have a take a few crap jobs on the way there, but no one is ever happy doing a job they hate just because it pays well. If you enjoy programming, then go into programming. But be realistic as well. The days of one career per lifetime are gone. Don't expect to be a C++/Java/Python developer in 2060.
Don't blame me, I didn't vote for either of them!
There is difference between someone that wants a job to have job for the sake of having $$ and someone that wants a job because it is his or her passion. A common practice among interviewers is to ask if you have any dream projects out there, they are trying to see if you really enjoy the stuff. If you dream is beer and chicks most likely you aren't the one for them.
I'm told by an utterly reliable source that a lot of MIT students are doing the following:
Instead of taking a max 95K (at Oracle) programming job when they graduate, they take a job in finance or consulting that generally demands a good math background for couple of hundred K.
No one wants to do that sort of high-pressure job for too long---this allows them to pay off their not small student debt (if they're smart) and then form or become part of a startup.
It all completely depends on your level of skill. I work for a company that is growing very fast, and my group within the company is growing even faster. We're looking as hard as we can for good qualified programmers/engineers, and we have a very difficult time finding good people. For every 40 or so people we interview, we hire one. The issue is that a lot of undergrads are under-prepared, and we we require people who are top-notch at problem solving, top-notch at engineering, good at C/C++, good at system level concepts, very good w/ graphics HW, and good w/ graphics algorithms. It's very hard to find the skillset we need, and so we pay top dollar for it when we find it. If you have the skills to work at a company like mine, you'll do very, very well. You also have to be willing to work very hard (at least at times). If however you only know how to code HTML and perl (and aren't willing to learn anything else), or if you think that programming knowledge stops w/ what languages you know, or if you don't develop deep expertise in at least one area of computer science (like graphics, databases, language theory/compilers, security, networking, etc.), if you aren't willing to constantly keep learning the latest and greatest new technologies/tools/techniques, then yeah.... you might be in for a rough ride.
My company will hire good programmers wherever they are. At least in my group, we'd prefer to hire US programmers. It's easier if everyone works within a few timezones of each other. It's easier if everyone speaks the same language well. It's easier for engineers to meet w/ customers. There's just less friction overall. However, if we can't find the right people in the US, we will hire from Europe, from India, from China, from wherever. For our team, it has nothing to do with cost, and everything to do with finding the right people.
It's like any industry, if you work hard and make yourself valuable, you will always be employable (and will be able to make VERY good money), but it's just not like it was the late 90s: you actually need to have some skill (and motivation) to survive these days. I have no worry about losing my job to someone from another country, because I am very good at what I do, and it would be very hard to find someone who is willing to work as hard as I am, and who has the level of skill that I do.
Impossible = A fun challenge
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.
You are being MICROattacked, from various angles, in a SOFT manner.
Specialize. All there is to it.
... Fortran! AAAARGH!)
... so long as you are funded :) a little more risk there (if you aren't a civil servant).
In high school I loved 2 things - computer programming and aerospace. I studied Von Braun, I read about the Saturn V, I built homemade rocket engines behind the shed. At night I programmed on the computer - various things, but a lot of them aerospace-y simulators. When college approached, I didn't know which I loved more, space or computers. I picked Aerospace.
I'm glad I did. Now, I spend 20+ hours a week at my job writing simulations and tools in various languages to help me solve engineering problems. Aerospace isn't unique in this respect, this happens all the time in other areas of engineering too. Programming is a tool. Think of it as a tool, not an end. (The only real downside is dealing with the legacy code
However, aerospace does have one unique attribute to it - you can get into the defense sector, which is difficult nigh unto impossible to outsource. The job security is very nice. Working for NASA (as a contractor) is similar
Again, if you're competent, you don't need years of experience. I graduated from a decent CS program, and hired straight into a software engineering job. If you can show that you actually know what you're doing, there's a lot of places ready to hire you even if you don't meet their "10 years experience" criteria. There just aren't enough people to fill all those jobs at the set requirements.
I think that's something that sets people off, someone just coming out with a degree sees adds saying 5 or 10 years experience is required get turned off. If they're intelligent while they're working on the degree they'll get internships or coops. Then if they do well, even if they aren't hired others there can help them find employment. Another possibility is while working on the degree they can pick an open source project they are interested in or want to concentrate in and work on it. Maybe someone here can correct me if I'm wrong but I've read previously on /. the easiest way to join an OS project is to go through the bug reports, fix bugs, and submit them. Once they've fixed a few they will be asked to join the team.
FalconShould there be a Law?
Let me tell you.. people can and will hire a diamond in the rough.. if you are good. I mean good at problem solving and pretty bright, all you need to do is get your foot in the door and there are literally thousands of ways to do that.
You want a programming job, try making "demo reel". I mean make some cool little programs and polish them up. They need to be something useful.. nothing huge and attach a link to your cover letter.. include a link to a website you designed as an advertisement site for yourself. If you take the initiative you can break into the industry VERY easy.
You might not immediately get a job at Microsoft or Apple, but I guarantee there are businesses from large to small that always look out for people that have a passion for programming and can display the raw talent even if they have never done it for a living before.
I did the same thing 10+ years ago.. I now am a self-taught (no college) Software Architect and run a development team. I know good programmers are needed because I hire them myself. So don't let people spout doom and gloom, it is still lucrative and in demand as long as you can program yourself out of a paper bag. You do have to be adaptable and you need to always be ready to learn something new, it is not an industry where you often get chances to "coast", but it is definately worth it.
First thing to do is learn something about sampling theory.
Question One: who's the most likely person to have the time, energy, and general accumulated bile to be posting about finding software jobs on the net?
(a) People who have lost their job.
(b) People from the Department of Labor covertly revealing DoL data
(c) AI bots in an experimental application.
Score: 5 points for (a), 0 points for (b), and 0 points (but a gold star for lateral thinking) for (c).
Question Two: if people who have lost their jobs, are unhappy about it, and have lots of free time on their hands (since they've lost their jobs) are going to post about jobs, are they going to post:
(a) philosophical treatises on the transitory nature of life?
(b) carefully reasoned statistical studies of the job market?
(c) rants about the sucky job market and how someone ought to do something!
Score: 0 points for (a), 0 points for (b), and 5 points for (c).
Total?
... 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
...then you are smart enough to do almost anything else. Go find something w/a future and code for a hobby.
In high school I loved 2 things - computer programming and aerospace. I studied Von Braun, I read about the Saturn V, I built homemade rocket engines behind the shed. At night I programmed on the computer - various things, but a lot of them aerospace-y simulators. When college approached, I didn't know which I loved more, space or computers. I picked Aerospace.
I was kind of like that myself. Though not aerospace or programming. While the high school I started at had a model rocketry club I joined the one I finished hs at when I moved didn't. In hs I started learning to program on my own but I didn't want to be a programmer, instead I wanted to do Computer Engineering. At the same tyme though I took a Marine Biology class and loved it. Back then I wanted so badly to combine the two, Marine Science and Computer Engineering but I didn't know how. Knowing what I know now if I could start over I'd double major, major in both CE and Marine Science.
FalconShould there be a Law?
I, too, have often thought that the people who believe you can sustain an economy on exports of "knowledge only" must be high.
Breakfast served all day!
No, Software Engineering is Computer Science Lite. Computer Science from any serious University does not just pump out programmers, it pumps out, or tries to, what Software Engineering is built on.
The proper metaphor is that computer science builds the tools and blocks (algorithms and protocols) that then engineers use on their blueprint for a project, and then programmers implement it.
All professions tend to program because well it's the language of computers, but you're not getting the proper idea of what true computer science training is about. We make the war machines, you rally the army and get it to the battle on time.
"I only speak the truth"
Karma: null(Mostly affected by an unassigned variable)
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.
Being a good software engineer is a synergy of interest, discipline, and IQ...
Making money in this field is a combination of being a great software engineer as well as a carefully planned career path.
. . . if you're willing to constantly be looking out for your next project/employer.
This field is now a class of itinerant labor. Just like a worker who picks fruit, most employers will consider you an interchangeable cog. If the stock price bobbles or some pointy-haired VP sneezes, you and your whole division can be laid off.
You will find slightly more stability if you go the consulting route, individually or in a group. (If you're really a glutton for punishment, start your own business!)
In any event, you need to be constantly hustling to line up more work. Get used to it. Do what you love and you'll never work a day in your life.
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.
You're a fool. Spending increasing amounts on education doesn't make for better workers, although it makes for very content, unmotivated teachers, professors, janitors, and lots more education bureaucrats. There is inadequate funding in places, but consumers (prospective students and their parents) should have the right to send their education dollars where they need to go, not some senator-for-life who thinks all grade schools or public universities in his state should have a federally funded ipod for each student. But the fact is that ever-increasing amounts of federal money in education at all grade levels over the past decades has resulted in shittier schools... and exploding tuitions even in state universities. I find it hard to believe that a doctrinaire socialist such as yourself with such a warped view of the real world could live on his own without the supervision of a wet nurse. It's allowing people like yourself to vote that's going to f*** up the country.
Hell, I remember a job ad in 2002 that listed as essential "5 years experience with Windows 2000".
I remember those in the late 1990s, "5 years experience web programming" or "5 years experience developing website."
FalconShould there be a Law?
"I'm American--I deserve a job when I get out, because I'm American. What field should I go into to ensure my future as an American? How can I make the best possible living being an American, because being American is so important?"
Any response to your whinging would require precisely two words. In fact, there are a large number of two-word phrases that would be appropriate. Why don't YOU fill in the blanks.
I think maybe the market will improve. It seems the dollar is weak now, and increasingly getting weaker in the international market. Therefore, these cheap fucks that outsourced entire IT departments, software development, etc. to save a few % on the costs, are finding that it now costs less to just hire locally. This should improve the local market.
We've hired Russians, Indians, Chinese, and my current team includes members from Argentina. The American programmers have no worries. In terms of raw skill, it's hard to beat the Russians but it rarely comes down to raw skill. In terms of $/hour paid to the programmer, it's hard to beat the Indians but it never comes down to $/hour paid to the programmer. It's a business decision and intelligent business decisions factor in all of the costs. What are the costs of having colleagues on the other side of the world? What are the costs of cultural translation?
Just to give one example: we opened a test center in China. The first time we asked them to do release testing, they asked us what the test results were. Hm. We didn't know. We hired them to run tests. How could we know what the results were if they hadn't run the tests yet? Turns out that it's not always a good idea to report that tests have failed when management has already decided that they've passed, so they weren't willing to give us the test results from the software until we gave them the test results from the management meeting. How much is it worth to be able to tell your testers to test something and have them give you the actual test results?
On the other hand, to use a phrase popularized when NAFTA was coming on line, if you do the work of a Mexican peasant, you get the pay of a Mexican peasant. Keep your skills current, demand to be put in front of customers at least a few times per year, and stay in touch with the field and you'll have no problems. Retire in place and you retire as a Mexican peasant.
Is that the profession of being a bad-smelling socially awkward idiot savant with a keyboard is dying, while the software developer who can meet with clients and not embarass the business, who can understand the spreadsheet that justifies his time coding (from a sales perspective), who is as good at assembling libraries as writing new code, is where the future of software engineering lies.
In other words, just like every other profession, you'll have to be good at the expanded requirements, not just the core ones to the exclusion of everything else. The age of rockstar programmer is coming to a close. Someone turn out Paul Graham's lights.
Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
Programmer = Software Engineer
Here is the news flash. Its the same damn thing. A programmer is the old title for Software Engineer.
Move along...
Outsourcing is a trend like all others (network computer, paperless office, on demand software, etc.) that never fully replace the status quo, they simply augment it. Meaning, outsource is here to stay, but businesses in the US will always have need for quality software engineers.
The need for good software and bright minds that can solve complex problems is ALWAYS going to outweigh the supply.
The technology industry is by all means in its infancy relative to other established industries, and that being said should always be kept in mind when we see any changes in the "average" so stated above.
If I am familiar with statistics at all, considering the relative short time in which we have had to analyze the industry we have little grounds to be so attached to what we can consider normality. A niche will be formed for technology just as carpentry and blacksmithing were laid into the niches in which they exist today. I fear that we as nerds believe we are something more important or special than other artisans, practicing a skilled trade.
I joined the industry a mere 5 months ago out of University. I arrived at my job fearful of an environment demanding only the things I had forgotten from my studies, and in that time have come to love the community and open mindedness of my co-workers. I imagine this is what miners feel with their comrades at work, or a worker at a steel mill. Perhaps when we try to compare our declining positions and salaries as they get closer to more "blue collar" positions, we should look at the other industries we are going toward and see exactly why their salaries are where they are. Is it a supply/demand issue? Is it due to social oppression? And most important, are the times of unions coming again, leaving the developing countries to fill the roll of scabs or is our industry due to fall in line with every other established trade. I am proud to be part of this settling down of the industry, and hopefully along with it many stereotypes about us can be broken down, making the futures of nerds everywhere brighter as their existence approaches normality, and I will always try to raise the bar and would expect nothing less from my fellow nerds.
"...and have no spine to stand up against the real bullies."
:)
News flash: you *are* the real bullies.
"Get into plumbing. As long as people keep crapping, there will be a need. Also, it is really hard to send your plumbing work overseas."
Hate to rain on your parade, but the cheap labor is coming here. Plus plumbing's no more immune to oversupply than any other profession.
"If I could do it all over again (I am 40) I would read the book 48 days to the work you love by Dan Miller and do something I really loved."
If I could do it over again? I'd never have left my parents basement.
"I hate my job, my economic future looks very good, but if I get really lucky, some bastard will blow a stop sign and hit me - lawsuit!"
Take it from someone who's been hit three times. It's not worth it.
"Do something you love and the money will follow and if the money doesn't follow, at least you will be happy and not wishing the next 45 years of your life away until retirement."
Remember the AC's complaining about the rug being pulled out from under him. It's kind of hard to be happy when what your happy about keeps disappearing.
"FYI, I was always interested in engineering, the occupational handbook 25 years ago said EE was the wave of the future. I have never looked or applied for a job, engineering firms always approached me first. My anecdotal evidence suggests the handbook was right on."
Lucky you. I have 9/11, Dot com, Y2K, and a couple other disasters (some of my own making) to thank for my situation.
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.
Software requires the least amount of capital to start up. If you can hack code in your parents basement or after work, you can start a software company. Write some really cool software. Once you have something working you can get more money. It will take a lot of hard work but you'll love every second of it and who knows, you might make it. Even if you don't you get valuable experience and a portfolio.
Just do it. Make something cool that people need. Be your own boss. Hire your own programmers in India. Do it now, while you're young and don't have a family.
Indian outsourcing is not a threat. The unwashed masses are not swarming to take our jeorbs. Any reasonably decent programmer is quite employable (though only in civilization, don't expect to be employable in Buttfuck, Utah).
Indian comp sci graduates aren't going to want a lesser lifestyle than their western counterparts. How do they get that? By moving here, and drawing the same wages. Those left to man the call centres and other outsourcing projects are those that couldn't make the cut. They won't be replacing competent programmers.
Where can you find software engineers for $2.50 per hour?
I currently work in the offshore outsourcing field and the lowest rates I've seen are $4.10 for entry-level people in China.
In India, typical rates for programmers (not project managers or architects) is around $20 to $30 per hour. Russia and FSU, $18 to $25 is pretty typical.
The days when offshore developers worked from grass huts on 386's is LONG GONE. No, Indian developers don't charge $50 to $150 per hour because if they make $20 per hour they can live like KINGs. (Maybe not with an SUV or million dollar home -- but they can have a nice car, a maid, cook, driver and live in a pretty nice place.)
Problem with American developers is that they still expect rediculous rates for basic, simple work that can NOW be done from anywhere in the world. Coding, Flash, Graphics, Web Design, etc. etc.
Want more money? Get more skilled! Move up the food chain.
The IT industry is BOOMING. Countries like Australia and the UK can't import enough people fast enough, unemployment is lower than ever and salaries have never been higher.
Want a job where you don't need to retrain continually and get a high salary? I don't have an answer for you. Even as a doctor, the human body doesn't change, but new technologies and medicines are released every day.
The days where you could go to University and get a job for life are long gone.
>graduated in 1992 with a degree in Industrial Management
>I quickly got a job doing quality control work
>So when my department was eliminated during the industrial downsizing
>that was so popular during Bush I,
>graduated with a degree in Computer Science in 2002
>went back to school, yet again, and got a Masters in Education.
>So now (3 years later)
Something about your whole story doesn't add up at all. So you graduated, got a QC job immediately, and then got downsized all inside a year (Bush 1 was 1988-1992), then it took you 10 years to get yet another degree even though you had already knocked out all of the basic classes with your first degree? But then it only took you another two years to get a masters in education?
You're withholding a bit of information from the story.
>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.
Bullshit. I work with tons of people who are living proof, myself included. Most of them don't even have the extensive education that you claim to have.
In over 40 years of working with computers, I've seen the cycle happen over and over again: Code is worthless unless it does something useful. Thre is a demand for applications, but the ability to produce these applications is deficient, so there is a demand for even the worst programmers until employers scale back their expectations. One statistic bandied about is that over 90% of all programming projects are never completed. Why? Because there are too few teams that can produce good products.
So much code is computer-generated these days that the real talent is in analyzing processes and DEFINING the functions. Once the process is defined, any generator, Foreign Programmer or first-year high school graduate can be taught to code to the requirements. Even some of the hard decisions in programming are falling to AI as long as the analyst can adequately describe inputs and outputs, or functions, or look-feel. There is a reason that some fast, cool code is developed in short lead times in Haskell. A program like Libero http://legacy.imatix.com/html/libero makes good programmers; the program works even if the code is not totally efficient, as long as the definitions are correct and complete.
Learn to design good solutions and there will always be a position for you. Remember, though, the position that makes use of these skills will probably change drastically over the years as the tools get more sophisticated. (Another statistic bandied about is that the workers my daughter's age (32) will have over 30 career upheavals during their working lifetimes.)
"The mind works quicker than you think!"
I spent 10 years at some of the biggest and best-known companies in finance and software, and for the last year I've been doing a wireless startup in Seattle.
From everything I've seen and experienced, EVERYONE needs good technical people, and they know it. There are many managers and leaders at top companies like AMZN and GOOG spending 30% to 50% of their time working on recruiting. Companies are flogging their own employees for referrals and offering rewards for hires. Startups have trouble meeting their hiring plans, and it becomes a CEO or board level issue. American-based consulting companies are still snapping up people and charging double the hourly rates to their customers. College graduates with Computer Science degrees, a couple of coding internships under their belt and a love of building software can make $70-80K or more on their first full-time job. Are there any other undergrad majors where people expect the same for their first job?
As for offshore outsourcing companies taking over the good jobs: something like 75% of all offshore outsourcing projects end up as failures. It's really freaking hard to get over the communication hurdles of a 10-14 hour time difference to India/China/Russia. We're using an offshore outsourcing company right now to get some work done, and we're getting some value out of the relationship, but we're not expanding that effort - we're much more interested in filling our open full-time positions and bringing in on-site contractors to supplement our capacity.
Plus, what other professions give you the realistic option of starting your own new business with a few colleauges, some open source software, and maxxed out credit cards? It's a gamble - but it is possible.
-Mike
I've watched repeatedly as my wife did software job searching in good times and bad. The difference between her and everyone else (many of whom didn't get jobs, or took forever to find jobs, or got inferior jobs) is that she focused on the actual skills required to find a good job.
She sent out lots of resumes, not just picking a few job listings that looked cool (there's often no telling a pig from a poke based on the job listing, ya gotta interview to get an idea of which jobs are really good). She worked on job hunting every day, not just when the Sunday paper came out. She kept organized, and made job-hunting a project, which means keep a list of where resumes have been sent, when it was time for a follow-up call, etc.
She networked, which is how most people find jobs. Riddle: an American, an Indian, a Chinese, and a Mexican all applied for the same programming job -- which one got it? Answer: the one who had a friend who worked at the same company. Networking means talking to anybody in the business, or anybody who knows somebody in the business. Networking means staying in contact with your school alums, or coworkers from past software jobs. Networking means talking to folks at your church, your parents' friends anybody who might be in a software company or know someone in a software company is a potentially useful networking contact.
If I should ever (shudder) have to find a real job again, I will most certainly put my wife in charge of directing my efforts. Skills are important for getting a programming job, but job-hunting skills can put you way ahead of most of your programming peers.
Correct )) Although, nothing wrong with dreaming about chicks and beer (both at the same time even better) - one doesn't exclude being good at the other (although "two chicks at the same time" is not what the interviewers want to hear) =)
Is the government wrong, or lying, then, when it implies that software engineers and system analysts can expect to have a good future?
Has it ever been wrong or lied before?
As an American, am I a fool if I decide to undertake this for a living?
We are talking about a rather large continent here, which country are you from?
realkiwi
just how the hell do you become a software engineer without being a programmer first
Get a work visa to India, get some experience in a programming sweatshop, and then move back to the US when you get enough experience to be a software engineer. Hope you like curry. (But on the upside, I hear Indian babes dig foreigners.)
Table-ized A.I.
Unless you're doing embedded programming, I see very little practical need for a linked list in my day-to-day work. If its trivial/small, use an array or a delimited string list of ID's. If its long, use the database or table engine instead.
I suggest you test their ability to provide a solution, not dictate how they go about it (unless they go off the deep end with a really bad solution).
Table-ized A.I.
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.
I've been thinking of doing something like this, though I worked in programming in college I really thought about going into photography. Of the photography students I talked with in college, most wanted to create a website they could use as part of their portfolio. Some also asked about software to help run a business. So what I was thinking was stitching various OS software together, from accounting to image editors, to create a sort of turnkey solution for photographers. One package would be installed which would call up any function. A person could edit a photo, then enter it into a database, and printout a bill. All without quitting one app and starting another. I'd use the software myself as well could sell it to other photographers.
FalconShould there be a Law?
Cmon people get a grip. Programming jobs aren't that impossible to find but you have to sell yourself. The industry has changed, but not really that much. Many US companies don't want to be hassled with overseas development, most companies aren't organized enough themselves to manage a product overseas.
.. well not yet at least.
I think a major problem here is America lacks required education on how to properly look for a job so many people wind up going for whatever they can get. Yea ok some jobs are more plentiful than others and knowing that helps when picking a career. Are you the talky networking type or do people just bother you. More importantly than picking a job you 'love' or that pays well is picking a job that actually fits your psychological profile and your basic lifestyle because the reality in life is that picking the things you 'love' is difficult since love is merely a feeling. How are you going to pick a career you love, when you haven't done it yet for 10+ years. Many people start 'loving' a career and end hating it. I'd guess that rarely is it actually the career you love or hate but rather your exact experiences in that career. For instance the slow passing of time at some crappy job can instantly be hastened by having enjoyable co-workers or made even longer by that loud annoying country music and endless office gossip.
We live in a global market and the US has put itself literally at the center of that market. Since we have no means to control our worth vs countries that may or may not have civil rights laws or slave labor capitalism will fail us.
Face it's not that American businesses are traitors it's that the Indian's and Chinese are simply working harder for less money and in a capitalist economy the money has to go to the the guy who can get it done the cheapest. It's only natural that businesses use the most profitable means to run their businesses as this is not socialism.
So, you know your in a global market, think like it. Position yourself in unique markets that use your 'Americaness' to your advantage. Within the fields of programming there are still many types of businesses you can focus on to better ensure your job security. When appling for a job research the company and find out how likely they will be to outsource your job. Target companies you want to work for and collect the necessary skills and THEN apply. Don't just send resumes out like a desperate man trapped on a island. HR can smell the desperation and they don't like it.
If you prefer the easy going life of a less globalized job then programming may not be for you.
You should also spend some time writing your congressman and telling them you want some way to balance foreign labor such as value added taxes or tariffs. You may pay more as a consumer, but you will likely wind up with better products and better jobs.
We need to move away from this idea of a low cost disposable society instead we should focus on quality goods and services but our nations economic model literally does mesh with that idea of anything but short term gains and insane profits for businesses. You can bet a lot of the shortcoming of software is attributed to the lack of programmers being closely coupled with the business. Look at products like Quickbooks that have more or less just gone off the deep end of reasonable use and now support their business model with BS upgrades and updates and tax codes.
If you want a programming job in the US you need to focus on a particular field or application and get very good at that rather than a broad set of certifications. You also need to target your applications for only the job types your good at and even apply to companies you know have positions you want even if they aren't currently looking. Being targeted usually pays off and applying too often usually lowers the quality of your application such as resorting to a generic introduction or cover letter instead of something truly inspired by your interest in the company and the position.
What the hell. Why does a corporation or employer have to train people? Maybe the young programmers after these jobs should offer to do it for a free considering it's education. What obligation does an employer have to people to train somebody who's going to demand a massive salary? I'll tell you what you'll be bitching about next is that young programmers who were forced to learn COBOL by "el corporaciones" now are being discarded unless they quickly learn Java. What about that? "you can't get there from here"
.. but come on.
..give me the date by which the economy will collapse, crime reaches 4 times the current rate, and people start starving (unless Marxism is implemented and people are denied the ability to trade with each other).
I understand that marxists have difficulty thinking broadly and analytically
Since you think marxism will save the universe
Instead of crying about crap why not realize that China and India will soon lack enough workers to supply their infrastructure and peopel and will need American manufactured/designed products such as advanced pharmaceuiticals, airplanes, and other stuff. The quicker people realize that the up & coming China will soon be a market the better.
it may also reduce stability. Adam Smith didn't have the math to study stability.
Stability is neither needed nor wanted. What is needed is Creative Destruction. Adam Smith understood that. For instance he was against patents, instead he believed whoever could make something better or more cheaply should be allowed to do so. Competition in an open market would improve people's lives. However it took Joseph Schumpeter to introduce Creative Destruction, and he thought it would lead to socialism.
One reason medical costs are so high is that the certification process favors citizens and domestic drugs because different countries have different medical rules. (But that may change.)
It's almost the opposite in Europe which means Africa is in trouble. After training medical personnel leave Africa and go to Europe because they can make more money in Europe. They are also treated better.
FalconShould there be a Law?
Do, what you love to do -- and get to be really good at it, and you'll earn a lot.
While I agree that people should do what they love, they don't always earn a lot. They may be happier but still be poor. Many artists were like this, they died broke, it was only after death that they became famous. The ones who did live comfortably had wealthy patrons.
FalconShould there be a Law?
Of course, my own reasonable success tints my vision pink. But I'm yet to meet a person born-and-raised in this country (immigrants are often impeded by coming here late), who loves what they do and is not well-off...
Actually what most people don't know about immigrants is that they, including illegals, are more likely to start a business than those born and raised in the US.
FalconShould there be a Law?
As an American, am I a fool if I decide to undertake this for a living?
Being American or not, it depends on your attitude to personal sovereignty. If you plan to spend your life as a slave employee your life will depend on too much events you cannot control, not just offshoring. Anyone able to point and click can take a "software engineer" position, just like anyone able to handle shovel could take a "machine engineer" in steam age.
But if you decide to take your own responsibility of yourself, good knowledge of programming can help you to start your own enterprising from almost the total zero of capital investment. Because with just an idea, you can make a real product without any other resources than yourself. This is not possible in any other industry with the exception of artwork and sex market.
Remember, employment does not lead to big success, for sure. Enterprising does, sometimes.
There you are, staring at me again.
Craftsman vs programmer? You need engineers to build buildings, but you need artists to do the really great stuff.
Software engineering works well for long running projects with slowly changing requirements, but you need a craftsman for projects where requirements change fast.
I can throw myself at the ground, and miss.
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.
.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.
.NET junkie ? a C++ nut ? an Assembler monkey ? Database freak ? just decide on that, and start working towards a position.
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,
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
Read radical news here
Here's a way: get a second degree that ties into programming.
When computer science isn't enough by itself, add electronics/art/english/law/whatever.
Two years ago I began mutating into what's called an embedded systems programmer. I work with digital logic, design circuits, write software for microcontrollers (C/assembly), programmable logic (HDL) and microprocessors (such as z80,sparc,arm).
Occupation statistics, such as the BLS Occupation Outlook, can be somewhat deceiving because you are only looking at the demand side of the equation. These data do not take into account the supply side which includes things such as college graduates and retirement. Obviously, differences in the regional economy will also cause these stats to vary.
For example: in Pittsburg, over three years, the regional economy has demand for 3,315 programmers but has a supply of 3,508. So while the programmer occupation is growing, there are very few job openings. Or at least, they are filled right away by the very best since this is an employers' market.
Compare this to Computer Software Engineers, Systems which has a demand for 2,781 but a supply of 2,606. Not only is this occupation growing, but there is a shortage of workers in the Pittsburg region. Just scanning some other metropolitan areas, you will see the same trend.
Source: Chmura Economics and Analytics (disclaimer: I work for this company)
The best analogy I can come up with is that software creators (whatever you want to call them) are like baseball players. In major-league baseball, there is a shortage of talent. There is NOT a shortage of players. No MLB team has ever had trouble suiting up 25 guys for a game, or finding 5 starting pitchers. But finding players who produce results is difficult, and there aren't that many of them that lead a team to the World Series. These are the guys who make big bucks as free agents, get traded for, etc. Software is the same way. The toolsmiths, the people who can create software that produces results, are in big demand and already have jobs and aren't available because they're locked up in a long-term contract with a good employer, and they're probably making the tools other people use. The so-called AAAA players are a dime a dozen - they are lights out at AAA and have nothing to prove there, but when they're called up to the majors they get their heads beaten in by MLB talent. They have two-digit ERAs or hit under .200. These are the coders who take a "Learn C# in 24 hours" course. In baseball, there are only so many Cy Young caliber pitchers in any era, so there's a fixed quantity of them. You can't make more. Good toolsmiths are the same way. At least that's my reflection after a decade and a half or more in the computer field. This is why there is both a talent shortage and a glut of people at the same time. When teams (employers) talk about a talent shortage, they're talking about hiring a Roger Clemens or John Smoltz, and when there's a glut of people, there's a glut of Buddy Carlyles and Mat Redmans. I do not mean this in a bad way, or to put anyone down for their ability. It's just a fact.
I agree with Tom Peters(http://www.tompeters.com/) that says we are in a period of "renewed individual responsibility". If you are seeking a career in software, why not also choose a "domain" to focus on. Almost every industry will continue to be touched by software innovations. By having some expertise in a specific field in addition to software engineering skills, you become a double-threat. You can't predict where the road of life will lead.
"The more people who know that you're a badass problem solver, the more likely you are to find work you enjoy."
Well I'm a bad ass car washer, stock shelver, and oil changer. Where's my job? What's that you say, I'm overqualified?
I can't help but agree with you. I recently left a job because of this very issue. Basically, my former group was in charge of a very technical project (not "just" IT, but R&D in the embedded systems space). The upper level mgmt behaved like cost accountants, assuming that a developers were 100% interchangeable.
You can see where this is leading.
But, there were some interesting side effects. First, the offshore teams (from competing firms no less) were in charge of the project from the beginning, and the experienced locals were brought in to clean up the mess. The end result was that the least experienced people were in charge of the areas that required the most experience: design and architecture.
To be fair, many of the offshore folks (who were rotated to our US lab on a regular basis) were in fact really really good. One guy in particular struck me as an insane genius. But they were the exception, sadly.
--- The American Way of Life is not a birthright. Hell, it's not even sustainable.
OK, let me see if I have this straight.
Your company needs programmers. It will only hire programmers with experience. Every job for programming I have seen requires a minimum of two years work experience.
How does one get work experience if companies will only hire people with work experience?
There is no "-1 offended" or "-1 you don't agree with me" mod options for a reason.
I see a lot of insults leveled at Indian programming teams and they are largely unwarranted IMO. I have been at my current (telecom) company for over a decade we have always used Indian Contractors. The results have NEVER been stellar, BUT we also bring many of the Indian contractors over here to work and they are EASILY the equal of their North American counterparts as individuals. There education is solid and they are motivated. Anyone disparaging the quality of the people hasn't met many in person.
:-)
The poor results of Indian outsourcing is largely due to project management difficulties, made more difficult by geographic separation, time zone difference and second language proficiency. Even managing between Canada/USA causes many issues and delivers poorer results than doing it in house.
But this is where it is going regardless. My company is rapidly outsourcing the bulk of staff to China/India, which I think will lead to long term failure due to project management issues and possibly loss of intellectual property.
I am in the process of training myself in new skills for eventual departure from my current company.
Do I recommend this profession. Absolutely not. IMO, there is place for the North American Computer Scientist, but only for those who love it enough to ignore my recommendations. You have to love what you are doing, you have to always be prepared to sell yourself for a new position because there is no such thing as a stable job in this field (IMO). That can be alright when you are younger but as I hit middle age some stability would be nice. If I had it all to do over again, this is not the field I would have entered, even though I was the kid building electronic circuits and reading memory maps of my Vic20 so I could poke stuff into memory. In many ways this is what I was meant to do, but I think it would have been more rewarding as a hobby.
Knowing everything I do now(about the market and myself), what would I have chosen? I would have become an optometrist and tinkered/coded as a Hobby.
Hear! Hear!
Between the death-trap phrase "find your passion and the rest will take care of itself" and the anecdotes for and against, this is a point that is lost, over and over again.
Got Trader Joe's? friendwich.com RSS feeds work now!
I'm a sysadmin (spend most of my time actually doing storage architecture, capacity planning, acceleration and other infrastructure stuff for Internet companies), and the job market is better now than I've ever seen it. I'm not a programmer (or software engineer, if there's a difference) by trade, although I do a fair bit of programming from time to time. My experience has been that those who have the ability to think methodically, take an analytical approach to troubleshooting and generally leverage past experience to new situations will _always_ be able to find work. Combine those skills with the pragmatic approach of a generalist (most sysadmins know how to do a little of everything (see http://darkuncle.net/sysadmin/what_is_a_sysadmin.txt)), and you have a combination of aptitudes, interests and skills that will serve to make you at home in almost any environment.
... do what you love to do first, and then worry about employment opportunities. If you're doing what you love, you will always be happy to get up and go to work in the morning, even if you have to scramble to pay the bills sometimes. OTOH, if you choose a career based on employment opportunities or median salary, you will end up hating what you do, because money isn't enough to compensate for a lifetime spent doing something that doesn't interest you (at least, not for hackers, who by and large require intellectual stimulation).
But mostly
To thine own self be true.
illum oportet crescere me autem minui
If you're looking into the computer field and you want something that will have definite job security, look at Information Assurance or Computer Security (depends what your local University calls it ) not all Universities have programs but if you get a masters in a security field you'll be fine. It's the one thing that the government and private industry aren't dumb enough to export.
:)
I mean job security, computer security, its got security right in the title, how can you go wrong?
As people have said, you just need to be a good programmer who loves their job. I have a BA in Theater and yet am a Senior Software Engineer. A lot of people got into this field because they saw dollar signs, or because they like to play video games. Most of those of us who are still here are the sort of people who go home and code at night. In my free time I've build an MTA, POP3 server, webmail client, CMS, weblog, and more. If that doesn't sound like you, you're probably what they refer to as a "programmer" in the article and you're going to have a hard time finding a job. Otherwise you'll be fine. It's very easy when interviewing to figure out who the good junior developers are. Even if you don't know every answer you'll be able to come up with some sort of working solution. And that level of thinking is really what makes the difference in hiring.
We are in the middle of a transition at our work place... We used to have "Software Testers" and "Programmers", but now we have "Software Test Engineers" and "Software Development Engineers"...
I have been in the field for over 15 years, and I predict that we will see other changes as well in the next while...
Software Test Engineers and Software Development Engineers will become Software Engineers, and they will work in a variety of "sub categories" like Test and Development.
There are other simplifications that I see coming...we have managers for Test, Development, Product and Project... Within our company we have a Product which contains several Projects. So you have one Product Manager (for this product) and several Project Managers (for this product). In each Project we have the Designers, Developers and Testers...
This is where I see simplification. I don't think we need managers for Test, Development and Design...what we need is a single point of management over all 3 aspects which then becomes "Development Manager" and they are over the Software Engineers, some of which are Designers, some are Developers, and some are Testers.
This is in line with the various Agile programming methodologies...
--E--
My city is as blue-collar automotive as you can get. Unfortunately the local university churns out hundreds and hundreds of CS grads every year. The market is saturated and a $20/h job is rare and coveted. I'm thankful for my current job doing online software in a niche market, but I've not quite broken the $40K/yr barrier yet... and I'm actually a very skilled and experienced developer. I just have no local options. So, I'm learning new skills and pushing my career toward a project management direction as fast as I can... to give myself more options as far as salary, and industries I can work in. If you aren't in the executive/management team, you're out of luck and at risk of being outsourced. At least if I was an experience project manager I wouldn't have to stay in the sofware/web development market.
Is there such a thing as a "software engineer" who works in PHP or BASIC? I've never heard of such a thing. I guess, to be a software engineer, you can't work with a scripting language?
Yes! Please take heed of most everyone else on this post and stay out of the sofware industry! It will only serve to create more demand for my skills and drive my already good salary even higher!
You do realize, don't you, that you are not testing what you think you're testing. You are testing someone's ability to program under extreme stress, not their ability to program.
I graduated from MIT, got A+'s in all my programming and software engineering classes, have written software that operates an X-ray space telescope, taught myself C++ in a week by reading Stroustrup from cover to cover, scored in the top 5% on the computer science and general GREs, and have derived the linear algebra of coordinate frame transformations on my own from first principles because I didn't happen to have a good textbook handy.
On the other hand, I'd likely fail your test. I'd be lucky to be able to remember my own name if you asked me to write it down on a whiteboard during an interview.
|>oug
I believe it and the reason is pretty simple.
Programmers are paid to implement a design, and essentially do what they're told. Programmers can be hired cheaply overseas and are therefore on the down swing. For companies in the US, it is important to have someone to turn business requirements to a easy to follow design, a language barrier challenger here could be very detrimental to the product life cycle.
Obviously there are other reasons including the ones mentioned in the article, but thats the most obvious by perhaps over looked one IMHO.
Whenever one of these discussions ensues, there is always a boat-load of these sorts of posts:
"*I* am doing well right *now*. Therefore, everything must be great for everybody, everywhere, unless they're incompetent. Also, everything will be great in the future as well."
Frankly, that sort of evidence is totally anecdotal, and the view is totally myopic.
Trying looking at the big picture. Look at the available evidnece, and use a little common sense:
- What costs $50/hour in the USA costs $5/hour elsewhere. Do the math.
- Employers are breaking their necks to outsource everything they possibly can.
- Whatever barriers that *presently* exist to offshoring, are being torn down, or manuvered around, fast.
- Most of the outsourcing does not make the news. I see 20 person departments being offshore outsourced all the time. And everytime, most people thought it could never happen to them.
IT salaries are down, jobs are going away. We have seen this happen in other industries. Pull your heads out of the sand and look towards the future. Sure there will be *some* jobs that can not be out-sourced. But, when you take a realistic look at the supply/demand equation, it's a grim outlook for practically all IT workers in the USA.
Twitter supports and protects racists - by smearing their critics with the "Hate Speech" label.
When the supply goes up (CS departments churn em out by the millions) faster than the demand (IT departments increase the number of servers, but also use efficiencies to use less employees) then the price drops. Look at the pay rate data. Computer professional pay has been flatline for some time. Just because there are more employees doesn't mean the market is better. There are a ton of Psych majors too, but I wouldn't recommend getting into that "hot" field.
That's pure fiction coming from the dot con era....you cannot code your way out of labor arbitrage or magically change the laws of labor economics. Not when corporations are hell bent on labor arbitraging your job and they really don't care about "good" frankly, they care about cheap. Watch Senator Durbin's video introducing S.1035, which reforms the H-1B Visa program and tell me this guy who got dumped off in favor of two H-1B Visa holders isn't an expert in his field. Of course he is! http://www.youtube.com/watch?v=o8Tsqk6jJoY
http://blog.noslaves.com
After some soul searching I politely declined.
The reason is simply because I could not, at that time and to this day, offer any real prospect of anything like the level of success I have been lucky enough and skilled enough to realize in the broad field of Computer Science.
One measure of trends you may wish to review is the count of Computer Science PHD's graduated in the USA each year, by college of study. What you will find is a dramatic downward trend for anything Computer Science or Software Engineering related. With a corresponding upward trend in other fields requiring the same basic personality traits and intellectual capability.
That is, broadly speaking, a massive number of people before you - at the PHD and MBA and also BS / BA levels, have made a conscious and well reasoned, well researched choice to NOT pursue a career involving computer programming or computer engineering.
What they have chosen is very enlightening, but I will leave that as a separate discussion area. The short version is that you can be very successful in a variety of fields other than Computer Science.
The reason is that foreign governments (India, China, Taiwan, Indonesia, Japan, Russia, etc. etc.) have actually targeted Computer Science as an area in which they want to advance their citizens. They do so by means of educational opportunities and also solicitation of multinational corporations to employ their "educated" citizens.
Second check, just to be sure you are sane, I strongly suggest you compare the ongoing skills maintenance cost for any Computer Science skills in dollar for dollar terms. Do this comparison as a simple list:
- Cost for X training in the USA.
- Cost for X training in India.
- Cost for X training in China.
- Cost for X training in Russia.
For X substitute a limited set of comparison items such as:
- Oracle (DBA roles, Data Architecture, Data Systems, eBusiness etc)
- Microsoft (System Administrator courses on Vista, SQL Server courses, Advanced Administration like Active Directory mastery level courses). - Linux
- Telecommunications
The results you can reasonably expect will probably look something like:
- Full Oracle Certification in USA: $35,000 to $45,000
- Full Oracle Certification in India: $1,700 to $2,100
- Full Microsoft Certification in USA: $23,000 to $29,000
- Full Microsoft Certification in India: $800 to $1,100
Now, if you are systems engineer, you need to stay current with technology. To do that you need to be at the same level as someone who is certified, if you dont actually get the full certifications. The same vendors offer exactly the same training and certifications at vastly different prices depending on where you are in the world. Yet your income will decrease over time compared to people in other nations. So, the projection is that your costs go up and your income goes down over the term of your career - say - 40 years.
Third check. India and China and Russia all prohibit or strictly control or outright forbid any non-citizen from working in their country in the field of Computer Science. They simply protect the livelihoods of their citizens by forbidding foreigners from competing with them. Our USA government does nothing of the kind, but actually has just created entirely new kinds of visas so that foreigners can come to the USA and work indefinately. Presumably at the request of Corporations.
The simple fact that at least 42% of all outsourced projects specific to Information Technology have utterly failed, and that another 18% have fallen short of their goals in terms of cost or budget, seems to be of no serious concern to these corporations - at least as far as cost per man hour they are willing to pay for competent workers.
Twitter supports and protects racists - by smearing their critics with the "Hate Speech" label.
> 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.
I would agree with this. I've never really considered computer science to be a true engineering discipline, despite its classification at most universities (including the one I went to). It's more a sub-branch of mathematics, or an art as the previous poster said.
Every other engineering discipline involves constructing things out of _real_ materials, subject to the laws of physics and/or chemistry. This is why engineering schools typically have the hard sciences as part of their core curriculum. Software is subject to none of these laws. So why not move CS into the category of "arts and sciences" so that more people have the opportunity to take it?
that's a starting salary for a very junior BS graduate. That's the point. Python is a scripting language, not exactly the same thing as software architecture and it's a little hot right now, and you are young. So, while you're trying to claim that your experience is the norm, the statistics say something completely different. You might consider the phrase, "There for the Grace of God Go I" and try to stop claiming that Senior engineers magically "suck". They do not "suck" in the least, and their stories are potentially your future. They are telling you some very serious labor issues that are the corporate agenda and you might start paying attention instead of trying to "poo poo" their experiences...for their experiences will not doubt become yours as you get a few grey hairs.
http://blog.noslaves.com
It's obviously no if it's your job, but the question is really more about what you like to do. If your job had nothing to do with programming, would you take it up as a hobby? Are you interested in it? Because those are the people who get ahead and become the engineers and high level analysts.
There's no romance in this job, as there isn't in a lot of jobs. You aren't a hero if you make the software work and in many cases, they ask you why it took so long and why it's so poor quality when just getting it out the door by their date is a monumental task which the people who are asking for it have no inkling of what they are asking for. There's long hours and you don't get a lot of time to do other stuff. The pay is not bad, but if I broke down how much I was paid by the number of hours I work, it's not great. $80k per year... great. If I work 80 hours a week I'm getting paid the same as a $40K office worker with half my education and nowhere near the same amount of stress.
Which is why I ask if you'd do it for free. Do you like analyzing and solving problems? Do you like writing code? Do you get fidgety if you are away from your computer for too long? If so, you get to do all those things and get paid for it instead of spending 8 hours per day at a job you hate. You spend right around a third of your life working... you should spend that time at something that you like doing, because it would be a shame to hate a third of your life.
OK, one employee vs. another with the same skills and 1/10th the cost? Yes, that's rough. It's also fantasy.
First, the cost is not 1/10th.
Second, the increasing shift of industry to countries like India has led to higher standards of living, higher wages, etc. (This is why countries like India are seeing a wave of outsourcing of their own to countries with cheaper wages.)
Third, you still need to supervise your diamond-in-the-rough, you still need project management. And while the internet helps, there is still a real cost for geographical diversity.
Forth, ultimately there are no short cuts to success. You get what you pay for. TANSTAAFL. If the companies business plan is all about saving money through outsourcing, you're better off not getting the job and saving yourself the trouble of going through the lay-offs.
I'm not putting down Indians--they're no worse than Americans. But, in general, they're no better than Americans. Employee costs aside, if the boss can't get the job done with the workers right outside his office, how is he going to manage workers on the other side of the globe?
By Elite do you mean those who are willing to work 60 hour weeks consistenly?
Young Americans can't even get into entry level IT jobs, in many cases. They're competing with large, low-cost outsourcing firms which use foreign guest workers. These foreign guestworkers, regardless of federal laws and regulations, work for significantly less than prevailing wages and work many more hours than is typical of even workaholic American IT workes. Together with offshore outsourcing of many entry level programming jobs, the entry point for Americans into IT is being closed off. In addition, every year, more Americans are being forced out of IT through offshore outsourcing and expanded H-1b and L-1 foreign guest worker programs -- used by many corporations as *worker replacement programs*. I've seen it and lived it. There isn't an end in sight. In fact, I'll know in another few months whether my job and my co-workers' jobs will be headed to India. I'm a software enginer -- a DBA working for a "big name" international corporation using the newest, most advanced and costly software and hardware. I've got more than a decade of experience. My colleagues are similarly skilled and experience. We're ALL of the opinion that corporations prefer to offshore or use imported guest workers in preference to Americans or green card residents because they can pay so much less.
what is supply/demand, rate of return, opportunity cost? I don't think so if you cannot figure it out from what I already said.
http://blog.noslaves.com
I aced AP econ in high school, and went on to minor in business. Do you ask people with whom you're debating object-oriented design if they can tell you what a pointer is? (And the correlary: if someone asked you that, would you dignify the question with a response?)
See, it looks to me like you're arguing that there's downward pricing pressure impacting the market for American programmers, but I'm taking the position that while that may be true, it's not sufficiently so as to constitute the death of the profession. However, while I'm guessing that that's what you're trying to get at, it's hard to say -- because most of your actual communication consists of claiming that I've stated that older engineers "suck", arguing that working with Python is inherently unlike systems architecture, and inquiring as to my age, rate and skillset (while only making a single economic observation about the data returned -- and that with precious little context).
I'd like to have an intelligent debate -- but that's not going to happen if you have nothing to offer but handwaving, evasion and insults.
Allow me to take this opportunity to flaunt Northeastern University's co-op program. At NEU, 6 month co-ops are incorporated into our undergradute (and graduate) curriculum. After your sophomore year, you essentially take classes for 6 months, and then work for 6 months, and alternate until you graduate. It's a great program -- companies get to hire help cheaply, and students gain experience working with real technologies in the real world. It is a perfect solution to the catch 22 situation that "you need experience to get a job, and you need a job to get experience."
By the time I have my bachelor's degree next Spring, I will have 18 months of industry experience. I worked with low level embedded systems at my first co-op (loved it), decided to try something new for my second co-op, and ended up writing backend applications for Wall Street (that was interesting), and now I'm on my final co-op for a Big Company out in Silicon Valley. I am completely confident in my ability to find a job after I graduate, and that confidence is absolutely due to NEU's co-op program.
And oh yeah, I'm getting a kick-ass education, too.
Stability is neither needed nor wanted. What is needed is Creative Destruction.
Just see how far a politician gets on that platform.
Going back to FDR, none has.
Obviously you've never had a family.
Yes, I grew up in a family with two sisters. I also took care of one sister's daughter for about a year. But obviously you don't think Sony has any employers who have families. Sony was a master of Creative Destruction. As were many other Japanese companies, that's how they became so big. Heck MS owes a debt to creative destruction. The release of Word and Excel was an act of creative destruction. Now it's Linux's turn.
FalconShould there be a Law?
...and says it like it is.
Thank you.
Thank you.
The US is a backwards, provincial cesspool of yokels and morons. On the internet, unless one specifically says otherwise, they're not talking about that shithole.
Immigrants aren't payed any less in mainline western societies.
... big corps have whored it away overseas. Stick to plumbing or being an electrician. At least then you only have to compete against illegal immigrants.
The jobs that are disappearing are those which require someone to sit in front of a screen, in a cubicle, for 30 years until reaching retirement age. The software and systems analyst jobs that are not going to go away are those that require an expert technical person to be able to go back and forth with a nontechnical person about the technical specifications needed for a software or SW/HW project. That does, I believe, require knowing how programs are written and run, but it is not programming per se. It also requires discipline knowledge in something other than computing, because I don't believe one can be ignorant of X and implement/modify/adapt a software package to do X.
Successful automation implementation has more to do with effective communication and problem understanding than it has to do with coding prowess. My opinion is that if you plan on a bit-twiddling career, a career making video games or a career with a software giant you might have cause for gloom. On the other hand, if you would like to contribute to the small and medium businesses' success with their required custom automation to support whatever the business is, you have a great future. Here, the value is in the ability to translate a problem solution into automation where it makes business sense. Outsourcing makes no sense. I have had a heck of a time finding qualified Java developers to work on my projects. Stay away from Microsoft and you probably will do better.
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.
These books sound very fascinating, and I will make a note of them and see what they're up to.
"Good news, everyone!"
In the US, a Registered Nurse makes significantly more money than a CS grad. So why bother with all that math? Just so you can work sitting down? Ye Olde Coder
I18N == Intergalacticization
...Work for a company that goes bankrupt. Then, all your former coworkers and managers (which I assume you were on good terms with) will spread out to a variety of different companies, and you'll now have loads of contacts.