Hacker News new | ask | show | jobs
by jopsen 3056 days ago
Once you've become a highly paid software engineer it's very human to try and justify your status by claiming that programming is exceptionally hard and therefore your status/salary is justified.

That's not to say that the job isn't hard... but lots of jobs are hard. Dealing with the constant loss of people around you if you work in a retirement home or hospice is also hard; but those jobs aren't rewarded equally.

4 comments

"Dealing with the constant loss of people around you if you work in a retirement home or hospice is also hard; but those jobs aren't rewarded equally."

That is a completely different sense of the word "hard" from "programming is hard". Working in the retirement home requires enduring emotional pain and sacrifice. Programming (at least some kinds of programming) requires a high degree of skill, knowledge, and intelligence.

The distinction being there may be a larger number of people with the skills to work in a retirement home, than there are people with the skills to write particularly difficult programs.

I don't know why the parent went to hospices and nursing homes as a counterexample, but your response is missing the point: lots of jobs are hard in the way that programming is hard, and don't have the same compensation levels.

Of all the programmers I have met in my life, I would trust only a select few to do the things that most professional engineers do on a daily basis. For example, control system engineering, where quite literally, life-and-death attention to detail is required. The scope of the knowledge required and (in)tolerance to error is astounding. Meanwhile, try to get a programmer to do something as essential and mundane as writing comments. It's like this eternal, "unsolvable" problem in the industry that nobody can fix.

Most of the well-paid programmers I know (including quite a few at AmaGooFaceSoft) can't wrap their heads around databases well enough to deploy a low-traffic web application. And this industry is now rather routinely hiring totally inexperienced people, right out of bootcamps, at salaries that are mind-blowing to most professionals. It's clear that this stuff isn't rocket science.

The compensation is not based on how hard the job is so it doesn't matter. There's a limited amount of people that can do programming, but also limited amount of people that can do safety-critical engineering. Perhaps there is some overlap. But can you engineer a bridge that's used by a billion people every day? Probably not, hence the salary differences.
"The compensation is not based on how hard the job is"

Well, yeah. That's what I'm saying. And so is the original article.

"...so it doesn't matter."

This does not follow. Maybe it does matter, but the market is irrational. For example: maybe there are a lot of highly-paid, under-utilized software engineers sitting around FaceGooAmaSoft, because FaceGooAmaSoft are terrified of what those people might do, if they weren't twiddling their thumbs and enjoying complimentary massages while eating catered lunches.

"There's a limited amount of people that can do programming, but also limited amount of people that can do safety-critical engineering. Perhaps there is some overlap. But can you engineer a bridge that's used by a billion people every day? Probably not, hence the salary differences."

Prove your claim. Most programmers making big salaries are affecting maybe hundreds of thousands of people a day, at best. It's pretty rare to find gigs where you affect even millions of people a day. Even inside GooAmaFaceSoft, those are coveted positions, with lots of cookie-licking and internal politics.

It seems more plausible to me that the market is where it is because of deep pockets and a willingness to engage in defensive spending, more than any kind of individual productivity. But yeah, this isn't an argument that is going to flatter most HN readers.

> Most of the well-paid programmers I know (including quite a few at AmaGooFaceSoft) can't wrap their heads around databases well enough to deploy a low-traffic web application.

I honestly don't believe this. You did caveat that this is anecdotal, but it's such a bold claim of ignorance I think it should be qualified.

> And this industry is now rather routinely hiring totally inexperienced people, right out of bootcamps, at salaries that are mind-blowing to most professionals

This is also dubious. It clearly does occasionally happen, but those candidates are also not as inexperienced as you imply ( e.g they typically hold STEM degrees like mechEng, chem, physics, Maths - often from prestigious Universities - or have years of experience with non-dev technical work like security, IT, ETL, etc. )

"this is also dubious. It clearly does occasionally happen, but those candidates are also not as inexperienced as you imply"

Sorry, but no. It happens All. The. Time. Bootcamp grads are working everywhere, especially in SF. Throw a stone at the next Off the Grid, and you'll hit one, the stone will ricochet, and you'll hit another. These sorts of folks are readily employed in the writing of CSS and creation of web forms, which is ~99.8% of all day-to-day webapp work.

(Also: holding a physics degree and attending a bootcamp doesn't mean you're a competent programmer. Imagine suggesting that a BS in Physics makes you a competent structural engineer. The fact that you would imply this almost makes my point for me.)

> Once you've become a highly paid software engineer it's very human to try and justify your status by claiming that programming is exceptionally hard and therefore your status/salary is justified.

Salaries for the vast majority of occupations are driven by the supply and demand for employees - its a job market after all. Demand for programmers is increasing. Supply is increasing too, but is generally limited by, among other things, how technically "hard" the job is. "Deserve" isn't even part of the equation.

Writing software is not difficult. Anyone can do it. The hard part is learning to structure your thinking such that the software you will be writing will actually solve a problem as it currently exists in a cost-effective way.

With that skill, you don't even always need to know how to write software programs. Sometimes, you're better off delegating specific tasks to humans.

When someone hands you a problem like "make this dead elephant disappear" other people will still be scratching their heads after the programmer has already figured out

  while( elephant.mass > 0 )
  {
     eater.TakeABite( elephant );
  }
And they think to themselves, "I can vanish an elephant in two lines." Everyone else is still thinking about the problem in terms of tons. The chewing and swallowing is a trivial implementation detail.

(Meanwhile, some other programmer will be at the north pole wondering what happened to the elephant they left in Cairo.)

Some people simply aren't able to deal with problems they have not encountered before, that are too far beyond their domain of comfort. They can learn, but they don't innovate. As long as such people exist, they will have to pay other people to teach them how to cope with changes in their environment. Software engineers get paid well because a lot of them can effectively solve problems without needing to be domain experts in anything.

No real programmer would propose an O(N) solution like that.

Here's O(1):

    elephant.invisible = true;
And now the world is filled with invisible elephant carcasses.
Careful your not over-engineering :)
‘Writing software is not difficult. Anyone can do it’

The drop out rates from programming courses suggest otherwise.

It is unclear whether that is due to lack of aptitude, lack of desire, or incorrect expectations.

The qualities of those people who have ever successfully written software programs suggest that there is no magical determinant that would prevent any motivated person from doing it.

Apply the construction from the Pixar film Ratatouille. "Anyone can cook" does not mean that everyone can, just that there's no one who couldn't.

I suppose some kinds of brain defect or brain damage could prevent it, if you really want to pick nits. But in that case the condition would likely also prevent that person from doing much of anything else.

Sure, but how much time does one need to invest to handle the constant loss at a retirement home.

I often get in trouble for saying things are easy or hard. For instance, building a website can be easy but costly. So what language would help here?