620 comments

[ 0.18 ms ] story [ 1105 ms ] thread
> Developers are expensive. If a new IDE shows up and they can deliver stuff 5% faster, that means you can have 5% less programmers! Of course the IDE has a price, but it is almost certainly cheaper than 5% of a developer.

Dev work is nebulous enough that very few companies seem willing to invest in dev tooling.

I've heard nothing but good things about JRebel for example and how it keeps people focused instead of sword fighting during long builds.

I am aware of one company that uses it, and they only allow it for senior devs.

I’m aloud to pretty much expense any tool at work as long as I can justify it. I’ve never been asked to justify it, but that’s the rule. I think I probably expense a hundred bucks a month on tools.
Care to share which tools are these? I've been in the field for several years and can't remember the last time I shelled money for a tool. What cool stuff am I missing?
Mostly ngrok, grammarly (for documentation), postman and IntelliJ.
Please make a list for the rest of us and post about it.
If you just made all your programers 5% faster, they are each more productive. Now you should hire more programmers because there's a wider range of things they can profitably work on.
Yes, this.

There are a lot of engineers out there that spend a most of their time in meetings, or writing design docs, or reviewing code, or a few dozen other thing that are not actually writing code. Much of that can’t be automated away. If you could get a machine to do much of the programming, that just leaves you with more time to work on the harder problems the business has to deal with, which likely means you’re able to deliver more value, and thus deserve more money.

And just think about it, what were Cobol and Fortran developers paid way back in the day? Not nearly as much as an engineer with comparable experience and education as someone today. They were also far rarer in breed. Engineers are paid much more today because the better tools we have now make us more productive and more capable of unlocking business value. Paying an engineer $500K today is worth it if they’re able to unlock $5 million in profits.

Short of a dot-com burst I don't see a glut of software engineers. However, as the career prospects are better known there are more people thinking they want to be a software developer, will this increase the talent pool and decrease demand?
I feel like this has already been happening for years... probably longer than that. I find a lot of the people I work with were pulled away from other industries. Some industries are over-represented, like science, engineering, education.
I think amount of people who are capable of and willing to do software development is limited. Most "normal" people I know would hate the job.
I think the long term trend will be good for software people but I think something like the dotcom crash is due. There are way too many questionable startups only made possible by excessive investment money floating around. I was around in 2000 and once investment started drying up only a little the whole house of cards came down because a lot of companies "sold" unprofitable products to other unprofitable companies. I think the situation is very similar now.
I can't remewthe last time my job bottleneck was writing code to implement requirements.

The bottleneck is almost always migrating a legacy system, getting buy-in, interviewing users to design the system, or waiting on requirements to be finalized.

The bottleneck for me is always myself.

Getting started can be hard sometimes.

Getting into the flow of programming where code comes swiftly is tough.

Getting stuck on problems by trying too hard to optimize / design / abstract is common.

At the end of the day its really these things that prevent me from being a better programmer. I have nobody to blame but myself, yet nothing I do really seems to move the needle. Presence of mind and clarity of thought are both a fleeting resource. I have to strike while the iron is hot, and the iron is (unfortunately) not always hot.

Your honesty is relatable and refreshing.
I used to struggle greatly with ADHD, but recently got on Vyvanse and that was a HUGE help for me.

My older brother also struggled, but he got on Prozac for his anxiety and he has suddenly become a freaking SUPER HUMAN. I've considered dropping the Vyvanse and switching to Prozac because I have multiple friends and family on it, and the switch from before and after is STARK. And POSITIVE.

It is amazing to see someone who previously struggled with anxiety, to the point that I thought this friend DESPISED ME, to becoming a friendly pal of mine after he found a way to manage his anxiety (prozac).

Our brains are not designed to sit in an office and coax functionality out of a computer. We used to be hunters and prey creatures, and that lizard brain still lives in our bodies constantly reminding us of that a sabre-tooth tiger could be lurking nearby. Or that the other human across from you may try to steal your chance at successfully breeding etc...

Point being, humans have a lot of emotions in modern life that are not always helpful for the way we now have to live.

Interesting. I took prozac a view years back and it didn't do much for me, but I wonder if I was on too low of a dose (20mg). Can I ask what strength your brother is on? Also, I'll consider asking my Dr. about Vyvanse. I was diagnosed a long time ago with ADHD but haven't been taking meds because I don't like Adderall... something about taking an amphetamine for the rest of my life doesn't fit well with my generally sports / physically active lifestyle.
Epic Solar flare or some capitalist downfall is more likely than those lame-from-the-same-pre-2000 book of predictions that servers wouldn’t need IT staff as they get easier to manage (that didn’t age well!).
A lot of programmers work to automate and manage huge shifting businesses, saving sometimes 100x more than they cost. Many others work in effectively the entertainment industry: social media, actual entertainment, apps, and games.

I don't think the entertainment industry will ever stop: there's always someone with money and an idea to capture the world's attention. I don't think businesses will ever stop growing and evolving, therefore needing programmers to migrate and rework their systems.

Is this actually true? Are CEOs lamenting their engineering labor costs like this? I feel like by now the cost of engineering labor has demonstrated its value over and over again, to the point where most CEOs accept the cost of engineering is more or less a shared expense across competition, and not really something to be reduced.
Depends on where. Hearing the complaining openly at some companies. My former employer openly called American engineering salaries too high during all hands.
Well we have a couple of particularly vocal CEO here (Quebec, Canada) that are always moaning (sometimes on national television) about how they cannot find talent or that gaming companies "steal their talents". All the while they pay comparatively low salaries when compared to what you get working remote for US business. Worst case is when they IPO, they get a fat exit and the workers get nothing because company don't generally give equity here.
> or that gaming companies "steal their talents"

As a former developer in the game industry, I find that difficult to believe. The average career of someone in the game industry is ~3-6 years[1], as devs get chewed up, burnt out, and then discover that by leaving they can (usually) have greater work/life balance for about 50-100%+ more money.

I lasted about four years myself, and as much as I'd love to work on games again, I couldn't accept the pay cut or the long hours. So I just make games in my free time now. I may take a 3-6 month sabbatical at some point to work on it full time again for a little while, but it'll be my own projects.

They must treat their devs pretty poorly and/or pay garbage salaries there if gaming companies are successfully stealing devs away.

[1]: https://www.gamedeveloper.com/business/the-great-video-game-...

Most likely they are just lying
Unfortunately yes, especially companies that are not IT but have a fair percentage of IT employees and salary bands; they don't like to have different salary bands between functions, like finance, marketing, IT, logistics, HR, etc. so there is a pressure to keep IT salaries in line with the other functions. Even if the IT guy with 2 years in the company brings 10 times more value than the 2 year bean counter, "equality, diversity and inclusion" is interpreted like "pay all people on the same salary band the same", especially when in finance/accounting you have mostly women* and in IT mostly men and you want, as a company CEO, to eliminate the "gender wage gap".

* At least in my country for most, if not all companies.

These are the kinds of companies that can't keep good talent.

Then then go to consulting companies and pay above market to get someone like me in when they need new systems built.

(comment deleted)
Unless you've raised a ton of money, I see no way that a new company can compete at these prices. With one decent engineer going for $160k all in, there's no way to do that if you're bootstrapping.
The value of an engineer depends on the business. When software engineers are scarce, their compensation increases until the market has priced out sufficiently many potential employers. Those employers will then decide that they are better off not hiring a (good) software engineer than hiring one at the market rate, because the engineer does not create enough value to justify their cost.
In eastern Europe they are lamenting because any dev that can speak english is getting rates that they cannot compete with.
Right now developer salaries have greatly risen at the top end - the max has risen much faster than the median. Much of the top end growth has been at companies benefitting from easy investor capital.

I think this will follow a typical business cycle. When the next recession comes, investors and companies will focus on shorter term ROI, and many high end developers and long term projects will seem too expensive. Reduced competition will dramatically affect the top end, and non-salary benefits may drop quite a bit. The median salary will probably remain sticky but lose a bit when adjusted for inflation. Eventually the next expansion starts but it may take a very long time for the top end competition to heat up to this degree again.

I don't expect low-code, AI, or developer productivity jumps to have any real impact anytime soon; there's no real evidence of a true jump in the productivity of the overall project.

> I don't expect low-code, AI, or developer productivity jumps to have any real impact anytime soon; there's no real evidence of a true jump in the productivity of the overall project

I respectfully disagree. I don’t think those productivity gains will be evenly distributed throughout the industry, but I think AI and developer tooling will evolve radically over the next decade and programming in 2032 will look quite different for some. Things like Github Copilot are just the beginning. Once programming becomes a matter of operating the AI, there will probably be very different hiring strategies and incentive structures for developers.

It's certainly possible, I just don't see any real evidence for it yet. AI has a history of promising demos and then very long (decades) stalls in progress. I could be wrong, but I'm skeptical of the current round of AI as well. It will generate code in the same way as AI generates online articles or music - not very well.
I think that by 2030 we should have conversations that produce most of business software. Think of CLI + AI. There are already people working on this. My bet is on Microsoft or them buying winning startup
My experience is that the problem with producing business software is not the lack of programming knowledge. Rather it's a lack of people who understand the business and are capable of abstract thought and formalizing processes. I don't see AI helping with that any time soon.
But who will verify results of this conversation? Who will be the one to make changes, create changes, verify that changes are correct? Who will take blame if error happens?

Customer or user of this software?

Agreed, I see junior devs in their first job every semester. Some people with CS backgrounds, other with engineering backgrounds.

Software development sucks so much, folks waste ungodly amounts of time with trivial stuff like setting up their programming language correctly* or figuring out how to use undocumented libs.

I'm confident AI and investiment in dev tools will make programming much more accessible.

However, senior devs are another story. They are generally paid to make architectural decisions and solve weird problems. I don't see their salary bring affected to much by said technologies.

* Using dev containers made that A LOT better

Lawyers and doctors have always enjoyed “good times” and there’s no reason to think they’ll stop. Why not programmers, too?
Lawyers and doctors are certified by their respective boards and bars. Individuals who aren't certified can't perform tasks that certified individuals can without non-trivial legal consequences.

I'd say they aren't really the same.

Programmers don’t have to go to expensive law school or medical school. Programmers don’t have to pass the bar. Programmers don’t have to work 80+ hours a week for years in residency. Programmers don’t have to work face to face with infected people and put themselves in harm’s way.

Times are, imo, much better for programmers than doctors or lawyers right now.

That makes me think, doctors and lawyers have intensive training to minimize risk for other persons, each day our field has more impact on other's life, I wonder if we are heading to something similar...
> have intensive training to minimize risk for other persons > I wonder if we are heading to something similar...

We can't, unless there is like one standard CPU architecture, operating system etc for server, desktop, mobile phone with minimal updates....

how much to study and memorize, and about the zero-days..

Lawyers and doctors in the US effectively have union-style control on the supply of lawyers and doctors, via the Bar Association and AMA.

Developers have no such labor association. We also have headwinds like H1-Bs, that push down our wages.

H-1 is a good point. Where are the H-1 lawyers and doctors?
There are lots of H-1B doctors in the small towns and rural areas that are typically underserved by larger hospitals and networks.

https://www.americanimmigrationcouncil.org/research/foreign-...

> Just over one-quarter of doctors in the United States were “foreign-trained” as of 2017, meaning that they received their medical degrees from schools outside of the United States.

This is one of the challenges of the H-1B visa and that tech specialities are dominating the lottery it makes it more difficult for other areas to get doctors willing to work at, well, rural doctor rates.

if it's anything like where I'm from then you can't practice with a foreign license unless you convert it to a local one. the same organization that make a cap on the number of doctors/lawyers is the one that allows or reject the license conversions (permits). so foreign labors as a loophole does not work. when there were attempts to remove this the doctors went on strike. the justifications is removing the cap on number of doctors by allowing foreign labor would increase the variance in quality of the doctors and increase the risks to the patients.
Programming skills are more universal and don't depend on the country. Whereas lawyers and doctors have different standards and laws to operate on. It would be tough for immigrant to justify to spending 4-7 years studying laws of another country just to take a chance with H-1. If you fail to obtain that you virtually unemployable by your country and need to spend more time learning laws of you country
Perhaps eventually developers will organize one.
I don't think big companies will ever allow it. They're floating on bliss from being able to push in federal laws that exclude programmers from overtime pay. Places like Google would pay trillions to keep that going and push down wages more and more.
I think that's true, but the interview process for a SWE is (I think) unusually rigorous. I'm often surprised when I talk to my friends in other fields who get hired after 1-2 hours of get-to-know-you interviews. Meanwhile, almost every SWE job has 4-6 hours of technical evaluation proctored by the incumbents. It's true that if someone has done 12+ years of college, med school, and residency, you can trust a little more on their resume, but I've also turned down SWE candidates with impressive sounding pedigrees after seeing them bomb simple exercises.

Maybe we've figured out how to haze our way to exclusivity without centralized gatekeepers?

It's just a more inefficient way of gatekeeping because instead of doing the Leetcode gauntlet once and you get a license or credential that actually means something, you have to run it at every single company you apply to.
Developer burnout or attrition for various reasons is a real thing.

If salaries drop, even more programmers will leave the industry, so its a natural balancing effect.

Lawyers have not had good times since the GFC. Biglaw stopped being as lucrative and no longer needs legions of associates to grep dead trees.
Because they are smart and have built up huge barriers for entry. In contrast everybody can get into programming without any training.
In fact within our industry we’ve nearly normalized developers spending their own time and money to pull more entry level developers into the work force. I’ve participated in several weekend beginner bootcamp type things, donated money, and will probably continue to do so, but considering the incentives is interesting. Of course these bootcamp things get peanuts of sponsorship from whatever big players are in town, but the real sponsors are the volunteers that spend their own time on these things, and for what? Brownie points for helping beginners, or making tech more diverse, or so that tech companies have bigger, cheaper pool of labor? It’s cynical, but the tech biz really are masterful at propagandizing people against their own interests and distracting us from the fact that they have made the most absurd amounts of money imaginable.
Lawyers and Doctors have

1) Very stringent standards, particularly in Medicine

2) Doctors guilds control how many people get medical education

3) It's often 'nationally dependent' wherein skills are not always transferrable.

'Software Developer' can mean anything which has advantages and drawbacks.

I for one, wish there were some kind of 'basic general certification' frankly. There are so many 'not very good devs' I would like to just completely ignore people with out some basic qualifications.

The 'exams' might even require us to 'fill in some blanks' in our education because all of us have blind-spots!

It might be hard to do something like that from an examination level though.

Don't forget both lawyers and doctors also pay huge liability insurance premiums to practice.

And the licensure bars and boards also ensure some level of customer safety by having an independent agency to turn to in malpractice cases.

Actually AI will catch up to doctors and lawyers much faster than to programmers.

In addition, programmers have many more domains that they can switch into, however, once the AI lawyer or AI doctor will rise, it would practically replace 90% of the lawyers/doctors.

this is true for certain activities like structured information retrieval; legal opinion and binding decisions are not what is on the line.
Right. But most lawyers and doctors work (let say 95%) is routine work. The problem with fields like law / medicine, is that you invest heavily one time (I.e. at school) in a fixed body of knowledge (law or medicine) in order to enjoy life time of protected earning.

Note that the earning are protected mainly because you invested the time , and not because of some union.

The Achilles heel of those professions, is that the body of knowledge is constant, with very long half life. But this also make it ready for automation.

With AI, the destruction of those professions will be quick, as they will get destroy from the bottom. I.e. Even if AI make existing lawyers twice as productive, it would mean that you would need half the lawyers. If AI will make them 4x productive, you would need 25% of lawyers, etc.

With law I believe it can happen, but with medicine, not really.

Most visits to doctors it is not about only about the sickness (or information about what medicine to get), but about socializing and somebody inspect you and discuss with you. This part, the machine cannot do. It is what is called the doctor-patient relationship. If you think this is not the important part, I cannot disagree more with you.

I go to doctors only when I really need, but the pattern I see around is that people have a real long lasting trust relationship with the doctors they see.

Compared to law and medicine, programming is still a young profession. The field is evolving rapidly, and a lot of people are joining it. If the incentives remain as high as now, supply might eventually outstrip demand.
Lawyers weren't doing too hot about a decade ago, especially entry level. Part of the problem is that just about every university wants a law school. Revenue is similar to a med school, but with far lower costs to operate, it's basically free money.
That's not true for lawyers as far as I know (at least in the UK, I suspect the same applies elsewhere). There's an oversupply of law graduates, getting a pupillage/training contract is very competitive and fees are being cut.
I think it ends with everyone becoming a developer.

Making machines do things will never end. However, the tools for making machines do things is evolving very quickly.

The general art of being a developer will continue to get specialized and at some point specialists at any field would be expected to be able to program their machines.

Very few people are learning how to run their servers and much more are moving into AWS type of infrastructure and “cloud literacy” has become a thing.

I would expect layers of abstraction to continue to build up and programming to become something like using spreadsheets to do your actual task.

Eventually, “true programming” will scale back to building these tools. It would be rather niche, very high skill serious engineering - an elite, hard to get in profession that continues to fetch high salaries. They probably will have some kind of association similar to the lawyers/doctors, the code they write will no longer tolerate bugs as a fact of life but they will be responsible as any other licensed professionals. Skipping unit test will land you in jail or very high fine due to malpractice if something goes wrong.

I think it ends with everyone becoming a developer

Not in a million years. When I was 10 I got my first computer and spent 12-16 hours per day on it every day learning BASIC, 6502 Assembly and many other languages.

All the adults at the time thought, “this is how all kids will be from now on!”

Except none of my peers did it. The generation after me only had a small percentage of people truly interested in computers and it hasn’t grown much since then.

I’ve interviewed a couple hundred computer science graduates from top schools for jobs and the vast majority of them didn’t touch their first programming language until college.

And these are computer science graduates! A large percentage of the total population is outright technology hostile and proud of it.

>A large percentage of the total population is outright technology hostile and proud of it.

Can you expand on this? I was one of the CompSci because I loved it people - and find it hard to fathom this - and could use some insight.

I'm not the parent poster, but I see this as well.

I think the majority of folks are comfortable with Netflix and smartphones and social media, but these are dead-simple and mostly passive experiences explicitly designed for the lowest common denominator in terms of technical proficiency.

Beyond that, a lot of people kind of hate technology.

And why shouldn't they? It's fucking horrible. Stuff breaks easy and gets obsoleted. Social media is a hellscape and actively makes them feel bad, a steep price to pay for seeing pics from their nieces and grandsons. Everybody hates the shitty touch controls in their cars that require you to click through a bunch of screens instead of just twisting a physical knob. Tons of consumer tech is literally spying on you. Most of it is user-hostile in some way or another, and at a minimum everything is trying to get you to sign up to some subscription service and will also stop working as soon as the manufacturer loses interest in keeping those servers running so you never feel like you actually own everything. You can't even enjoy Christmas morning any more; it's five hours of software updates.

Oh, and Slack and other communication tools are the thing their manager uses to harass them every five minutes. I bet a significant portion of the American population experiences a literal spike in blood pressure and cortisol levels when they hear that Slack notification SFX.

There's a lot of cool tech out there, but consumer technology is a fucking nightmare.

How is not touching a programming language until college a bad thing? Some people just want to make a living out of software engineering and then go home and they aren't sweating over Web 4.0 or whatever we are on now.
18 is awfully old to start learning something for the first time. Imagine saying the same thing about math, reading, or history. It's harder to pick things up when you're older, and it leaves fewer people capable of it. See also: learning human languages.
This is the saddest thing I've read on this website. I hope for your own sake you allow yourself to learn new things in the future.
It's not about what you're allowed to do, it's about what professionals in a field need to do to get to the top.

I've been programming since I was 8. I've been drawing since I was 29. I will probably never reach the same percentile of drawing ability that I have with programming ability. That's okay for me because I enjoy it anyway, but from the perspective of training people to do their best work, starting younger can lead to higher ability.

people don’t generally tend to feel this way about training to work in medicine or hvac or law. or even language, really. obviously children learn how to use language, but training for a professional job as a teacher or a translator (or whatever) doesn’t start at age 8.
Kids learn how to read, write, and speak at least one language. Kids who learn two or more presumably turn into better translators. Potential lawyers have access to debate clubs and are trained in public speaking. I know one HVAC technician, and he's been working on cars and bikes with his dad since early childhood. Even doctors get taught biology.

I pretty firmly believe nearly anyone can learn to contribute in any area given enough time, but there's a lot of time between 0 and 18, and it's prime learning time when brain plasticity is high and responsibilities are low.

Is it really that controversial to say childhood shapes a kid's future?

No, the controversial statement in question was the claim that "18 is awfully old to start learning something for the first time" wrt programming.
It's late only if you want to become a top programmer. Top programmers are like top pianists, they start early and are very motivated.
I started at around 10, but there are plenty of programmers I look up to that didn’t. It’s an indication of intrinsic motivation and genuine interest, but there are plenty of people who find that much later.

Even today, 25 years later I feel like I learn things more effectively than when I was a kid. Certain types of skills benefit from experience and networked thought. Time per day/week is a much more limiting factor though.

it absolutely isn't in the context.

you start to learn maths in kindergarten. you don't start to program computers there, usually. there are very good reasons not to do that (screen time!), but it will make learning to program easier later in life.

Learning to program early makes later programming easier is an uncontroversial, anodyne statement. Saying that 18 is too late to start learning is, because that is discounting everyone who learns at that age or later.
I'd argue learning programming is a different skill compared to memorising laws or biology, it's math more than anything else (especially logic, set theory).

Lawyers and doctors basically need to memorise facts, apply rules and make deductions. Developers need to do that + math, hence why starting early helps you out, exactly like kids who did math or chess early on are better than their peers who started later.

There's a huge gap between what you said, which I think is totally reasonable, and saying "18 is awfully old to learn something new". Of course learning something when you're younger likely makes you better at it compared to starting when you're older, but an 18 year old is statistically not even through 1/3 of their life.

Not to even consider the amount of people who get into their trade at such a young age. I'll be honestly surprised if they make up any significant amount of the population, and I'm saying this as someone in that boat.

Of course we try new things. The things you learn as a child get internalized very differently than the things you learn as an adult though.
Most professions are learned and mastered after people finish high school, so that's clearly not true.
To add, some professions even require a certain age or previous, (unrelated) trade, like paramedics. They don’t teach teenagers to do certain jobs.
This is absolutely false. I became fluent in Japanese in my 30s. Learned guitar in my late 20s. This is so wrong. You can continue learning until you are dead.
Of course, but you are not likely to speak like a Japanese person - maybe you will, after practicing for a lot of time and assuming your native language had matching sounds to Japanese (I don't know about Japanese but there are some guttural sounds in Greek you won't be able to learn as an adult unless you've been exposed to them as a child). Meanwhile a newborn would learn to speak like a native Japanese speaker in 3-5 years.
> I became fluent in Japanese in my 30s.

Me too, but I will never reach close to native level of proficiency. It's fun but just that.

(edit: I started learning Japanese at 18. I'd say) I became fluent in Japanese in my late 20s. I'm close to 44. My wife is Japanese. I live in Japan. Japanese middle-schoolers (edit: ok, maybe high-schoolers) are more fluent than I am.

GP is not saying you can't learn. GP is saying you're unlikely to be more skilled than those who started earlier. Also, past a certain age, there's a more limited amount of time you can dedicate to learning new stuff.

I think the time factor is likely the most dominant when it comes to learning new things. The beauty of being a young learner is having much more time to do so due to having less responsibilities.
18 or any age is alright. In college we had a class coded IS100, which stands for "Information Systems 100". It was so basic that unlike the other 1st year courses that were coded 101, this one was coded with 100. In this class people will be learning how to operate a mouse, close a computer, navigate to a website etc.

Extremely basic stuff that was completely new to kids that grew up in a poor family that couldn't afford buy them a computer. This is in a country where college education is free or close to free, you just need to score high to get into a college and as a result many smart students who later become engineers learned using a computer there.

One can learn a human language later in life, you just need to have a reason to do it. Kids are better at language acquisition because they have strong desire to communicate with people in their environment. There is no magical LAD that makes it easier for children, they are just extremely motivated.

Adults can be motivated also, but the situations for such motivations necessarily decrease as they are able to do what they want without learning new things. They aren’t less capable of learning, just less motivated to learn. That is easy enough to fix (extreme interest is a good motivator, for example).

That's just incorrect. Children have increased neuroplasticity and will always outperform an adult in terms of language learning - not to mention you lose the ability to learn to make certain sounds after a certain age.
Critical period hypothesis is somewhat debated in linguistics. Children and Adults just learn differently. Children have far less inhibitions and more time. The second part of your comment sounds like pseudoscience. I learned German in my late 20s and speak to native speakers every day, where I live bilingual is the norm and a whole lot of people acquire second, third or forth languages as adults.
I started learning to program in college. I am an EE, so maybe CS is a bit different. But I remember how intimidating it was to be in a my first programming class with the kids that already knew "everything". So, I bought a C++ book and worked through it cover to cover. Honestly, I had caught up with most the kids that already knew how to program after a couple of semesters or so and helped a bunch of them with our programming lab. I am sure there are some exceptional prodigies that are way better than I am, but it is quite impressive what one can learn even at an older age if one puts time and effort in.
I think about the first “generation” of computer programmers, many of whom (e.g. Knuth, Richie) wrote software we still use today. At best you could say that it lends itself to a different set of skills. For example, scholars of a second language may know a lot more about its grammar and linguistics than even native professional writers. The native writer might never be able to translate their own work well after learning to speak a second language. There’s probably benefits to growing up “native” in programming, but there’s plenty of examples of people starting later and doing well.

I do know of too many people who have changed careers into programming to write off the likelihood of learning it after 18.

There are exceptions to the rule. I know good engineers who started quite late in life.

But in general, I don't see a deluge of kids eager to become developers. Still seems very niche just like it always has been.

The other thing that gets missed is people who start young are so interested in computing they have lots of adjacent knowledge.
I know good engineers who started quite late in life.

My experience matches yours exactly. Almost all of the good engineers that started late in life in my experience are just plain extremely smart and would excel at anything they did.

One friend that comes to mind wrote his PhD thesis in chemical engineering and then switched to being a software engineer. He is too motivated and too smart to fail at it even though he doesn't have what I consider that intrinsic spark that led him pursue computers at an early age.

Yeah: the vast majority of software engineering work is far from rocket science, and any reasonably intelligent (upper 50%? upper 25%? upper 10%?) person can do it.

To me the real test is mentality. The spark. You have to enjoy it enough to do it for 2,000+ hours a year. That seems rare.

It is not bad for the individual (one can become a decent programmer without playing around with programming in childhood), but it is bad for society and our education system in general. Programming early can add a lot of color and value to a child’s development.
How is not touching a programming language until college a bad thing?

I am the OP you're asking this of and I don't think first touching a programming language in college is a bad thing. And I also don't subscribe to the belief that learning has to become more difficult as you age.

What I was doing however was responding to the statement, "I think it ends with everyone becoming a developer". The reality is that almost all people have no interest in becoming a software developer. Most software developers have no idea this is true, but it is. This doesn't make most people's lives less valid or make them "dumber" or anything else pejorative - they're just different.

On the one hand you have people like me who stared fascinated watching my 5th grade teacher program a VIC-20 in Commodore BASIC that led my parents to invest a giant sum of money into buying a Commodore 64 for Christmas when I was 10. To give me a 300 baud modem when I was 13. I couldn't afford to buy computer books in the mall bookstores so I would go to a "book warehouse" near me as often as I could and I tell you I would literally get butterflies in my stomach as I approached the computer book section. I wrote my own BBS program at 14. In 1988 I read the Waite Group's Turbo-C Bible cover to cover repeatedly.

There are people out there who get just as excited about and have as much proficiency with bass guitars. I have a good friend that is like that. I respect his ability and interests as much as I hope people respect mine.

> Except none of my peers did it

That's a good point. I still remember how excited I was writing my first app in BASIC at school:

    What is your name?
    > John
    Hello John!
I was so excited I tried to copy the program on a floppy disk to play with at home but I could not figure out why it didn't work. I now realize the school used Apple II's and my parents had a PC at home.

I've always thought because today's generation grew up with smart phones, tablets, and ultra realistic games no one would be interested in getting started with coding. But reading your comment I realize the whole school was exposed to the same class and very few of my classmates would go on to major in CS.

> I’ve interviewed a couple hundred computer science graduates from top schools for jobs and the vast majority of them didn’t touch their first programming language until college

In the US?!

This is something I've realized as well. There's only a few of us that are excited to do this work and that's what you need to do it longterm.
(comment deleted)
The problem is, at the end of the day, business logic needs to get encoded in the program. So all the abstractions cant abstract away the domain specific "if else" statements. Infrastructure itself will be a solved problem, and we will implement interfaces like serverless lambas, but it still remains, the logic of the business needs to go in the code. OOP itself is meant for building relationships between sets of business logic, and coding that, as has been discussed, always ends in complexity and needs thought
It's not only that we need to code the business logic in a programming language. To a degree we must also design those business processes. That is programming too, programming your people.
(comment deleted)

    I would expect layers of abstraction to continue 
    to build up and programming to become something 
    like using spreadsheets to do your actual task.
But in general, people have been saying this for 50+ years.

It hasn't happened yet for (at least) two reasons.

1. Increased demands on programmers have increased at least as quickly as their productivity has skyrocketed.

2. Non-trivial systems will require some non-trivial encoding of business and data logic. You can simplify the tools all you like, but at some point the tools are no longer the limiting factor and some complex logic has got to be dictated to the dang computer, somehow, by somebody. It is then going to need to be tested and deployed. It is also going to have to be built in ways that are maintainable. Most programmers struggle with these things in 2022; we are nowhere near making this easy for laypeople. If anything I feel that infrastructure has gotten way more complicated in the last 10 years.

Something does need to change. The current situation is unsustainable, with programmers commanding insane salaries. At some point it becomes a limiting factor on the economy.

But our tools are decades away from being usable by non-programmers. I see no possible solution besides increasing the supply of programmers.

Just because it has not completed doesn't mean it isn't happening. These days very small number of people know how computers actually work(how many know assembly or even C?) but there's a huge number of people building their businesses by programming machines do things.

In the last 20 years, people were using languages close to English to express their ideas to a computer and make it do work. You touch computer science stuff only when you dive deep in something that hasn't been commercialised completely and when the market is large enough it quickly develops into services where you tell the computer do things in "plain English". The cloud is a good example where 20 years ago you would have to understand the architecture of server systems and networking, these days it's just a form you have to fill and express some rules about accessing the resources in "plain English".

Similar abstractions have been happening everywhere, from AI to game development or graphics generation everything is so abstracted that all you need is to learn the tool through a few tutorials to be productive.

Many people start from the high level abstractions and dive deeper later on since many years. You first build your multiplayer game, make some money and then maybe you learn about stuff like DNS, TCP/IP. That's only possible because networking and server management is completely abstracted and the game developers only interact with the cloud provider's SDK that handles all kind of edge cases and optimisations.

This seems perhaps an idealistic take on how effective the layers of abstraction are.

To examine just one of the examples >> these days it's just a form you hav to fill and express some rules about accessing the resources in "plain English".

I'm of the opinion getting the cloud to run your systems effectively, and without blowing a large hole in your budget, may be a little harder than it seems from that sentence.

Because when you configure your AWS like this, you get public buckets and so on. With private datacenters, Dev Ops can mean Dev can be responsible for their own stuff; with AWS, DevOps is there to keep dev from sending all the company data to the whole world.
as far as expressing things in plain english goes, id think of the various voiceboxes. i can get the computer to turn my lights on and off using plain english, along with some other things
Those are simple states - binary on/off states for the lights, etc.

It falls apart fast when you start trying to explain actual engineering stuff in plain English: iterations, complex nested conditional logic, error handling, massaging and sanitizing data, etc.

You could describe each of those steps in English, but what have you gained at that point? You've still had to express all of the same exact complexity, but you've done it in a language that is far more clunky than a programming language designed for the task.

It's like trying to tell a musician how to play one of Beethoven's symphonies using English instead of sheet music. Even if you could, why? You've expressed the the same exact thing, but in language that is orders of magnitude clunkier.

Oh yeah, I remember people saying that about SQL a long time ago. People wouldn't need database engineers any more.

Same with Visual Basic. No more application developers. Just drag and drop!

You might ask yourself why VB6 or Delphi didn't simply rule the world forever. We had those ~25 years ago and with those tools, non-engineers could drag and drop their client/server database-CRUD apps together. Hell, you could do most of that stuff in FoxPro or dBase even earlier, minus the GUI.

    You touch computer science stuff only when you 
    dive deep in something that hasn't been commercialised 
    completely and when the market is large enough it 
    quickly develops into services where you tell 
    the computer do things in "plain English".
You're fantasizing away the enormous middle ground of development work that lies between "hardcore computer science-y stuff" and "things non-engineers are able and willing to accomplish."

The "plain English" bit is hilarious. Human languages are extremely imprecise. That's why we have specialized "languages" for lots of things: math, music, etc. Maybe you are living in another universe where AppleScript took over, I don't know.

Ask yourself if "plain English" tools have replaced engineers in other specialized disciplines. Can I tell my keyboard to write me a song in "plain English?" Can I design an airplane in "plain English?" Can I build a bridge in "plain English?"

    These days very small number of people know 
    how computers actually work(how many know 
    assembly or even C?)
Sure, only a small % of work requires low-level languages, or knowledge of how a CPU works.

But the bottom line is, somebody needs to describe complex processes to the computer in a very precise way that handles lots of edge cases, filthy data, errors, etc.

At some point, somebody has to write that logic and if there's more than one person doing it they'll need a development pipeline of some sort. And they'll need to do it in a maintainable and scalable way.

The tools are generally not the limiting factors here. You could replace Javascript and Python and Ruby with world's friendliest, code-free GUIs but you'd still have to describe those processes in an equal amount of detail and do it in equally maintainable and scalable ways, and I doubt it would be as terse or as expressive as the aforementioned languages.

    Similar abstractions have been happening 
    everywhere, from AI to game development 
    or graphics generation everything is so 
    abstracted that all you need is to learn 
    the tool through a few tutorials to be 
    productive.
I am not denying the power of these tools. However, I see these more as "opening up new avenues" as opposed to "eliminating the need for all kinds of nitty gritty development work that actually makes businesses go."

Drag and drop all the sweet zero-code shit together you want in Unreal Engine; somebody has still got to sanitize and massage the weirdo sometimes-broken JSON that our partner's API likes to return sometimes and handle the error states when it can't be fixed.

I much agree with that the complexity is the limiting factor and you probably will need specialized people to model and design not only what the computer does but how the humans and computer co-operate. When you're programming you are not only programming the computer but also the people who use your application(s).

Describing and designing and validating asynchronous processes is especially complicated.

Yes, at least at scale, BASIC is hard!

It's a wolf in disguise due to all the "easy" English words, words that of course need to be put in the correct, often grammar-violating order so that nothing is won anyway, for the compiler to make sense of the instructions and intent. You end up getting a language design that places more importance on a bastardized form of English like a text-based adventure game, rather than being a good map to the problem space that doesn't get in the way like a bumbling fool.

Yeah. I cannot believe that the "describe things to the computer in English" fantasy exists in 2022. At least from folks within the industry; it makes sense for laypeople to ponder it.
Something that I think about, is that we live in the greatest tech driven economy in the history of humanity, and it grows at a rate of about 2% per year. What I don't believe is that every programming activity contributes equally to that growth. By "activity" I loosely mean anything from a solo programmer to a large software business. Some are assets to the economy, others are liabilities, yet they pay the same salaries either way.

Economic growth is close enough to 0%, that a decent rule of thumb is that whether any specific activity is an asset or a liability to the business that engages in it, is a coin toss.

This is reflected in comments made by developers themselves, to the effect of, "I don't know why we're doing this, it's going to cost a lot of money and make things worse." These kinds of comments are about projects that they're working on themselves.

Could also be that much of the work is zero-sum. For example ads to some extent just shift consumers from one company to another without actually creating anything (although, some might cause new demand). The stock market is exists to allocate resources more efficiently, but some of the shorter-term stuff looks more like pouring a ton of math and software work into coming up with better gambling strategies...
> coming up with better gambling strategies...

"better gambling" means better predictions of the future. this means making use of all available information, which means higher market efficiency.

It's not useless to do better in the stock market.

It's hard to say, because so much of the work of keeping a company running is so far removed from income generation or anything else.

Does cleaning the company toilets contribute to the company's growth? I mean, not really, but on the other hand if nobody ever does it then it becomes an impediment.

A lot of programming work is like that.

with work from hone,everyones responsible for cleaning toilets, rather than having a dedicated cleaner
> "I don't know why we're doing this, it's going to cost a lot of money and make things worse."

I'm a step outside the domain so not totally confident in my own cynicism, but I feel like this phrase could be applied to practically every B2B startup I hear about these days. Selling CRM, project management and time tracking tools to (mostly) other VC-funded companies is just a way to skim more cream out of the economy without adding any true value.

I try not to judge individuals for working in these places; working at AWS I'm hardly in a position to throw stones. Increasingly though I am dismayed by the lack of real, society-enhancing jobs available to highly skilled tech workers in the sea of mediocrity and rent-seeking.

You better not look too closely at the rest of the economy then because most of it looks like that.
You mean we don't need 5 different grocery chains at every highway crossing selling the same 100 products under 500 different brands from 5 companies?
Competition between profitable businesses is one thing, loss-making startups paying 6-figure salaries for shitty tools is quite different - particularly when the latter company ends up with a billion-dollar valuation for reasons totally divorced from actual worth.

   every B2B startup I hear about these days. Selling CRM, 
   project management and time tracking tools to (mostly) 
   other VC-funded companies is just a way to skim more 
   cream out of the economy
I think it's OK to an extent. Not all of those apps are good, but the best of them do enable businesses.

   I am dismayed by the lack of real, society-enhancing 
   jobs available to highly skilled tech workers

I think the root problem is a lack of developers. The resulting crazy high developer pay scale prices smaller orgs completely out of the game.

We need to increase the supply of capable developers.

> Economic growth is close enough to 0%, that a decent rule of thumb is that whether any specific activity is an asset or a liability to the business that engages in it, is a coin toss.

Well, you completely forgot about depreciation.

> 1. Increased demands on programmers have increased at least as quickly as their productivity has skyrocketed.

So does anyone know what the most productive programming tool is then?

I think it's the code library. You import stuff and use it right away, without needing to know 99% of the internal details. That has empowered us to do amazing things quickly. But having to deal with 100,000 libraries has become its own problem.
I think this tends to overestimate the amount of time folks who aren't developers want to spend developing. Most spreadsheets, even of the complex variety, exist as steps in a chain of human decisions -- they basically replace notepaper and calculators. (Spreadsheets that act as inputs to software chains are usually created by developers.)

Having previously been involved in architecting and building enterprise low-code/no-code solutions, and then working as a strategy consultant thereafter (including partnering with other major low-code/no-code vendors), I can say that what the business wants to do is sketch out the rough plan of how a process works (with a couple of exception states) and have someone else go through not only the implementation, but the hard work of dealing with all the error states, data cleansing and ETL, deployment, and monitoring, while they get on with the hard work of actually doing their jobs. There just isn't an appetite for people to do two jobs at once.

What the article seems to miss is that companies are currently being much more aggressive in nearshoring work -- there's a huge boom in Mexico and LATAM development that's pushing up salaries there (as has happened in Eastern and Central European states). One thing that's distinct from the offshore boom is that, if you weren't a major consulting org, your offshore folks probably weren't colleagues, whereas with nearshore you're much more likely to see them integrated into the organization (again, due to TZ and the ability to fly someone in at the last minute for meetings). It'll be interesting to see what this does to the Mexican/LATAM economies -- Costa Rica, for example, with only $5mm people, punches way above its weight in software services exports.

Couldn’t agree more with your second paragraph. A phrase that’s been drilled into me in the past year is “undifferentiated heavy lifting that’s not core to your business”.

The things you listed just don’t matter from the business point of view. They don’t care how the app works, who runs it, what cloud provider is hosting it, what tools were used to build it, only that it works when it needs to and they will happily pay the bill so their employees can focus on making the company money doing what they are good at. Zack Kanter from Stedi talks a lot about this.

We humans reject the concept of exponential growth, specially when it can kill our way of life, and in that sense developers don't realize that 80% of our work could be automatize in the next few years.

I've been in the industry for more than 20 years now, and what's clear to me is that a lot of time is spent coding and debugging things that have been done previously plenty of times (Non Invented Here syndrome) and that in most cases are not core to our companies.

What I expect it's not so much things like Copilot or AlphaCode (that of course will be used) but serverless services that we'd plug into our solution (how many more login services do you want to implement AGAIN?), like we do right now with APIs, but at a higher level, with a standardized communication protocol between these services.

The same will happen the infra level, with only a few people creating and mantaining "low level" solutions while the rest of us will use abstracted services on top of that, like using Cloud Run instead of learning a massive APIs like k8s (I'm not saying that they're comparable right now, but at some point something evolved from Cloud Run will make learning k8s unnecessary)

What will happen once developers are freed from the most time intensive aspects of their job? Probably and for a few years the unmet demand for developers will cover our increase in productivity, but at some point I expect this job will face some of the problems you can see in other sectors.

You don't need fancy AI to make us unemployed. Just back to basic would do. You list complex solutions which would just need even more programmers to maintain.
Was coming here to say this. Every time a more sophisticated system has been built to replace a simpler one, it requires MORE programmers, not less.
Ye. I think there is way to much "automation" nowadays.

It is like all these business systems corparations use. They would probably be better off with some secretaries with typewriters sending internal paper mail.

Systems that try to automate too much are too rigid to use in a sane way.

The nice thing with a no computer system, is that if you want to do something, just do it. An analogue would be writing math notation on paper or on a computer. I can hardly imagine even Knuth prefering the later.

Computers should be used for well defined tasks they are good at with rather simple programs, or the whole business need to adjust to what the computer allows.

Well, I think that the demand of developers is not so much because of the increase complexity of systems but because a lot of companies think they need developers, when they only need technology, and a lot other think than just adding more devs is the solution (the hyperinefficiency of the hipergrowth companies is at this point legendary, as the guy earning $1.5M/y getting and losing - but getting paid nonetheless - multiple tech jobs at the same time proved)
We are used to the Jevon's paradox. It must end at some point, but AFAIK there is no way to tell if automatizing 80% of our work will put us out of jobs or increase our salaries.
While this seems intuitively true, it seems to me like the opposite is happening. Every advance or increase in technological efficiency creates exponentially _more_ demand for developers. Think about every tool and library that comes out; all the JavaScript front end tooling which made things “easy” has created literal armies of front end engineers. Even going farther back, think about Java, PHP, C++, all these came out to make developers lives’ easier and ended up creating more and more developers. We can even see it in the invention of the concept of high level languages over machine code, that’s also a human simplification.

Personally, I don’t see the train suddenly stopping and going in reverse anytime soon.

Nocode tooling available today is already extremely powerful.

That doesn't mean non-technical users can really leverage that abstraction well.

What I've seen is that the abstractions give the most leverage to developers and developer adjacent people... Think people who started in comp sci, but don't really enjoy writing code.

I have more hope in education improvement than tooling improvement. There's that famous study where it was found most people can't communicate the difference between xor and or. If you can't do that then you can't read/write specs even for yourself.
Re: cloud stuff, sure I do less management of physical machines, but because I understand how stuff actually works, when I worked at an AWS shop, I was the go-to person for debugging and fixing problems with compute or network. And because I can write understandable code, I was able to move the infrastructure from point and click to repeatable terraform deploys that actually have a chance to fulfill the promise of cheap and scalable infrastructure (rather than rebuilding "every CPU is sacred" but in the cloud). Clear thinking, applying the power of "make the computer do it" and knowing how stuff works is always going to be super-useful, as everything turns into software.
In a few thousand years, programming will be a forgotten profession and only program archeologists will remain to scavenge code from the past into uses for the present. At least that’s what Verner Vinge wrote in one of his science fiction books.
> only program archeologists will remain to scavenge code from the past into uses for the present

You mean CODEX like AIs?

The question is, how? Computer literacy has already peaked and the body of knowledge one needs to understand to make a difference is steadily going up.
> I think it ends with everyone becoming a developer.

Unless we get genetic modification tech to improve abstract thinking skills and other traits, it's as likely as everyone being able to become a painter, a musician, a diplomat or a mathematician.

The super volcano under Yellowstone explodes, triggering end times.
>> The CEO’s job is to make as much profit as possible. Higher salaries mean less profit. It’s just how the game works.

I find this to be too simplified. The CEO's job is far beyond salaries alone.

>> Even if we enter some new dotcom bubble and a good chunk of our startup ecosystem dies off, demand for tech is spreading across all industries, businesses everywhere are digitizing their operations and these systems will need to be maintained somehow.

We're not in a bubble. We are in the information era, and cloud computing is helping drive this. The demand for programmers will go away when the human population saturates on robots and AI. We've barely scratched the surface.

The only other possible downturn I can think of is a social reaction to reject technology, and enter another type of 'dark age'.

What about when everyone becomes a programmer (now) and starts a race to the bottom?
I don't think everyone will want to become a developer, and it's not a job just anyone wants to jump into. Compare this profession to say, the legal industry (the first example I could think of), where being a good lawyer/barrister is a high-paying profession. The law career may have a saturation point and regionally limited, but it still exists and pays well in certain situations.

I could see entry-level developer job salaries drop, but rise rapidly with experience. That would be my first indicator of a market correction.

Not everyone has the cognitive ability to become a programmer.
You don't need to be a genius to be a programmer. Yes, some people aren't capable of it, but there's a lot of middle ground. Being capable of being a programmer is more about disposition imo than intellect. I've had at least 2 people I don't regularly talk to ask me about getting into it as a career switch, and I say that it's fine, but more miserable than you'd expect.
I don't see it happening because I mostly see business people who don't even want to compete with me.

They just don't care about the same things I do care about.

I see people don't even care to spend 30mins on learning how to use their computer in a better way that would save them hours of clicking.

> We're not in a bubble. We are in the information era, and cloud computing is helping drive this.

We're not necessarily in a bubble, but perhaps there's some foam?

There will be a plethora of programmer jobs for some times go come, but we've also gone quite a while without a meaningful market adjustment, if you will. A point may come where global politics force the industry to be far more regulated than it currently is, and the days of being a self-taught coder with no degree and a poor understanding of security may come to an end.

Maybe that doesn't happen, but if it does, I see lots of jobs disappearing and evolving into new ones, and a fraction of people in software deciding it's not worth it anymore. The world has only just started to truly realize how we effectively control information, and if the sentiment towards Silicon Valley gets worse then there may be more calls for regulation and new regulatory bodies; in which case jobs may open up within that new bureaucracy.

That hypothesis is irrelevant if the industry was operating at a moderate pace. There's a lot of money still coming from somewhere, and backpressure can create a wave that pushes revenue back in the opposite direction, if even briefly.

> There will be a plethora of programmer jobs for some times go come, but we've also gone quite a while without a meaningful market adjustment, if you will

We just went through a massive market adjustment. COVID forced a lot of layoffs and hiring freezes in March 2020 (even in tech) and all the COVID-boom stocks like Zoom, Peloton, etc. have all crashed 50%+. Valuations in private funding are being cut as we speak due to interest rate changes. But salaries for senior engineers have only gone up.

> self-taught coder with no degree and a poor understanding of security may come to an end

This was never a common outcome in the first place, despite what blogs and bootcamps might have you believe.

Just saw an article earlier about google lowering salaries in some state.
Exactly, this is real progress, we are automating whole swaths of our business sector and it’s making us way more productive and profitable
Yeah, it's an idiotic, 1-dimensional proposition in a game of n-dimensional chess. Tech employees are competition for a company's profit after all the other companies trying to commoditize their complements (https://www.joelonsoftware.com/2002/06/12/strategy-letter-v). Starting with AWS. Treating programmers as cost centers was precisely what hindered the previous generation of companies in competing with tech.

There may well come a time when a company can compete for gross margins without competing for tech employees. But it'll require a case more rigorous than this blog post.

I actually think high quality programmers will always be in high demand. Poor programmers will get found out sooner, as the general population becomes more technical.
When will they become more technical though? My kids are far less technical than I was, and their friends as well. Try as I might, they simply aren’t interested. Is some other part of the population experiencing some kind of technical advancement amongst their kids? I don’t see it.
I think there was a generational sweet spot.

That is the first generation where computers were affordable enough to be 'personal computers' and in the home.

Before then kids weren't able to be exposed to computing early enough, and after then games became shrink-wrapped so kids didn't have to become technically minded to get their games running.

Children growing up with a computer at home were doing all

The general population isn't becoming more technical though, as an example almost everybody drives cars but most people aren't mechanics. People see cars and tech as a means to an end, which is perfectly fine for me. They just want to get their job done.
In the same way that giving IPads to grade schoolers does not make them more technical.
This is such a childish view of the matter. Imagine if a scribe in medieval times wrote an article. "Times are great for people who know read and write now. How does it end?"
I don't see your point. I'm sure it would have been very interesting back in 15th century to investigate the impact of continued literacy among the populace and its effect on various power structures: religious, economic, and political. Today we know the answer so obviously in hindsight it seems obvious and maybe trivial, but I don't think it would have been at all trivial back then to investigate the matter.
>> The CEO’s job is to make as much profit as possible. Higher salaries mean less profit.

Such a silly reductive view, if this was the case Facebook/Meta engineers wouldn't be some of the best paid in the world.

Everyone in the US or a wealthy country pushing for 'remote work' is outsourcing themselves, ultimately.

In the short term we get 'remote work' which some see as a benefit.

In the medium term, absent the apparent advantage/willingness of people to be 'on prem' (in the minds of employers), it's just as easy to hire someone at 3/4 price from Europe, 1/2 price from E. Europe, 1/4 the price from India.

While 'language and custom' do present real challenges, let's not kid ourselves: the CFO can use very, very powerful language to push for 'offshoring' because they will talk in terms of 'raw dollars'.

The 'advantage' of devs. from wealthier nations is abstract. Their costs are not.

In much the same way companies made a fairly narrow choice to jam everyone into 'open work spaces' - which drives a lot of people nuts and I think harms productivity, but is quantifiably cheaper ... companies may opt to 'cheap out'.

Many will.

I'm wary that the material realities of on/off prem, language, culture, time-zones, communications etc. will be lost in the mix.

This framing of "cheapening out" or "The US and other wealthy countries" is a little bit behind the curve. Tech talent physically moves frong HK to the mainland nowadays, The salaries in some Eastern European countries are higher than in Portugal or Spain.

It's not cheapening out as much as it is diversification at this point, and give it another generation and it'll simply be people having the choice to work anywhere in the world.

Companies don't just 'outsource' any more but primary want a presence and access to incredibly large markets with domestic talent.

You're completely ignoring Canada and Latin America. Good luck dealing with timezones and language barriers.
If it ends, it could end with companies asking for more experience. Everybody in the current group would be okay but new grads would find salaries lower.
> Much of the demand for programmers right now stems more from expectations of future profits than from profits being currently made.

That's a big assumption to make.

Many very large software companies are making handsome profits. We will probably see changes in software employment if that fact changes.
I've been hearing op topics, exact things more or less, in differen shapes or forms for over 3 decades. And yet here we are.
Regardless of whatever trends exist now, every programmer must spare a thought about their future. Ageism is common in this industry. No matter how great a programmer you are, you will be eventually discriminated. And this area of work is notoriously famous for giving people age related diseases.

If you have a gravy train going for you. Ensure you plan your retirement well, take care of your diet, exercise and relationships.

Nothing really lasts forever, even if does for a community, individuals always run out of luck. Instead of thinking of yourself as a superman, imagining yourself as a mortal with limited resources, time and luck will have you better placed for the future.

YMMV.

Author seems to have a zero-sum world view, and think that everything that goes up must come down. I personally don't believe in either. Tech workers will continue to be in increasingly high demand, and automation, AI and "no-code" or "low-code" will only intensify that trend, not diminish it.
Agreed. Especially around three to ten years after the no code solution is implemented when it needs a full rewrite in order to do one of: decrease vendor lock-in, satisfy audit requirements (i.e. meaningful peer review), incorporate professional change management, or scale beyond what the relevant no code framework was designed for.
> think that everything that goes up must come down

It doesn't take a pessimist to be remember Newton's apple.

No, but it does to nonsensically apply the same rule in literally every context. People and programmers are not apples. The economy and society are not gravity. I don't know what else to tell you, and I guess it doesn't matter, since people with a zero sum world view can't be convinced otherwise.
There's a difference between believing there is a zero sum world view, and observing that every economy that has ever existed has generally operated on boom and bust cycles.
I don't think anyone is disputing the economy has boom and bust cycles. But despite the great depression, two world wars, the cold war, the dot com bubble, the 08 crash, insane environmental destruction, climate change etc etc the economy is growing, the global population is growing, and rather than more and more people fighting over less and less resources, pretty much everyone everywhere is healthier and more prosperous than ever, and extreme poverty is on track to be completely eradicated in our lifetimes. (this doesn't mean there aren't exceptions, or that there isn't still lots to do to address climate change, global economic and health inequality etc etc, but it does prove the peak oil doomer zero sum world view people wrong)
We have been living at the sufferance of zero interest rate policies for the last dozen years. It's hard to say what happens when the music starts slowing down.

It just sounds like an extremely hubristic statement, mocking the very fates themselves, to claim that unlimited economic growth will continue indefinitely, that this era of cheap capital will continue indefinitely, and there wouldn't even be one economic downturn or hiccup to disrupt the gravy train. This is the stuff that "things that aged poorly" is made of. Optimism is one thing; irrational exuberance is another. I would rather not laugh in the face of whatever the Fed is planning to do about inflation.

Hell, this was published just hours ago.

https://www.bloomberg.com/opinion/articles/2022-02-20/federa...

Literally no one is saying there can't or won't be downturns or hiccups - eg, two world wars definitely qualify as both. But even they couldn't stop the overwhelming, hundreds-year long global trend towards simultaneously increasing population AND prosperity. (which, btw, definitely did not have zero interest rates) But hey, don't take my word for it, see for yourself at eg https://ourworldindata.org/extreme-poverty
Then I simply disagree with your framing of "everything that goes up must come down", which seems to ignore the existence of downturns and hiccups, and "tech workers will continue to be in increasingly high demand", which would be a much more questionable statement during such a downturn or hiccup. Such an economic slump would not be a pleasant time for anyone, even tech workers. It is good to be on guard against such an eventuality.

It’s also quite the fallacy to compare overall economic growth with one sector, or even one region. Ask how the Rust Belt has been doing these days in comparison to when Detroit was at its acme.

For people that are entrenched in the industry, 10+ years of experience, specialized skill sets, etc. I really don’t think the genie will be put back in the bottle. The people that will be burned the worst are newcomers or people with narrow skillsets in areas that fall out of fashion.
>The CEO’s job is to make as much profit as possible

It doesn't have to be, especially if the company isn't public. Their job is to run the company successfully. Part of that is keeping their employees happy and retaining talent.

>If a new IDE shows up and they can deliver stuff 5% faster, that means you can have 5% less programmers!

That's never how it works though. As workers have become more efficient they have been required to output more and more.

Overall a lot of claims in this blog are unsubstantiated