At a couple of startups that never took of afterward I could clearly see the impact that code I wrote was making on sales and value. It wasn't very much.
I'm not sure why people pay me so much, but I'm glad they do because I get to do what I love (programming, not not shipping), and I get to live off of that at the now rare and fading middle class standard of living.
Other times I yearn working on a popular open-source program or a library or a tool so that I can slap my name to it and actually know what I'm working on, and get some recognition. Or even criticism, because meaningful feedback by peers who actually understand what you do is great.
The guy who rocks into a company, tells them they need to write everything in new-buzzword-framework and use bucket-with-holes-in-it-db is arguably creating negative value and if the world was fair, they'd be paying for the privilege to be there.
On the other hand, the guy who comes in and tries to deliver the product, makes resonably, albeit slightly boring, choices and focuses on creating the thing people want, but the product fails because of poor market fit, deserves to get paid. It's not their fault if business people haven't done their jobs.
Why is this sentiment in the community common? I can't really find an explanation for it so far.
The rest of the US is a cheaper, Western Europe is cheaper still, and by the time you look at Eastern Europe you'll see that not only can you find programmers that stay on longer, you can actually find experienced ones.
There are literally thousands of blog posts on why or why not Silicon Valley, and the cost of living and hiring are brought up every time.
Marketing has a measurable outcome.
Lawyers work like slaves (very well paid ones) and have a measurable outcome.
Politicians do a lot of marketing / fundraising.
Programmers don't always measurably see the value of the things they create. Especially on a large team. This obviously depends on the product.
He basically hinted at that by saying: "because I get to do what I love (programming,...)"
I believe you and gp (lemevi) are talking from 2 different perspectives. Your perspective is more about "don't sell yourself short" or "don't devalue your skills".
The gp's perspective is more about the "mystery of the universe" as to why an enjoyable job could pay more than a boring one. It's a similar sentiment to the successful novelists, comedians, musicians saying, "I feel lucky that people pay me lots of money for doing what I love to do." (Yes, there are tons of programmers who suffer through boring CRUD coding and treat it as "just a job" but there are also many programmers who truly enjoy the activity.)
I experienced the gp's perspective in my first job out of highschool. I happened to be a decent typist so I got a job to transcribe audio to word processing documents. One day, the business owner was looking at his screen in frustration trying to make something work. I looked over his shoulder and saw things like "DO WHILE" and "DEFINE PROCEDURE" on the screen. I just looked at it and then had one of those Jurassic Park moments. I said, "you need to set a variable here, and move that line there, etc etc." He was totally surprised and said he'd pay me double the hourly rate if I could fix the computer program. I couldn't believe it. I had programmed computers during middle school (age 11 to 13) and treated the whole coding activity as "playing with a toy". I stopped programming during high school and worked at a fast food joint for minimum wage. I had no idea that people paid money for programming. People will pay me more for typing "DO WHILE" than mopping floors and hauling out grease buckets?!? That's absurd!
Yes, on one level, one can do all sorts of economic analysis (supply-vs-demand, marginal utility, productivity multiplier of software) and conclude that it makes perfect sense that programmers are paid $X more than brick layers. However, even with that logical rationalization, there can still be this "mystery" of why a person typing on a keyboard in a pleasant air conditioned office makes more than a brick layer sweating in 100 degree heat. It seems unfair that a "game" from my childhood earns more than back-breaking labor.
tldr: I am happy you had such good luck; mine sucked.
Worked in Tech Support (for a tech-related company), made tools to make mine and colleagues' from the department job easier and faster. This caught some attention from the infrastructure department, which got me "promoted" to junior sys admin. Nearly everyone kept point out how useful I am. Yay!
But it's not really that much of a yay. It's now expected of me to still do tech support, work on those tools, do sys-ops for some big/corporate/enterprise clients, be the "errand boy" for the other [senior] sys admins (ie, do stuff that's "below" them or that they don't know how to do)
It gets worse. I am the lowest paid employee in the company, too. I get paid less than our DNS admins, simply because they're there longer (there's this certain "culture" in the company which I'll get to in a bit) and they hardly do anything, because most of their job is automated (and more so since I made their job even easier). I wouldn't even mind doing all this, but then pay me for all the three jobs I do. The reason for my salary is "historic": Is started working as a student, and even though I did get a few raises since my initial salary, it's still the lowest one in the company because the "base" salary is still what my student one was. I get paid ~£450 while the next person with the lowest salary gets ~£600 which is an [also under-appreciated] girl from the DNS department. Everyone from the tech support had at least ~£700, while my two sys admin colleagues get ~£1100 + bonuses; oh and I don't get bonuses for the same shit that they do; they even make me do something and then get the bonus for what I did. Sometime in the past they agreed to track "overtime" (which also includes any really special stuff for the really big clients which are outside of the contract that we'd do) under one user on Harvest, and just split it between themselves. I was given access to the harvest account and I tracked my time on it because I was told to do that. But they'd still split the money in half? The fuck. When I asked about it because I was genuinely not sure if I was doing something wrong, the response I got is, and I quote--because the absurdity of that moment is etched into my mind--was, "but I have three kids and you don't." I was too shocked to say anything and just murmured something in agreement. The other admin hasn't got any kids. He doesn't even have pets.
Also, some of the longer-employed employees are trying to push this "we're a family" bullshit, when anyone who's not them is clearly not part of the family, which is clear from how they all interact. If anyone from one of the "newbs" tries to buddy up, all they get is attitude.
And can't look for another job, because I wouldn't be able to relocate due to certain life circumstances that tie me to this town (at least for now).
Typing this is just making me furious so I'll stop now. I'll just like to add that, I am not in need of money, because I come from what is considered a "middle class" (I hate the labels, but they get the point across here) background. However the unfairness is what really gets to me.
: Maybe I'm retarded and they want to make me feel nice.
When you have officially quit and your contract is off. You can get hired again and can negotiate a much better contract. Also look for other jobs! And write down everything you've accomplished and the value you add to the company.
And in the future, if you even smell bullshit and think something is unfair, you have to open your voice and argue! You also need to "ventilate" far more often, so that when you "ventilate" it will only be small issues instead of the "huge pile" you just dropped.
Some companies cultivate a recognition of talent, and some don't. Some companies are simply small companies, and the culture reflects some of the idiosyncrasies of a family (for better and worse). Getting a promotion without a pay raise is certainly a mixed signal.
The one thing I'd suggest you look around for, is to understand the business cycle of the company you're working for. If most of the revenue is from contract sys-ops for enterprise clients, pay raises may simply lag based on the client business cycles.
I have enjoyed most of it, apart from the parts highlighted earlier which frustrate and upset me.
My alternative is to quit and sit at home. One of the reasons (I'm not sure how relevant it actually was) why I took the job was because my doctor said it'd help manage my depression, and it did, because it made me happy, and the atmosphere and coworkers were amazing.
Although, if by alternative you mean another job, I don't know if I'll be able find one close enough so I can still take care of my mum.
Underpaid isn't really the problem, it's just a symptom of this "broken" culture, where anyone new won't ever be as valuable as the new crew (regardless of their actual value or how much they contribute). And I feel part of my problem right now is that that I'm in the department with all the old employees.
Now, your real goal, it sounds like, is not to leave your current job, it is to get paid better. You can't do that without mobility.
If I do get to doing work remotely, I'd enjoy development more than TS.
If it doesn't work, leave.
Sure, if you're just a worker bee, you can be selfish and milk these poorly organised start-ups for all they're worth, but if you wanna step up into those senior roles and actually have a chance of making something of those options, you need to weed out folks who don't care about delivery.
I'm not saying the guy definitely doesn't deliver but there are a number of indicators that suggest that he's not actually suffering from imposter syndrome but is actually just self aware to the point that he knows the companies hiring him are not getting value for money.
Even if that is true, he himself can hardly be blamed for taking the money. Whilst I try to deliver value to my clients, I also bill them as much as I can get away with.
1. Labor does not receive (or insist on) percent-of-value or percent-of-transaction compensation. This is in contrast to some other professional disciplines (e.g., salespeople often get paid on a percentage or commission, bankers often take a % cut, pe / vc / hf has 2% and 20%, real estate is on a %, lawyers may get paid on a % ("contingent fees"), etc.)
2. Initial salaries are good, but there is wage stagnation. Just-out-of-college salaries for programming are often better than virtually everything else (notably, banking and consulting); but after ten years, the opposite is relationship is reversed (considerably so). The difference between a newgrad salary and a 10-yearer salary for tech-industry programmers is often (in my anecdotal experience) less than 2x. In contrast, 5x or more is not unusual in other fields.
Don't forget that there is huge flight from banking and consulting, but much less so for programming. Of 10 people who start as bankers or consultants, 80% will likely leave the industry within 5 years, and 90% within 10 years. So, in a way you're comparing the salary growth of a median programmer to the salary growth of a top 5-10% banker.
> Private equity recruitment firm PER conducts an ‘unofficial count’ into how many analysts join the M&A and corporate finance teams of six leading banks in London. In 2010, PER calculated that 250 people joined a combination of Bank of America, Citigroup, Credit Suisse, Goldman Sachs, JPMorgan and Morgan Stanley. After tracking those individuals for three years, it recently calculated that 140 of them are still working in banking. That’s an attrition rate of 44%.
Just searching around doesn't show anything solid up.
To put hard numbers on it, McKinsey is one of top management consulting firms. According to an employee, its average tenure among new consultants is 2.5 years. https://www.quora.com/Why-are-employees-loyal-to-McKinsey
That's consistent with the staffing ratios within the firm (Wikipedia suggests thare are ~400 directors compared to about 9000 total consultants). Those are the ones who stuck around for more than a decade.
Betz' law states that there is an upper limit to the amount of power that you can extract from a given mass of moving air (aka wind). The plainest explanation is that the wind has to go somewhere in order to be able to bring in fresh wind. If you extract all the energy then the air would have to pool around the windmill and then eventually the pressure differential would drop to 0 and there would be no more wind. So you give up some of the energy and use it to remove the air after you're done extracting energy from it.
The parallel is that if up-or-out wasn't a fact that these companies would sooner or later run out of room in their org chart to bring in fresh recruits at the bottom. This would stop them from hiring the occasional gem that they will promote to the top of that chart. So to be able to hire the really good people they have to create room at the bottom, they have to get rid of a certain percentage of their people at all levels every year to keep the machinery moving.
It's an expensive affair but in the longer term it makes good business sense. Both windmills and really big companies are extraction devices.
This is true of pretty much all engineering jobs, and more broadly, most non-sales jobs. Commission becomes feasible when you can directly attribute sales or billable hours to a specific person.
> Initial salaries are good, but there is wage stagnation.
This is true for all engineering jobs, and also most jobs in general. Banking and consulting are exceptions, and as others have pointed out, the attrition rate is quite high in these fields and that skews the numbers somewhat.
> In contrast, 5x or more is not unusual in other fields.
Care to name some, besides banking and consulting, and possibly corporate law? I'd suggest that in most fields, you don't make significantly more money until you're managing a significant percentage of people, or tasked with making decisions that set the direction the company.
Why should programmers be an exception?
This is fair / you're right: I was mainly thinking of banking, consulting, law, and buy-side finance. As you say, though, there are plenty of highly-trained professionals who don't experience a 5x earnings increase over 10 years; functional medical roles (e.g., anesthesiologists) come to mind.
Something I was wondering when I wrote the original question -- and I may be way off here -- is whether there are cultural or structural effects in tech-industry programming that cause wage stagnation. For example, there is less wage stagnation for programmers in quant hedge funds than there is in the tech industry; part of this is the clear p&l, of course, but perhaps there is a cultural / structural component as well? I'm not a programmer, but I once heard something that stood out to me: A friend, who was a senior programmer, discovered an inefficient process where he worked. In brief, whenever a certain "event" occurred, the company lost money; the senior programmer noticed this, and built a fix -- no more "events", and hence lots of money saved. From what he told me, my back of the envelope was that by building this (which took him about a week), he saved the company more than $600k a year. I mentioned to him that if he had come in as an outside consultant with a black box solution and offered to charge $100k a year to save the company $600k per year, there was a nonzero chance they would have said "yes"; he laughed and shrugged. This made me wonder whether there is something intrinsically non-value-capturing going on; perhaps (1) tech-industry programming doesn't have a culture of individual-value-capturing, or (2) the role of a programmer doesn't have the structural leverage to reliably capture value. Of course, this story is just anec-data; there may be no conclusions here.
If you mean that it's hard to apply value to an individuals labour in programming you are correct, except in some rare circumstances where there is only one guy at work - then it becomes trivial.
Let's look this from the point of view of features and fixes for an individual software product.
For a car mechanic, an unserved issue means the single client may switch vendors (cost, say, 1 k).
For a software engineer, a botched feature may mean that a category of clients abandon the product (cost:1M+).
Ok, from the point of view of catastrophe recovery we know who can save more megabugs.
What about delivering value from new features? The car mechanic doesn't create anything new. Let's take the construction worker, then. This is really bad analogy but hold on.
The construction worker gets plans, builds the house, and moves on. Architecture, engineering and construction are split to separate people, all of whom have a known cost to their labour. Thus, we have a fixed project and a more or less transparent cost structure.
Software is nothing like building a house except in rare circumstances. Real world construction projects are mostly about creating linear combinations of known things.
Writing new software is like playing a combined game of sudoku and mastermind in a dark room - in the best circumstances. Sometimes the lights are on and the board is almost done, and you only need to put one piece down.
But - you can't really tell from outside what the situation is. Is the board ready? Did someone mess up the first steps and now they have to start over?
The whole thing is like a black box with input and output. The only measure of quality and value is that is the customer satisfied with the data coming out. There is no metric you can gauge the work reliably.
From the point of view of the organization the software project is like a black box, into which the team goes to do their work. They yell estimates to the project manager sitting patiently outside, who then writes project reports. After the team declares they are done, the deliverable can be tested.
You can send anyone inside the room, but only software engineers understand whats going on.
Sometimes a new programmer needs to meditate months inside the room before starting doing changes.
Sometimes the black box blows up.
Sometimes the team just goes into the box and cries all day without doing any porgress-for months - unknown to the org.
I'm sure this gets the imagination going - basically, anything that can happen with a black puzzle box and real people can happen.
I'm exaggerating to make a point, of course. But these unknowables make writing software a really risky proposition from the point of the view of the org. And individual can be incredibly productive, or a total failure, and it's really hard to point this out reliably if all are not specialists.
That's why, IMO, personal bonuses aren't really helpfull for software projects and fixed company wide bonuses are the only way reward without creating unfair situations. Any KPI based individual bonus system will at worst be destructive, and at best almost completely unfair.
Have you actually built a house before? The plans never quite match up to the reality. It always takes longer than you think, and costs more. No house is exactly the same as another. Every house has bespoke parts to it. Shoddy construction happens often, and fixing the issues that result can cost more than initial construction. And then the customer changes their mind, causing costly rework that never quite fits properly into the initial design. I would say building software is very much like building a house.
Yeah, it's good to remind that making anything new and not mass produced is always messy. I would still claim that software only goes more insane from that since there are very little constraints to the work and it's less understandable as a whole. House at least is bound to the basic laws of physics. One cannot mess up the local universe so that walking through any arbitrary door takes one suddenly to the toilet. In software, on the other hand, one needs to design the constraints oneself (I'm generalizing again, of course).
Software developers normally apply a 200% - 500% fudge factor do deal with unforeseen costs. Problem is, they are usually wrong by an order of magnitude or two, at whatever direction.
One way of looking at programmers is that they are managers of an extremely cheap, fast, scalable, yet stupid, workforce. Once that workforce is put into action it can operate indefinitely. The problem is this workforce is very rigid in what it can do, and it must be told exactly what to do. It also requires a certain amount of maintenance due to security issues and ecosystem rot, but even so, the fundamental nature of this workforce has completely changed the landscape of the global economy by discovery of a new type of worker neither human nor animal.
Looking at it in this light, programmers potentially deserve to be paid on the order of top managers and even entrepreneurs and growth-phase directors. But not all of them, because being a programmer entails getting lost deep in the weeds of the mechanics of managing this invisible workforce. So the people who are capable of doing this are not necessarily the type of people who are good at understanding and articulating the business goals. Furthermore, because of the inscrutability of the work to non-programmers it is very difficult to enforce accountability from the outside, and therefore it is all too easy for programmers to become infatuated with operations that actually yield no value to the greater business.
At the end of the day programmers can drive businesses just as management can, but the tools are different. This is why I believe calling programmers "engineers" is a misnomer—it's not because real engineering is harder, but because programming is much more open-ended; a running program is literally logic incarnate. There is no limit to what can be done with software, but whether that can be harnessed to create a profitable enterprise is another question.
Of course, the company itself captures most of the created value from this process, so if we're sticking with capitalism I'm fine with making extra money.
I saved my previous employer 60k years in running cost on my first three month on the job, and couldn't get a 10% raise out of it. Just promises and nice words. Well guess what? If you pay programmers as blue collars and get them to work as blue collar in a "software factory" paying them blue collar wages, you are in a self fulfilling profecy about their value.
Less than 1/5th and there's room to pay me more. More than 1/3rd and I'm at risk of getting into the unstable realm where if I or my team hit a temporary rough patch, that the company would be economically ahead to fire us, especially after you consider the amount of "double counting" that goes on.
(Engineering builds something that saves $100K/yr. Manufacturing deploys that thing to save $100K/yr. What do you want to bet that the total savings claimed is closer to $200K/yr than $100K/yr?)
My time has a value which is independent to what the company pays me to actually do. My time would carry the same value even if the company got me to clean bathrooms.
If I had the willingness to start a company and spent my time there, how much money would I make? That's the value of my time, but it carries quite some risk. I am not the best at monetizing software, so I outsource the monetization of my time and associated risks to a third party. They do get a substantial cut of the money, which is fine since I get reduced risk.
If you tie the value of your time to the capability of the company to direct you doing high value tasks you're starting with the losing foot in any negotiation. What if you gave your time to a charity? What if the company needed you to debug some worthless software in the chain as an emergency? Your time has a value even if what you are told to build in your time from your employer has no value - it's the employer loss, not yours.
You hit the nail on the head that we're giving up a lot of the value "pie" in exchange for much lower risk. My mindset takes that one step farther: ensure that everyone's economic goals are aligned and stably pointed to continued employment of me and my team. That requires an exchange of my time for the company's money at a rate low enough that it's obvious to the company they're getting an economic gain from buying it and high enough that it's obvious to me that I'm getting an economic gain from selling it.
If those ranges don't overlap, you have a very unstable situation. When those ranges have large overlap, many different valuations of time are stable and mutually beneficial.
>What if the company needed you to debug some worthless software in the chain as an emergency?
If the software I'm debugging is worthless, it's hard to imagine there's a genuine emergency involving it. The mere fact that there's an emergency involving it means it has some value to someone.
To the extent it can be done at that level of abstraction, I'd argue that programmers are actually very over-represented in being paid based on hard outcomes. I haven't heard of any other profession with such a focus on equity grants.
Problem 1 is more systemic and harder to solve.
For Problem 2 I feel there may be a way to strategize around it. Specifically, wondering if there is a point where salaries increase, and then after a certain point, rate of salary increase drops off at which point it may be beneficial to do a masters, phd, MBA or some professional work to refresh the resume. Either that, or perhaps dedicate some time (in lieu of higher ed) to some interesting open source project. Thinking more about economy of time here than education, education is just a way to make this concrete.
I have family in education, and many districts have incentive programs for teachers to get Master's degrees, so that in addition to the pay bump, they get some or all of the tuition covered. I've known a number of people who've done this, and not one says that it helped them do a better job as a teacher - the programs were big rubber-stampers, and the only real outcome is that they are now not quite so pitifully paid.
The second question is, how can a company be succesfull? I know several very succesfull software businesses which were not directed by software engineers. The question about competence to run a company is far more complex than saying if domaim specialists won't run the show it will tank.
I read the whole thing but I couldn't follow exactly what he was trying to convey there. Yeah pricing is difficult and one of the most intricate subjects in marketing and just ask any marketer or MBA student/pro and he will confirm that and labor is no different.
I also think that compensation would be a better choice of words than pricing. Human labor is a commodity and thus carries a price but the human being itself is not a commodity and can't be priced, bought or sold whether he be a programmer, plumber, astronaut ... etc.
Incorrect. If your company were to pay you the same amount as they profit off of you, you wouldn't be sticking around for very long at that company. That's the basic requirement of your company's mode of production.
>If the ranges of acceptable don’t overlap, it’s worth stepping back and clarifying what glasses people are using to look at the numbers.
Consider my previous assertion. You may come to this conclusion: "it is unacceptable that I don't make as much money as the money I produce for my company." You may realize that the entire economic system is structured that way. Then, you're right that it's worth stepping back and clarifying what glasses people are using.
That's not quite what he's saying.
From the post:
> You can never say a price is high or low without asking, “Compared to what?”
He's saying that his price can be compared to the value he creates, not that the price should be the same as that value. So in this case, if his price was $1M for $1M of value, then any reasonable person would say that the price is too high compared to the value.
My rant was tangential to that bullet point but relevant to the second bullet I quoted... so I probably should just remove the accusatory word "incorrect" from my post ;)
Why is this a basic requirement?
Assuming by "amount they profit off" an employee, you refer to the economic profit (that is to say the profit after taking into account of all economic costs, including opportunity costs) rather than the nominal value, then I really don't see why this is a basic requirement.
This really perplexes me especially since the amount the company pays should be exactly equals the amount of economic profit you generate for the company, in a perfectly competitive labour market.
Of course, reality is not always perfect, but for the average programmer it's pretty close (skills are quite homogeneous and programming jobs are less constrained by geography).
Say a TV is priced at $100, the raw materials to produce the TV costed $24, and all of the depreciated tools in building the TV costed $1 (the tools wear down, eventually requiring replacement). The labor performed by the worker produced $75 of market value.
If the capitalist pays the worker the fair $75, the capitalist makes nothing off of this whole coordination. Why in the world would the capitalist do that? Not only can the capitalist not take some of the money for themselves, they don't have any money to expand their business. A company that doesn't expand is a company that is eaten alive by companies that do expand. If the worker gets the $75, the capitalist isn't happy, and the capital isn't happy.
$30 goes to investment capital, $20 goes to the capitalist's wallet. The capitalist pays the worker $25.
Software is no exception to this reliable, yet simplified model.
I don't think that's right. First of all, programming skills are not homogeneous at all, they are in fact widely dispersed. A bad programmer can very easily destroy value by slowing down his team, in a way that doesn't happen in e.g. a factory environment. It's also not easy to judge programmer skill pre-hiring, so starting salaries are biased toward the mean, making good programmers underpaid and bad programmers overpaid.
Additionally, there are biases, morale considerations, and cultural issues that prevent compensation being equal to value added. Businesses are incredibly averse to firing people (there are some good reasons for this of course, e.g. morale). There is also very strong inequity aversion (again partially a morale issue) that makes it impossible to pay top programmers what they're really worth. Both of these issues lead to significant deviations.
IMO that is far from the best case. That allows "ignorance is bliss" and, at the other end of the malice spectrum, for one party to be taking advantage of the other.
I once sold a rare trading card for $50. I thought I was getting a good deal, the other person knew it was worth much more than that and thought they were getting a good deal. Was this situation optimal?
I once sold a laptop to a person over craigslist for a fair price. He thought he was getting a good deal as well. When I got home I discovered that model had just been obsoleted and so a brand new one was as cheap as the used one I'd just sold. Was this situation optimal?
Edit: I should note that this assumes a somewhat unlimited self-interest on both sides. Real people might not take all they can get even if it's offered, and real companies might not mind paying more than necessary even if they're not asked.
First, you can find a large pool of candidates, learn the typical wages in your market, and make offers pegged to the average (with some offset). You will learn what fraction of your offers are likely to be accepted (maybe shoot for 60%), and adjust accordingly. This works if you want to hire a dozen or more people over the course of some months.
Alternatively, ignore price, look for candidates, and when you find the right one, open a negotiation where you determine what price they are willing to take. If you need to hire a small number of specialists, this may be the best way.
I have also experienced failed recruitment schemes, such as ignoring price until the end but then pitching a "fixed budget" (which sometimes means "political limitations").
You can choose which method to use every time you hire. Great candidates may also be choosing, and you know which model they will cater to.
A price is too high if the buyer can find the same thing (another programmer considered to be an equal hire, in this case; people are not commodities so this can be difficult to evaluate with absolute accuracy) for less. A price is too low if the buyer cannot find the same thing for even an equal amount.
The price is just right, at that moment in time, if there is a mutual agreement between a buyer and a seller.
It is much easier to estimate the price of an already hired programmer with a track record known over years and who has knowhow of the company's infrastructure, style, and knows the interactions between people and teams.
Also, it is usually easy to estimate how much it would cost to replace the well-known, skilled programmer with a new hire so I might assume that a careful owner or manager would be eager to re-evaluate his/her price continuously and adjust their salary upwards regularly to basically re-hire the hired programmer, to re-establish the position over and over again.
But large or continuous salary increases are not that common. You generally have to change jobs to get a significant raise to your salary.
It seems to be companies are more careless and flimsy with spending money on new hires and more conservative and thrifty with spending money on their existing hires even if that behaviour is in direct opposition to the amount of betting they are required to do.
But there's a pretty simple rule in a competitive market: prices are set by the next highest bidder.
Asking how much you should pay a programmer is like asking how much you should pay a telephone user, or how much you should pay a pencil user.
And that skill has a lot of value to people that don't have that skill or are limited by their own time so we get paid for it. Probably a decent number of years will have to pass before we can call programming 'just a skill' akin to writing.
If you're going to put ideas out that are borderline detached from the current reality it would be great if you gave your thoughts a bit more foundation so you're easier to follow, it just so happens that I saw what you meant but I can also understand why someone who is currently a programmer by profession would in some subtle way feel offended if you called their profession (which is a hard one!) the equivalent of a telephone user or a pencil user.
As for being ahead of my time, if you look at the job market today it's true that you do have a lot of people paid purely for their ability to code. These are mostly W2 employees, who work at the kind of places where you start out as a junior developer making 60 - 80k, and then make double that after 8-10 years. And given the current state of society, this is actually a pretty good career path.
However, we also have consultants who bill on a project basis based on value rather than skill, who might easily make 400k a year even as junior developers. (E.g. c.f. patio11's essays.) And we have entrepreneurs and founding team members who get paid largely in stock, the worth of which is largely determined by how much the market values the product.
It's kind of weird because as an industry we definitely need people who have ridiculously good technical skills, to the exclusion of all else. But for the most part programming is a pink-collar job that just happens to be done mostly by men. (In that it requires education, but there is a lot of downward pressure on salaries because the people involved are perceived as being largely interchangeable.) This is why I'll sometimes describe myself as a software developer, but never as a programmer or a software engineer. Because although I know how to code and I might even spend most of the day coding, I don't ever want to work at a job where I'm paid based on my coding ability.
Just to add my two cents, I downvoted your original comment because I thought it made no sense and was bordering on trolling. This reply is much more eloquent and puts it into perspective, so I've upvoted it. I think this is a completely valid and interesting opinion on the "worth" of a programmer, and it's not one that is ever really explored. Our industry tends to focus too much on the general "market value" of developers without considering that they are more than the sum of their skills.
That said, I think you're drawing a line where one does not exist in practice. Very few developers these days are paid to just crank out lines of code. At work, I'm not asked to write a function that takes certain inputs and returns a certain output; I'm tasked with building a feature for a product. This requires much more than the skill of knowing how to code: I have to have a good understanding of the product as a whole, how everything fits together from a technical perspective, and the end users' needs. The titles of "programmer" and "software developer" (and all the other variations) are used interchangeably because the distinction essentially doesn't exist anymore—if you hire a programmer, you're expecting them to know more than just how to write code.
I have a friend who also uses Python as part of his job, but he's a hedge fund manager. Although we're both ostensibly programmers, there is no way we'd be able to successfully do each others jobs, at least not without several years of training. Nor do I think that just knowing Python makes me qualified to be a professional biologist, astronomer, filmmaker, or whatever else people are using it for these days.
That's why I think it's weird to ask how much a programmer should make, since in most cases it's actually the analyst part of the job that determines how much value you're able to create.
Programming absolutely is a job. Its a thing people pay people to do for them.
> It's not even a skill;
Its absolutely a skill.
> rather, it's more of an active literacy.
Literacy is a skill. It becomes less of a notable skill when its common enough (near universal) in society, fading into the background. But programming absolutely isn't that common of a skill.
> Asking how much you should pay a programmer is like asking how much you should pay a telephone user, or how much you should pay a pencil user.
You might have a case if you were talking about a "computer user" rather than a "programmer", but as it is, that's just silly.
But it's not like there's much dispute that being a translator is a job.
Anything has value as long as someone is willing to pay for that. Simple as that.
Is a Van Gogh painting worth 50-100 million dollars? It is if someone pays that much for it.
Nothing more. Nothing less.
If you think programmers are worth $0, then that's your prerogative.
However you must surely be typing these comments in a computer programmed by yourself, using an OS and reading it in a browser you wrote from scratch, otherwise why pay money (that ultimately will arrive at the pockets of the programmers) for something that is worth $0?
Do you feel they are all worth $0 too, or just programmers?
Sure, each was created by a pencil user. But they don't actually have anything in common, so asking how much money pencil users 'should' make doesn't even make sense as a question.
You are saying that a pencil user isn't worth anything, but you also recognize that a pencil user can write a script. You feel that it is the script which has value, and not the pencil user. So I suppose you're saying the programmer isn't worth anything, but the program is worth something.
That's one lens to view things, but it's also a gimped on its own. One should have multiple lens.
It's the whole basis of IP law and all the associated bits-and-pieces that allow all of us to make a living. Intellectual property has a shadow side, but this side is the one that keeps the IT world afloat.
The same laws that govern file sharing allow writers, programmers and other people skilled in some art to create enough value that they can make a living, sometimes even a very comfortable one and those writers and programmers that manage to hold on to the fruits of their labor long enough can do very well for themselves indeed.
> What would happen if you exercised clarity? Bad things?
Unlikely, but not everybody is equally capable of expressing their thoughts clearly. I should know, I've struggled with this for many years and only in the last 5 or so I've gotten better at that. HN has definitely been a tremendous aid in learning how to express myself more clearly to avoid being mis-understood.
Even if you just consider it a form of literacy, scribes absolutely were paid to do their work before literacy was as widespread
People don't pay for people to them to make money, they pay for people to build wealth.
People don't... wait I have to throw up. Will be back.
But really. Menial? Like teachers, doctors and kindergarten workers?
Societys true value is in something else than the value in the bank account.
A single person didn't build any of these billion dollar companies you're referencing; at some point they had to hire more people, who in turn "sold themselves" by your confused logic, to build the company.
Most of these halo companies have non-programmers who were brought in to monetize and grow the value in them. Sheryl Sandberg isn't a programmer nor I think the rest of that board. Eric Schmidt was an electrical engineer.
What 'hacker news' is or is not supposed to be upvoting is only fragmentary up to you, the value of your one vote which you may withhold as you please.
There isn't a day that goes by without some relative newcomer here saying with great authority what HN should or should not be. Hint: HN existed long before you arrived and the charter is broad enough that it is probably not possible for any single individual to pontificate on what HN should or should not be without considerable care about representing viewpoints different than their own. Your comment fails that particular test.
HN is made up from individuals from all walks of life, and some of us are currently in the job cycle where an article that gives information on how to improve their lives is important enough to share with others.
Making billions, Mark Zuckerberg and Facebook have nothing to do with the subject at hand, and if you recognize that the battlefield is the marketplace then maybe you can also recognize that programmers are active on that marketplace and that tools to help determine their value are in fact useful and worthy of discussion.
Since we are using natural language as real human beings our communication is context sensitive and this instance the context was the role of a paid position in a programming role. Don't go too philosophical without setting up the context, preferably with examples. And then think if you are actually saying something non-obvious.
Hmm, interesting. Wonder what i'm actually doing from 10-7 every day in that case.
At least without any further elaboration, your assertion that it's not a job sounds dowright doltish and the following analogy irrelevant.
Calling him a troll and a douchebag is exactly the opposite of what HN is all about. Attack the idea, not the man or downvote and let it go.
HN is a pretty homogenous filter bubble after all.
> By the time Rockefeller died in 1937, his assets equaled 1.5% of America's total economic output. To control an equivalent share today would require a net worth of about $340 billion dollars, more than four times that of Bill Gates, currently the world's richest man.