Let me start by stating that you reply is somewhat of an example of HN-bias...
The world of programming is vast. Larger than "America", larger than Sillicon Valley, larger than the world of startups, and certainly much larger than the "elite" that regularly reads (and comments on) HN and pats each other in the back.
Even if we accept that programmers are well-paid and respected (two different propositions) in the technology sector, most programming jobs are _not_ in the technology sector, but spread throughout the corporate world. And corporate programmers are all but respected.
In your average company, a programmer is considered a glorified mechanic or janitor, a code-monkey if you will, well below the guys that "bring in the money" like sales and marketing. It is an expense, something that the company has to live with because someone has to implement the ideas that the guys in charge come up with to help the guys that "bring in the money" bring in more money.
Besides manufacturing, programmers are on the first line for outsourcing, and it is no coincidence that an expression such as "software factories" exists. Why do you think this is?
Most programmers will only actually _program_ for a few years before going into management positions. There are few "old" programmers around, and those that survive are often met with disdain. "What? You are 35 and still a programmer?" kind of disdain.
When the average corporate user spends most of his time in front of a computer, forced to use boring applications day-in and day-out, how do you think he feels about the people that build those applications?
And even outside the corporate world... If you are a doctor, or a lawyer, or a freakin' sales guy, people will listen to your stories, at least for a while. On the other hand, if you are a programmer and even start to talk about what you do for a living, people's eyes will glaze in boredom instantly.
Disclaimer: I am _not_ a programmer (I'm a sysadmin, which is mostly the same, although usually better respected because sysadmin positions tend to be longer-running inside companies).
Exactly. Even in this thread, it is appalling how quickly people reach for the "but look at Google!" argument.
Guys, Google is a top paid company in a top paid part of one of the richest countries in the world! Stop throwing around 6-figure salaries (in US dollars, no less).
I can attest to the fact that in Europe, programmers have respect on the level of assembly line workers. By Europe I mean countries from UK to Belgium to Czech to Romania. It's an ok job, you get paid some money, or even good money if you're skilled and know the right people. But your parents would much prefer you picked a respectable profession, like a doctor or a lawyer.
The reason I see for this is that IT is the wild-wild-west free market at the moment. That's why it's so successful, disruptive, productive and generally awesome. And why it scares parents. But it's also filled with wide-eyed, passionate kids who were so busy fighting each other and comparing e-penises that they didn't even notice when the old hands commoditized them. Remember, revolutions eat their own children.
Still, I am very much against introducing unions and regulations to artificially limit the market. The last paragraph of the original post is spot-on. The only way to gain respect is not to cry for it, but to realize your value and hold your head high. Sadly, programmers as a community seem to have already lost that battle.
"...programmers have respect on the level of assembly line workers... [in the] UK... your parents would much prefer you picked a respectable profession, like a doctor or a lawyer."
In the UK, sure, being a lawyer or doctor is much more prestigious than being a programmer. However, to equate programmers to (presumably unskilled) assembly-line workers is total nonsense.
What kind of programmer and what kind of assembly line?
> However, to equate programmers to (presumably unskilled) assembly-line workers is total nonsense.
Really? Is it so absurd?
Some programming tasks certainly require a lot of skill and insight. Not everyone could be a senior developer on a major software project, or start a successful business making their software from scratch.
On the other hand, many programming tasks today are very much like an assembly line: here are some parts, glue them together like this, make a product. A scary number of "programmers" today lack even basic background knowledge of the theory underlying their work, or a proper understanding of their tools, or any particular training and experience (academic, personal projects/self-study, or otherwise) that qualifies them to work on industrial, commercial projects.
Unsurprisingly, those people produce crap. Their software doesn't do what users need, or loses users' data, or crashes users' computers, or in the Internet age has security problems that let malware onto users' systems. Funnily enough, the people paying for that crap don't much appreciate it, and the software industry generally has a poor reputation for being able to produce good quality work as a result of these fools.
Of course, smart programmers have also built things like the Internet and air traffic control that can co-ordinate landing dozens of planes an hour safely, but people take it for granted that these things work without any understanding of how difficult it is to get such critical software right, and most professional programmers will never work on such important projects anyway.
I don't see how we're going to start distinguishing between software developers who know what they're doing and those who don't until we have some sort of competent and authoritative professional standards body. I don't see how we're going to have one of those until our industry is grown up enough to set useful professional standards. We clearly aren't ready for that today, with widespread ignorance in the industrial community, academics whose theories often don't stand up to practical applications, management who can't even estimate a project within a factor of 5 for time and budget, and consultants who peddle the Next Big Thing as if snake oil was going out of fashion. And thus the vicious cycle goes on, and probably will until our industry is a lot more mature.
Until then, many so-called professional programmers are pretty close to unskilled assembly line workers, and it is a strange idea that they should earn 10x the wage of someone working an eight-hour shift under far less pleasant conditions in a factory to produce goods that you and I rely on every day.
I'd taken to calling myself a 'digital garbageman' for a time, because that's essentially what I was. I had some corp jobs, and it was mostly cleaning up other peoples' code. I said it tongue-in-cheek, but I did feel that way, and eventually left corporate work to hang out my own shingle. This time around, I'm primarily solo, and sub out work to people to augment my time/skills.
I've gotten much better about charging rates I'm comfortable with, and finding clients that a) can afford it and b) find value in what I do at those rates. It would actually be nicer to do 'value-based' pricing, vs hourly, but it's not something that both parties are usually able to agree on. Unless you know a particular industry well, it may be hard to understand the full value of the work you do. Even then, the company may much prefer to pay hourly or much lower rates, simply because they can probably find someone else to do it.
With medical and legal professions, the licensing/regulation creates a large barrier to entry, and people have to go to those professionals for certain tasks. You can represent yourself in court, for example, but it's often frowned on, but you generally can't prescribe yourself your own medication. With software, no licensing/regulation exists, so there's generally a much broader range of skills and value in the marketplace, which dilutes the value perception many people have.
Agreed on the age thing. As long as there's a youth-obsessed focus in the software world (and I think it's done just as much by us inside than by the outside world) it'll be hard to get the respect we'd like as a profession, simply because most people don't treat it as a career. Would you rather use a 22 year old lawyer, or a 52 year old lawyer? How about a 22 year old developer vs a 52 year old developer? :)
"With medical and legal professions, the licensing/regulation creates a large barrier to entry"
This is the heart of the differences in pay. Expensive certifications keep the supply of doctors and lawyers artificially low and thus their average salaries higher. Meanwhile, anyone with a computer can start programming software.
Certainly the 52-year-old developer all else being equal. Isn't this a complete no-brainer?
For the record, I don't live in the US and only spent 3 of my 10 years of full-time software development at startups (my own). The US is just a convenient and familiar frame of reference.
There always exists a context where a given person is on the low end of the totem pole. You can almost always shift the goal-posts by moving around within society to find a place where you're a relative dunce. It seems totally plausible to me that programmers aren't at the top of the food-chain in positions in non-software companies.
But if you go out into the broader world ... the world where my brother works at Walgreens and my sister is a tour guide at the zoo, where my best friend just got fired and is about to move back in with her mom, my grandfather sold tractors and my mom is an elementary school teacher ... in that world being a computer programmer is a respected trade.
I feel like you zoomed out some, but if you zoom out even further, all of the sudden being a programmer is respected again. You're right that we orientate ourselves relative to our peers and that's the lens that we see the world through, but the broader world isn't all white-collar knowledge-workers.
As a somewhat disconnected point, and this probably partially owing to the fact that most of my professional experience is in Europe, being a 30-something programmer here is totally normal. In fact, I'm 31 and most of the programmers I've worked with have been older than me. The median age seems to be more 35-ish, with a lot of people still working in normal programming positions into their 40s and 50s. The distribution here more seems to follow the pattern of there simply being a lot more people that started programming in the 90s or 2000s than in the 70s or 80s rather than a particularly strong age bias against programmers.
I've also not experienced the total lack of interest in programming. Lots of my friends -- most of who are non-technical -- ask questions about it. I suspect part of the problem may simply be that a lot of programmers aren't particularly good communicators.
> If you are a doctor, or a lawyer, or a freakin' sales guy, people will listen to your stories, at least for a while. On the other hand, if you are a programmer and even start to talk about what you do for a living, people's eyes will glaze in boredom instantly.
What saddens me is that it happens inside the industry too. Too many times I have seen and talked to programmers who seem to consider themselves 'glorified janitors'. If you mention anything science/tech/IT-related outside of 09:00-17:00 period, you'll get shunned for being a geek. I say, WTF? I respect people who came to programming 'for the money' rather than because of being interested, however I consider disrespectfully discarding science/tech/IT stories while being too happy to discuss tourism, sports and cooking as a sign of mental limitation and general lack of respect to other people.
</rant>
> In your average company, a programmer is considered a glorified mechanic or janitor, a code-monkey if you will, well below the guys that "bring in the money" like sales and marketing. It is an expense, something that the company has to live with because someone has to implement the ideas that the guys in charge come up with to help the guys that "bring in the money" bring in more money.
It's worse than that. Even in the tech sector, the situation you describe sometimes happens. I have yet to fully analyze that kind of situation, but i've already come with some criteria that might help identify such environments.
What is sad is that it's merely a reflect of the mainstreams governance models at wide scale (and only worse: democracy is even less frequent in companies than in countries...), which have proven to be poor, and will prove to be catastrophic in a near future.
Of course in the real world things happen on a continuous scale, but if by bad luck the environment you're in exactly fit below exacerbate description, run!
1. A strictly tree like, military like hierarchy, ruling everything in strict tree order regardless of its a tech, hr, or other issue. This is one of the most effective way to waste talent and to take non optimal decisions (and not even near to optimal) -- add not taking into account bottom-up proposals if you want the perfect mix to achieve a high level of ineffectiveness.
2. The hierarchical tree is strict enough so that programmers typically can't even be spontaneously inspired by new ideas, which often is not enough to kill a business, but just to impede it, so sadly the situation might persist.
3. Each programmer is considered as a "just another programmer" in the company, regardless of achievement, knowledge, skill. The paradoxical part is that does not mean that individual requests are not done to the good people when needed, but it looks like not much people would recognize that when they have no question. Improvements in achievement, knowledge, skill are neither fully exploited and often not rewarded at all, directly leading to a high turnover.
4. Small valorisation of tech realization for those who actually do them, regardless at which level (that can go as far as considering programming mainly as a cost center that needs to be beaten into submission to behave, and preventing it from getting helpful resources).
Lesser versions of those situations exist, leading to more effective tech companies that are more programmers friendly. The two often somehow go together. At the end of this better path, you have some companies like MS, Google.
(not exempt from pb, but they arguably are not that bad)
"When the average corporate user spends most of his time in front of a computer, forced to use boring applications day-in and day-out, how do you think he feels about the people that build those applications?"
The thing is that those apps don't have to be boring. Most apps are low-quality, in code and design, as a result of a management philosophy that considers developers as low-value. Apple is a good counter-example. They put a high value in quality of code and design, and as a result even their settings dialogs are a pleasure to use. I've never come across a category of software that couldn't be made pleasant to use with some inspired design and coding.
I can only speak from my American experience, working as a software engineer for ~12 years in NYC. I am 33 years old--I never feel too old for this. My non-tech co-workers and engineering peers respect me very much. I love them back. We do awesome shit together. I solve hard problems and make beautiful software. I work hella hard but get paid well and I love every second of it. I am so glad I do what I do and when I read about people not being respected and not loving their work, I can only suggest that you do something else or do it somewhere else. The world is your oyster. Life is short. Carpe diem!!