Posted
by
Soulskillon Friday January 07, 2011 @06:56PM
from the i'm-sure-you're-all-totally-on-board-with-this dept.

D H NG writes "According to a new study by CareerCast.com, software engineers have the best jobs of 2011 in the United States, based on factors such as income, working environment, stress, physical demands and job outlook, using Labor Department and Census data. Mid-level software engineers make between $87,000 and $132,000 a year, putting them in the top 25% of the 200 professions studied by income. Software engineers beat out last year's number one job, actuary, which came in third, behind mathematician."

As someone who's worked in the field for a decade (and who survived the CS department at Cal), the difference seems to be that of executive assistant versus secretary. What are the connotations you have for the terms, and where did they come from? My wild guess is if back in the days of punch cards, the programmer fed the punch cards to the computer and the engineer wrote them.

Not really. Since it's self-reported, it's up to the person checking the box to bin themselves. What we learn here is that people who shy from calling themselves "software engineer", or are labelled "computer programmer" by their company's org chart, make less than people who report in as "software engineer".

Not really. Since it's self-reported, it's up to the person checking the box to bin themselves. What we learn here is that people who shy from calling themselves "software engineer", or are labelled "computer programmer" by their company's org chart, make less than people who report in as "software engineer".

Maybe it's because those who know the difference also know how to make themselves more valuable.

I doubt that. I know full well it makes sense to use term "software engineer" when we discuss compensation (for PHBs it sounds better, hence price disparity; and there is no harm in choosing it over alternative anyway).
I would also consider anyone who thinks there is a functional distinction to be a fool with big T.

It's probably true that at the lowest levels, "software engineer" and "programmer" are used interchangeably these days. But as soon as you start throwing around the prefix "Senior", the requirements for the software engineering side go up fast. I've known folks who can write code but have never even heard of "big-O" notation, let alone studied data structure analysis for years. "Programmer" is traditionally a two-year degree from a college on a particular language, while "Software Engineer" is a four-yea

Jesus fucking Christ you people are retarded. There is no "traditional" background for the "programmer" title, and while a lot of people want "software engineer" to mean something, it doesn't, because the industry doesn't give a shit.

In fact, reality is quite the opposite of what you're saying. MIT and Stanford do not give out "software engineering" degrees. They have schools of computer science, and the give out CS degrees. Every top tier school gives out CS degrees. Only the diploma mills have "software engineering" programs, because they don't have the chops to teach real CS.

You're very wrong on this point. I'll use my alma mater as an example: the University of Waterloo in ON, Canada. Please see their software engineering home page: http://www.softeng.uwaterloo.ca/ [uwaterloo.ca]. Waterloo also had the largest Math & Computer Science programme in the world at one point, although now that they're (AFAIK) broken into two separate faculties that's probably no longer the case.

The University of Waterloo also happens to have been Canada's top-ranked undergraduate school for something lik

So, you are calling the University of Minnesota a diploma mill? You should avoid such sweeping statements. I am in the MSSE program [umn.edu] myself. Here is the text from "Why an MSSE degree?":

Advance your career with a Master of Science in Software Engineering degree. MSSE is a full-time, 2-year Master's program with a 95% graduation rate and is designed for working professionals.

The need is clear

Recently, a "skills development and preparedness" study was conducted in Maryland. This survey found that: "In the high-tech area, more than two-thirds of businesses that hire computer engineers, laboratory or technical personnel... reported difficulty in finding qualified workers. Overall, nearly 40 percent of survey respondents reported that a lack of skilled workers negatively impacted their firm's ability to do business..."

Industry needs qualified leaders - those who can understand the fundamentals of a software system, and be able to guide its development and deployment through an organization. These leadership roles are integral to the success of a company, and are not easily outsourced.

Critical thinking

The Master of Science & Software Engineering (MSSE) degree prepares students to become Software Engineering leaders. The core of the program is focused on building a foundation of critical thinking skills on which to make professional judgements.

Often, in the workplace, that's what is needed of an engineer - his or her professional judgement; to assess a request and judge whether it makes sense. 'Is the request reasonable?' 'Given the constraints of my organization, can something be produced that will be acceptable to the users?' 'Do we understand the risks?' 'If yes, how could a solution be structured?' 'After all is said and done, is it a good solution?' 'Why?'

Theory and practice

The MSSE program builds these thinking skills through a solid understanding of theoretical methods, principles, and tools and an examination of fundamental software development issues and processes. Topics include requirements engineering, project management, quality assurance, and database management systems.

Acclaimed faculty with both academic and industry backgrounds also provide practical perspective. Real-world problems and opportunities with software intensive systems are explored, and methods to evaluate, adopt and take advantage of emerging technologies are learned.

MSSE students will also be working closely with fellow software professionals, completing applicable class assignments within teams. Working relationships developed will be a significant resource throughout one's career.

I design enterprise scale systems. That involves taking in to consideration many stakeholders concerns and being able to address then and to communicate the architecture to them based on their viewpoint of the system.

Dunno about that. Software engineer is just a hyped up term. If you can list yourself as that rather than a computer programmer it makes the layman think "Oh shit, hes an engineer we need to pay him a bit more". Its like being called a "mathematician" versus a "topologist", "algebraist", "analyst", "graph theorist", or "geometer". They make you think one person has some knowledge the others dont have, but really they all are just mathematicians that each have a particular specialty just like maybe an underg

In my experience, Computer programmers are the code monkeys who do what engineers tell them to do. The software engineers are the guys who sit just above the code monkeys telling them what to write, what they need to fix, prioritizing jobs, and dishing out estimates.

Code Monkey: http://www.youtube.com/watch?v=v4Wy7gRGgeA [youtube.com] Brought some tears to my eyes for the truths there about submission to authority to earn a living -- even, and especially, when you are a good developer...

From what I have seen in my time in industry, companies typically have fewer software engineers than computer programmers and while both roles will have employees sitting at a computer writing code, the software engineers will also spend a good deal of time designing the overall architecture of a system. Likewise, the software engineer is also generally the more senior level position and may also be the first person to take heat when a major problem is found in a system.

In its proper usage the terms are not interchangeable. Engineers typically have an expanded set of roles including pulling duty as architects, management of aspects of or entire projects, etc. Programmers typically do just that, program. They generally take their cue from engineers and deal primarily with the nuts and bolts of things with significantly less focus on big picture notions. Many of which are often derisively referred to as code-monkeys due to their restrictive roles and/or lack of skills to

Perhaps not in their original use. But in practice they are. My title has said senior software engineer or principal for 4 or 5 years now. I'm not about to call myself one though- too big a mouthful. I'm a coder or a dev. If I need to be semi-formal I'm a developer or programmer. The term "software engineer" isn't ever used outside of resumes and business cards. And truthfully I've never seen anyone hired as just a programmer- what you term is what we tend to hire as juniors, and expect them to gro

It's sort of electrician and electrical engineer. Both deal with wires and electricity but only one of them is likely to ever be responsible for the end to end design and life-cycle of a system and is writing white papers advancing the state of the art.

They also tend to separate civil engineers and construction workers. Just because someone knows how to lay up a brick wall or weld a steel beam it doesn't mean he is an engineer. The same applies to IT. Just because someone knows how to write code in a specific language it doesn't mean that he is an engineer.

You'll notice that the criteria don't include "intellectual fulfillment." Actuaries rate pretty highly in all the criteria the study considers, but perhaps their job is not as interesting as some others.

I know some actuaries, and they find their jobs very intellectually stimulating and fulfilling. For people who really like math and statistics, doing it professionally is enjoyable and challenging. It's not like actuaries spend their days adding up big columns of numbers -- we have computers for that. Actuaries figure out how to use sophisticated statistics to tease out subtle patterns from large masses of information. It's challenging and the results are often surprising.

You'll notice that the criteria don't include "intellectual fulfillment." Actuaries rate pretty highly in all the criteria the study considers, but perhaps their job is not as interesting as some others.

I know some actuaries, and they find their jobs very intellectually stimulating and fulfilling.

However, at least in the US, the results the actuaries come up with are invariably used to screw people out of money. No insurance rates have ever gone down as a result of an actuary's work - the results are used only to decide which group of people a company can justify screwing just a little bit harder.

Hence those of us who don't find that kind of work to be interesting or fulfilling then also find that the work is on ethically shaky ground as well. And those of us who would find the work to be inter

If you don't find that you are getting a good deal with insurance, then why buy it? Except in cases where you are required to (minimal car insurance, or full coverage if you have a loan). For example, I never buy extended warranties on electronics (I consider that a form of insurance), because in my experience it would cost more than it pays back in the long run. Another example, if you are a teenager driving a $8000 car, it doesn't make sense to pay $4000 a year for comprehensive collision insurance.

As someone who spends $1,400 a month on private health insurance, I spend it because the risk of someone in the family needing a 6 figure treatment is worse. Since the risk is actually low, I don't consider it a good deal. A child's health has a different weight than that $8000 car.

You obviously know nothing about the industry. Many insurance lines (especially liability) are in a "soft market", and effective rates have been decreasing for several years, often by 5%+ a year.

If you don't buy liability insurance you may not get that example. But you probably know something about car insurance. On a loss ratio basis, companies like Progressive and Geico attacked the auto market and won market share from companies like State Farm and Allstate. Their secret? More sophisticated and effi

You'll notice that the criteria don't include "intellectual fulfillment." Actuaries rate pretty highly in all the criteria the study considers, but perhaps their job is not as interesting as some others.

To play the devil's advocate I can think of one reason why someone might want to become an actuary rather than any of the other highly-rated jobs from the survey.

That reason is one of the key things that sets that job apart - nobody ever (possibly in the history of all humankind) calls an actuary beyond business hours. You might need a software engineer in the very wee hours of the morning (perhaps because the attached project has foreign clients) but you can't say the same for actuaries. Hell I'm a gr

Being a software engineer can mean a lot of thing. You can work in a big company churning out DAO's all day or working at a little company architecting your own projects. You might make a lot of money. You might have a lot of time to look at slashdot and try to get one of the first five posts.

I gather you're not in Silicon Valley? My small startup is having a really hard time the last 6 months competing against Facebook, Google, Zynga, Apple in hiring quality developers, even just out of college.
Thanks to goldman sachs, we've also got 2000 people about to move into the real estate market with $10 million in fungible stock options as well.

Big GPUs aren't going to help your compile times, and an i7 Extreme isn't all that great. If you really want to give your programmers/software engineers a powerful machine so they aren't wasting time waiting for compilation, you need to get them a 2 or 4-processor Xeon system (with each CPU having 4 or 6 cores). When compiling, the more cores, the better: "make -j x" takes care of everything. On top of that, 16 or 32GB of RAM, and a big and fast RAID array. The nice thing is you only need one of these p

The 132k figure is not for mid-level engineers (although maybe it is in a big city). The actual quote from the article is "Most earn a typical mid-level income of about $87,000 and top out at $132,000". Makes me feel a little better and it's maybe the first time I RTFA in over a decade of visiting here.

$132K as an upper bound sounds about right for mid-level engineers but is a bit low as an upper bound for senior software engineers at large corporations. Principal software engineers at Microsoft are paid at around $160K with fairly huge bonuses that push their yearly pay to nearly $200K. Staff software engineers at Google and others are in the neighbourhood. Note that these are cream-of-the-crop engineers who have chosen to stay as ICs rather than go into management. Source: personal knowledge and glassdoor.com.

It's the same at Apple. I'm a level-5 software engineer. I'm on circa 170k + bonuses (mainly in shares). I'll pay taxes on about 300k this year because of stock vesting - although Apple's stock has risen dramatically in the last few years.

I had the same reaction. I wish the article stated whether or not the salaries included bonuses and other monetary benefits. My base salary is not that impressive, but the bonus and retirement benefits usually add 30-40% to my yearly income.

On top of the fact that salary normally increases rapidly near the start of one's career, you timing for starting your career was very unlucky, with the bad job market. I suspect you may be able to wrangle big raises as the market improves, but you'll likely have to switch jobs to get them. IME employers find it acceptible to pay big bucks to get the shiny new guy, but harder to pay the same amount to retain those for whom they're accustomed to paying less.

I'm 10 years out of college and make at the low end of that range, though I live somewhere that's relatively cheap compared to most hotbeds of software development. I work 40 hours a week (sometimes a few less) and probably spend 25% of that not doing anything productive in a work-related sense. So from a "money per unit effort" sense I'm pretty well off. From a "doing something that is intrinsically rewarding and gives me a sense of pride and accomplishment"...not so much.

6 years out and not in the range yet:p Though still doing better than the arbitrary goal I'd set of making over £30k a year by the time I hit 30. I make enough that I don't really have to worry about money any more, that's good enough for me. I spent some time last year worrying that I wasn't making as much as I should be, but discovered all these really high paying wages tend to be in much richer areas, and for much more high stress/responsibility jobs than being the head "IT guy"/programmer for a s

You can't directly compare income in the UK vs the US. At the very least, deduct what we pay for health care (premiums, co-pays, prescriptions...), repaying college loans, lack of public transport, and receiving fewer vacation days.

I suppose the US may come out ahead even when all factors are taken into account. Although I didn't factor in anything for subsisting on cat food in retirement.

Well, suppose there's a $35k job that's a little more fun that a $90k job. If you opt for the $35k job, you'll be doing it until you're 65 years old. If you opt for the $90k job and invest that extra $35k you earn, you can retire in your forties and then do whatever the fuck you want with the second half of your life.

Why should I want to retire in my forties, if I'm doing something for a living that I actually enjoy? Why wait until the second half of my life to enjoy it when I can just as easily enjoy it the whole time?

Once the necessities are taken care of, like having enough food to eat and a secure and stable place to live, there isn't really much beyond that I would actually want, given that I was doing something I actually enjoyed.

But that's because there are very few people who class themselves as mathematicians.

That's because Mathematician isn't a job. No one would claim their job is a Mathematician unless they were specifically getting paid to do research into math - which is very rare. Often you are paid to teach Math at a university while persuing your study of mathematics.

I have carried the title "Software Engineer" for 13 years. I'm of mixed opinion about how great the job is. It pays pretty well, but much of that is relative to what you're comparing to.

There are worse jobs out there, no doubt, but we're not just coders at least in my experience and many people I know in Silicon Valley. You have to read a lot of boring documents. You have to know how to write. There are meetings. There are customers to talk with. For me what makes it "not the greatest job in the world" is that it's stressful in a way that people don't understand.

Deadlines always loom, and they are always too short. A good SE has to constantly decide where to unit test, design, explain to management, or just hack to get it done. There's no worse feeling when management decides that a project is taking too long and asks "who can we add to the project?" like we and our code is just plug-n-play factory work.

That is stressful and few people understand the kind of stress created on the job. I'm not asking for pity. It's a good gig overall, but sometimes I wish I would have stuck with my original, lower paying pursuit of teaching junior college mathematics.

I don't buy this article. The article claims software engineering is low stress. No way! You say software engineering is moderately stressful. Closer. I say it's often much worse. Many of the software related jobs I had were extremely stressful.

Software projects are notoriously difficult to plan, schedule, and execute. Just figuring out a goal can be difficult. Even good planners can be way off with their estimates. But many people don't have a good grasp of what computers can and cannot do, and it is very easy to step across the line from asking for a mere number and data crunching app to asking that the capabilities of human intelligence be exceeded. Or that it scale to impossible levels. They think they're asking for something easy and trivial, and fail to understand they're asking for perpetual motion. "Scope creep" is endemic. Communication is difficult. Often businesses discover that the engineers were asked to solve the wrong problem. Add that lack of understanding to suspicious, adversarial management 'tards who feel that coders (and everyone else) are just naturally lazy slackers, and you have trouble. Are the coders telling it straight, or are they making mountains out of molehills in a big conspiracy to make their lives too easy, or because they're a bunch of wimps?

Deep Thought didn't usher in a new era of AI superior to human intellect, instead it demonstrated that chess is amenable to number crunching. I like to put it this way, that computers can compute for you, but they can't (yet) think for you. You must still ask good questions, choose good directions to pursue, otherwise it is like the old saying: garbage in, garbage out. When management doesn't get this right, it is stressful for everyone. It's a hard problem that is often got wrong.

Most software projects end in failure. Why is a big question-- is it that software engineering should be no more difficult than any other engineering endeavor but we still suck at it because it is still a new discipline, or is it that software engineering really is harder? The questioning of the professionalism of the software engineering discipline is yet another doubt to add a tiny bit more stress. Or that typical expectations are way off base? By one measure I heard, roughly 30% of projects are total failures, 30% are only partially successful, achieving only some of the goals, and 30% are successful but late. Only 10% are successful and on time. And failure is stressful and hateful.

Another thing adding to the stress in software engineering is that there is very little downtime. Many jobs have slow days, but in software engineering, you can bang away at the keyboard every minute you're on the clock. On those rare occasions when downtime does happen, it isn't a chance to relax. More often it adds to the stress. Just like a meeting, downtime is taking away time you need to meet your schedule.

At the worst such job I had, we had management who had no clue how to plan anything, and zero interest in honestly trying as they were much more concerned with the infighting, each trying to make sure it would be the other guys who were eventually fired. They weren't about to listen to or solicit input from each other, let alone any uppity engineers, so each was making up their own plans and schedules in a vacuum, and trashing the others. Since they didn't know a real schedule from a load of buzzwords and bull, they couldn't see it when someone managed a miracle, and would reprimand the guy for not being even faster! Beating up the engineers for being too slow, incompetent, and stupid, in absence of any metrics whatsoever to make their case, was SOP for them. No matter how much evidence there was that that kind of management was counterproductive, their answer was to flog everyone harder. In hindsight I should have quit that job much sooner.

As a software engineer, this makes sense to me. I haven't met many other engineers who don't like their jobs. Those who do, quit and do something else. I suspect it helps that before you get called "engineer" you build some widely usable skills, and we get paid pretty well even early in the career. So if you don't like it, you have some flexibility in finding something else. Try that in a field with highly specialized (or no) skill, or less ability to save money.

As an astronomer/astrophysicist, I find it hilarious that "physicist" rated higher than "astronomer" due to stress level. Apparently working with real data is much more stressful than with just theory.

If you are a software engineer and you make over a million dollars per year, do you think you would want people to know this? I'd rather just file a W-2 and say I made $20K/year and write the rest off through my corporation as an expense. I think once you get above a few hundred K per year, it really behooves you to adjust what you report as personal income accordingly, otherwise you're just going to be giving away all your money towards taxes. I think most people in this position are already doing this

So... A major dataset is what people doing those jobs told them? Most people have performed few different roles and for few employers. Most people have no idea, except that the grass is always greener elsewhere.

True this is my impression based on anecdotal evidence, but since I work as an accountant and most of my time is out at a client, I get to observe and interact with lots of different people at work and see their payroll. And for some reason people have a habit of confiding in me, I think they're loo

Where are these high paying jobs they speak of? And how much do they really make after you take into account all the high paying jobs are in places with a high cost of living to go with it, and the lower paying ones.. well you get the idea. Everyone in California makes ridiculous amounts of money even though their job is usually perfectly transplantable elsewhere. With so many tech jobs in that state it really skews the numbers. How much does a "software engineer" make in a humble small town in a red state? Usually not so much...

Come to seattle - we have a different sort of religion, but not so much with the enviroweenies. Oh, and you'll learn to hate guys on bicycles. Sadly, the weather is a bit gray, but the flip side is good skiing an hour or two away.

European here. After a few years in London and then some time in Australia where things didn't pan out so great, I decided to head back to the old country, south of France.

Turns out I only lost about 10% on the salary, when really, I expected the cut to be more something like 30-40%. Turns out that if you find the right employer, they will go the extra mile if they've estimated your worth correctly.

No, definitely not -- Bay Area has relatively hot job market; and while there are more expensive areas (northeast?) most states have much lower salaries. At least my experience between pacific northerwest and CA suggests that latter has significantly higher salaries, and is confirmed by sites that compare cost of living & compensation.

My last job had a lot of those traits: great pay for local COL, no physical labor, not terribly difficult work. I almost never had to talk on the phone either. However, the work environment was horrible: I had to sit in a bull-pen environment, with all kinds of noise and distractions around me. I finally quit because of that. I simply couldn't concentrate with people interrupting me and having to listen to conversations around me. I also was fed up with never knowing what was going on, as the company h