If you said "hey I'm bored let's add more squares. Let's move some pieces around or maybe change their movement rules" or "let's play checkers instead" then a human could adapt to this situation pretty easily. A reinforcement learning model like AlphaZero would be like "Whoa whoa whoa not so fast. Let's fire up the GPU cluster." Maybe one day we won't need GPU clusters. But ultimately we're the ones who create all of these tools and decide how to use them.
Why do you treat humans so very different from AlphaZero here? Alphazero could badly play other games quickly, just like humans can. AlphaZero is just able to improve beyond what any human can ever achieve for a lot of types of games.
You don’t always need to have a point for your artistic activities or your hobbies. For example , people still use oil paint while photography exists, people learn piano when a computer does it better.
But professionally, we may have to find new activities.
I honestly think a lot of people in their twenties already do this. They’re not making much money but seem to be making enough to just have fun and pursue other things.
My brother has figured he can make a great living out of gardening for people. Yes robots will probably do this one day, but will they to the same level ? Really who knows anymore?
I’m actually sure a lot of the more wealthy people he works for kind of also just like him and his company too. He’s a youthful fun guy with a lot of creative ideas.
The silicone value push for eternal life via the singularity and trips to Mars seems to be mostly fuelled by cults and the need to keep shareholder happy / profits coming in.
I don’t know if anyone else cares that much, including the bots themselves. Time will tell.
I'm the author of the post. I didn't feel any need to add a disclaimer, because if my book faded to insignificance tomorrow I'd still argue the same points.
It's really clear how useful these tools are to many experienced programmers, but I have no idea what impact they'll have on people who are new to programming. Most of the write-ups I've seen so far have been from people who already know how to code. I think it will be some time yet before we really see how effectively people who know nothing about programming are able to use these tools for learning.
> I'm the author of the post. I didn't feel any need to add a disclaimer, because if my book faded to insignificance tomorrow I'd still argue the same points.
You need the disclaimer. The reason why is because no one can read your intentions, they can only guess your intention from your actions.
By waiting until a 3rd party disclosed this information a little bit of trust was automatically lost.
> I didn't feel any need to add a disclaimer, because if my book faded to insignificance tomorrow I'd still argue the same points.
I believe you, but this really isn't how maintaining credibility with a conflict of interest works.
You also don't have to add a "disclaimer". Just mention anywhere that you wrote a book on programming. You can say it abstractly like that if you don't want it to be an ad. Considering how much this experience informs your argument, it should be pretty easy to work in.
And thank you for your book. I've recommended it to many people.
I was really surprised by people's reactions about the need for a disclaimer, and didn't know what to make of it for a while. I also watched the votes on my comment here go up and down quickly, indicating that some people thought a disclaimer was warranted, and some thought there was no need.
I ended up doing a lot of reflecting about the comments people made. I think I've gotten used to writing for an audience that already knows that I'm the author of PCC, and I start to assume that anyone else will see that quickly as well. Do I really need to add a disclaimer any time I write about the process of learning to code, or its ongoing relevance? I'm not asking anyone to respond to that, especially on an old post, but that's the question that I kept coming back to for a while.
I realize that a post like this, shared with a larger audience, at this point in time, warrants a disclaimer. I've been a member of HN for over ten years, and I value my reputation here. I'm sorry if I misled anyone as they went into reading this post. I didn't add a disclaimer right away because I've made a habit of not responding too quickly to feedback on the internet when I'm not sure exactly how to respond.
I ended up adding a disclaimer, but that was well after this had dropped off the front page. I didn't put off adding a disclaimer to mislead anyone, it just took a while to think through all this. I will be more careful about which posts need to include a disclaimer from this point forward.
I know few people will see this, but if anyone sees the surrounding comments after the disclaimer is there I'd like them to see this context. Thank you all for the critical feedback. As uncomfortable as it is sometimes, it's part of what I've always appreciated about HN.
I found myself thinking that yes, you should still learn to code, but no you probably shouldn’t bother to write blog posts about why you should still learn to code.
Honesty I think tools like GPT are going to cause more people to learn to code, not less.
I've been using GPT to write very simple utilities in languages I am unfamiliar with, and for me, there's no faster way to pick up a language then to see an example program where you already know exactly what it does.
(Or is supposed to do, finding the small mistakes that GPT sometimes makes also helps learn things, ironically.)
Yes exactly. I had a specific project in mind, and ChatGPT was able to give me step by step instructions how to build it. It’s like having a private tutor. That’s transformative for folks like me that struggle to get through generic 12 week courses, but want their learning experience scaffolded around a project they’re already motivated to work on.
I don't think that analogy works as it isn't about learning languages so much as knowing how to write (but I also can't quite fix the analogy, sadly).
A better one (but one which doesn't leave software engineering): as programming languages have gotten easier to use and tooling has gotten better making programmers more effective, more programmers have been needed to write ever more code despite them all having to expend much less effort if they were to merely do the same things... because, and this is key, the tooling now allowance people to tackle ever more complicated problems leading to new things that can be achieved.
Google Translate is translating for me, but it isn't reading for me. I think more people bother to both read and write more content of higher importance because of the existence of Google Translate, as it allows people of every language to have a wider audience and to waste less of their effort on translations of their content.
And that's where it is a complex analogy for me to use and fix, because I get what you are wanting to point at, and yet it doesn't seem like the relevant thing to measure.
I believe that large language models automatically writing code will result in many more programs existing of much higher complexity and I simply do not see how that is going to result in fewer software developers.
I do believe it will change how we do this job and the level of scale and abstraction we are dealing with, but if you think that the world of post-AI software is going to involve a bunch of people building stuff that looks as simple as it is today in 2023 just without software developers I think you are going to be surprised, as frankly you don't need a software developer at all to build most marketing websites people need--we solved that problem years ago with WYSIWYG tooling--and yet somehow every marketing website is now more complicated than ever before because the goalposts moved.
Imagine when every single thing you interact with is going to be some crazy 3D environment with animated characters providing immersive abuse^Hengagement designed to close the deal. Sure, you could just generate a static website for your project but that's so early 2020s it hurts, right?
And yeah: the team that builds that might be doing a ton of development using AIs but it isn't going to be just "outsource it to the AI" until the AI gets smart enough to replace us entirely and at that point we probably only have a few more years of being alive anyway ;P.
>I simply do not see how that is going to result in fewer software developers.
One simple reason: demand.
If software developing is more than a hobby you need to get paid, and ChatGPT will be cheaper than entry level programmers, so it will be hard to get entry level jobs and the experience to reach the next level while getting paid.
ChatGPT has made me enjoy making games again. Trying to do something specific in Unity usually meant having to sift through old outdated forums or long videos. Now I can prototype ideas just by asking. Can't wait until this is built into Unity so it can assist with more than just code. Something like RunwayML but for game engines.
I mean you're ignoring an obvious trend. These LLMs are improving rapidly.
If the improvement continues, the LLMs can reach a point in skill where they can replace us. Your statement and this article is gambling on the status quo. That humans will always be better then AI.
Why is this causing so much of a ruckus right now? Pretty much everyone knows chatGPT is pretty stupid when compared to a human.
It's causing a ruckus because it's a herald for a possible future where the AI becomes superior to human problem solving.
It's not a unrealistic proposition given that chess AI and go AI has already surpassed us.
Using the achievements of machine learning (not 'AI') in chess and go, which are created, constrained game spaces, to tout the promise of 'a possible future where the AI becomes superior to human problem solving' is either the spruiking of a fraudster or the rantings of a fantasist.
Constrained game lol? You know arithmetic isn't constrained right? Computers can fucking beat us in arithmetic without even implementing an AI or utilizing machine learning. Let me put it bluntly.. you have to be a literal idiot to think a "constrained game" is a factor here.
Not only that.. your argument in itself is self defeating EVEN if "constrained games" WAS a factor. A machine learning system beat the best human humanity had to offer at a game that is fucking constrained? Literally, the more pathetically simplistic the task the worse Humans perform against an AI. That's the overall logic of your genius argument.
I think one thing is proven by your response. That basically certain people are just not smart or intelligent. You're pretty much below average. This isn't an insult. I'm just pointing out the truth here. I'm sorry but you can't even come up with a coherent argument against the "rantings of a fraudster." Consider measuring your IQ to verify.
It's true that it would be helpful to be able to troubleshoot the code output of AI chatbots. What I've heard from friends is that ChatGPT is pretty good at troubleshooting itself — not automatically, but if you re-enter buggy output, it can often correctly suggest how to fix the bug. This won't always be the case, but it does seem to undercut the argument that humans are always needed to fix bigs. There may be other reasons, like optimization, that are more compelling. Or it's possible that AI will be good at that as well!
I feel like the fact this question is being asked in plain seriousness 4 months after the technology was made publicly available/known to the general public sends a different message than you meant.
But that would be totally unrelated to ChatGPT or anything resembling it. Sure, there could be another advance in AI, probably using another approach, but how is that different from 5 years ago?
That is not how it works, at least not for any conventional meaning of “remix”. It doesn’t store a copy of all the text it has been trained on, and it doesn’t just mix existing phrases together. The easiest way to see that is to ask GPT-4 to invent a new word for a concept, which it can do quite easily.
> The probability for new concepts for any prompt is near zero.
That is actually what the "temperature" API parameter controls - set it to high and you'll get a high probability of new concepts, coupled with a high probability of nonsense. (I assume) It's like facilitating a brainstorming session and offering the participants edibles.
Not sure what you mean by “calculate things”, but it’s fairly easy to see how language models can at least come up with new combinations of existing things that have never existed.
I don’t particularly like React, but I don’t think it’s horrible either. I also think it has introduced a lot of important concepts to a space that wasn’t particularly predisposed to them. It’s an overall good, even if it’s not my preference.
Aw come on jQuery was fun! Remember those big long chained commands? Remember how suddenly you could just select anything off the page, using cas selectors? Remember how much easier ajax and animation and dom manipulation and events were with jQuery?
Meh, to a point. Once things crossed a certain threshold of dynamic behavior the state handling became a nightmare. Now, arguably few services needed that much dynamism.
Yeah, I've done it many times successfully, drag and drop interfaces, form builders, dynamic form inputs, animations, etc. It's 10x easier with vanilla JS and sprinklings of jQuery.
Believe it or not, gmail was a much faster cleaner better interface before they switched to Angular, and FB worked much better and was way less buggy and slow before they switched to React. The reason the mega-caps pushed their use was to offload processing power to the client, which saves them server costs. Front end JS frameworks don't solve a problem almost every other company has, hence why they had to be pushed by FB/Google, and didn't grow organically from the open source community.
I suspect when you want complex modals and chat dialogs you'll notice jQuery starting to bend under the weight. It can be done, though not as well as more modern, albeit large frontend tools.
It seems to me that Facebook has put out many many open source libraries, but React is the only one that has taken off in a bigway outside FB. People generally scoffed at FB technically since they were built on PHP.
I think bringing the functional programming approach and princinpled state management to frontend was just something that the time was ripe for.
(Also React was much different back then, before hooks, etc).
If ChatGPT existed 47 years ago programming as we know it never would have been invented, and we'd just ask our room sized tabulation machines to kindly do payroll.
I don’t have a dog in the AI fight, but it seems pretty plausible that React’s core concepts would have been part of a hypothetical 20 years ago training set. All of these were part of at least academic discourse:
- Algebraic effects
- DSLs designed to be expressive and statically analyzable
- [Thing] as a function of state (I’m not sure how much this was applied to UI specifically, but if I had to take a wild guess, probably)
- Abstraction of declarative definitions from computational instructions
If anything, I think a declarative UI model could have come much sooner if there weren’t such deep investment in other techniques. Not that a hypothetical AI of the time would have arrived at that, but I definitely think it had enough training material to go on.
Lishten, money penny, just because we have face swapping technology and voice cloning technology and deep fakes does not mean I shouldn't practice my Sean Connery impression. I admit, I may be somewhat shaken by these recent developments but I'm not shttiered.
My view is that even if AI can program really well, it can't architect full solutions, you still need to tell it specifics and test/debug its output (at least for now). It's like if you're a farmer and you got tractors, you don't need to till and harvest anymore but you still gotta drive it and press buttons and even if tractors drove themselves and pressed their own buttons you gotta supervise them and maintain them.
I think people being less eager to be programmers will only help with increasing wages lol
A single crop harvester can replace 30 farm workers. If programming is going the same route as your farming example then we're in for a shock. The complexity and scale of software increases every year so I wonder if AI will be able to keep up or if there will always be a need for specialized roles.
Coding is a small percentage of a programming job, I don't write more than 100 lines / day, GPT tools are also very late to the party of code generation, it's been 40 years of development in this area.
Yeah but not everyone affords a crop harvester and even then you have less farm workers not no farm workers.
I think there will be less demand for programmers and more demand at lesser pay for the top quintile of talented coders. There will also be ML managing/engineering/monitoring type jobs that will require you to know how to code. Various other disciplines will also have knowing python and shell scripting a requirement.
The only thing that will get decimated is the need for a 10:1 ratio (making that up for the record) between coders that stitch software and suck at debugging and coders that sre debugging ninjas that can identify issues GPT* hallucinates.
The next stage of decimation is a long way off when GPT is able to be integrated into the production monitoring tooling, debug on it's own and answer questions like "why is your code slow under these circumstances? And why does it randomly crash?" Right now operations/sre/users ask that of the programmer. I don't believe GPT is anywhere near being able to reliably answer those questions because if it were, why emit such code to begin with? You would be able to prompt it to generate perfect code if it could do that, the code I have seen is impressive but full of flaws even a collegr freshman wouldn't make.
To me the question is the same as dalle-e replacing artists. Even whe the drawing is not weird or just messed up it still does not "wow" you, i mean technically it qualifies and for a machine it is impressive but it just feels mediocre to the most part.
I think in reality what you will see is GPT assisted IDEs giving new meaning to "code completion".
And you still need to run the software. ChatGPT isn't infallible and you will still push bugs or hit sudden scaling or perf issues. Maybe it can help debug at 2am but honestly I'd rather be debugging a system I built rather than one I partially copy-pasted in and didn't fully understand. The old fashioned way has the benefit of growing your own mind and making you "stronger and smarter"
My view is that even if AI can program really well, it can't architect full solutions, you still need to tell it specifics and test/debug its output (at least for now). It's like if you're a farmer and you got tractors, you don't need to till and harvest anymore but you still gotta drive it and press buttons and even if tractors drove themselves and pressed their own buttons you gotta supervise them and maintain them.
I think people being less eager to be programmers will only help with increasing wages lol
But does this mean no more stackoverflow? Not cool.
I'm talking about the recent acceleration of changes, chatGPT, dall e, midjourney.
chatGPT and dall-e put fuel on the fire. Interest has spiked and additionally the industry and academia is matching the trend with an equivalent refocus of research efforts.
No exaggeration here to say "we don't know what will happen"
Dall-E was a few months later. I don’t want to be obtuse, but I am into this topic for quite a while and progress is actually kind of slow to me. Society is still hung up on (to me) minor and extremely uninteresting issues.
I’m getting tired of the “losing jobs” narrative. GPT4 is a worse coder than 3. What I’d like to see is some discussion about this tech disrupting the need for “leadership” and bullshit executives. IMO vast swaths of elites - GPTs tendency to hallucinate makes it the perfect politician - are becoming obsolete as their opinion and influence is no longer interesting / necessary. This, of course, will not happen. We will only replace workers, the rest will be fine. We won’t even talk about it.
Sorry for the detour and unsubstantiated rant. I deserve the downvotes. Taking the hit for the socialist team here.
No, you need not. Especially if you own a time machine.
Its a matter of perspective, though.
Analogy:-
Because of a tool such as Grammarly, I no longer recommend my kids to bother when they lose marks due to minor grammatical mistakes on a handwritten test.
They better put that 80-20 to practice and learn to recognize aggressively reducing their efforts/tasks/work to 20 wherever possible.
Their English teacher disagrees with me.
Maybe, we do have a horse in this race.
This comment was edited in Grammarly, and it score a 67 out of 100 on readability.
So you're the reason why the texts I receive from younger relatives are incomprehensible. You should listen to their English teacher. An adult using Grammarly to highlight their mistakes is different from a child relying on Grammarly because they haven't learned any better.
> This comment was edited in Grammarly, and it score a 67 out of 100 on readability.
I can see that. Your 80-20 sentence is poorly constructed, you used the wrong tense in "and it score a 67 out of 100". Other than highlighting the fact that Grammarly thinks you write poorly, what point are you making exactly?
The elephant in the room is that a lot of outsourcing jobs will get slashed first. Curious how this will affect the economy of countries such as india or other popular outsourcing destinations.
This should be obvious. Jobs outsourced to India are jobs that can be specified rather precisely and require less interaction/requirements engineering across timezones.
As someone who is both a developer and currently occasionally uses GPT in the course of development, I skimmed this article looking for the one point I think there is to make on this subject.
I think the opposite of what people are worrying about will happen here. AI will create a feedback loop for developers, where there just aren’t enough humans to keep up with the work - exacerbating the existing problem of a shortage.
For me, LLMs can essentially replace large portions of my workflow: stack overflow, googling for examples, finding some obscure syntax, getting started on a problem when I’m coming from a place of little understanding. Assuming I ask the right questions in the right order and get the output running, it can drastically reduce my time to a working solution.
This is the same thing previous tools have done, but with a faster and tighter feedback loop. That will just amplify the primary pattern of software: with every solution we create new problems to solve. And every new abstraction has some hidden cost.
Mark my words: our near future problem as engineers is not that we can’t get jobs, it’s that we can’t fill them all. We will most likely find ourselves desperately chasing automation that never quite gets as automated as we need it to be.
Of course this is both good and bad. But it means that like this author, we need to encourage everyone possible to “learn to code” in some sense.
On the other hand, if it replaces large parts of your workflow, that means your work is now very different. It will perhaps be more about making strategic decisions, less about implementing the details. So depending on what type of work you are good at and enjoy, it can be a good or a bad thing.
Don’t forget that most companies want us to actually do more, there’s pretty much infinite creativity available. Faster and cheaper code delivery will probably lead to more code , more moonshot ideas to be involved in, more scaling issues, security issues and on and on.
There will now be more competition of course, more LLMs to build and maintain. More features to keep up with etc.
Also AI safety jobs will become more of a thing, could just be getting started.
I have a similar take. I suspect at some stage “software development” will mean feeding business requirements (with some degree of precision) into the algorithm and letting it handle logic, resource provisioning etc. The last traditional programming jobs to go will be legacy software for critical infrastructure, defense, and financial institutions.
Communication skills and business domain knowledge will become far more important than what we consider “tech skills” today.
I doubt the world’s appetite for software will decline even when one person manages to develop in a day what used to take a team of people months. We’ll have a lot more work to do, and a lot more people will join the field.
However, on average, it might become a much less lucrative and prestigious profession.
> I suspect at some stage “software development” will mean feeding business requirements (with some degree of precision) into the algorithm and letting it handle
That’s just a higher level programming language… And we all know that it doesn’t solve things.
It actually does solve a lot things, in the sense that there’s a lower barrier for entry. A lot of lower-level programming skills are being abstracted away and obsoleted. My prediction may be wrong, but it’s based on the extrapolation of the trends you’re referring to.
High level languages like Python abstract away boring specifics like memory management and implantation data structures.
Natural language programming via GPT instead abstracts away the actual functioning.
I’ve seen colleagues use snippets from chatGPT that are horrendously inefficient despite being “simple” prompts. They look fine at first glance, but work only 50% of the time.
Oh, there’s no doubt this particular AI software is flawed. But I don’t think there’s anything inherent to AI that renders it unable to master specific frameworks or algorithms in future iterations. The timeframe is up in the air, though.
I’m not convinced it’s an AI quality problem - rather, the difficulty of translating natural language into machine requirements. This is an age-old problem, not even restricted to Computer Science.
I agree with the other comment responding to you. Consider SQL. A typical select statement with a join and a sort would have taken a team of people months to implement in an application-specific proprietary data-storage structure (perhaps a red black tree). Now it’s a trivial line of SQL. Like the top comment said, this has not eliminated those teams’ jobs.
Interesting you should mention SQL, because a lot of non-tech business people I’ve met have rudimentary SQL skills nowadays. Database administration is a dying field.
I was speaking of the engineering teams that existed before database administration was formalized as a field at all. Mainframe, batch processing, and written in C: proprietary company-specific applications.
Analogously, it may not be long before crud websites are created, end to end, by non-tech people with mostly natural language.
That being said, today’s crud web developers won’t be out of work. Their experience writing/designing code will be put to use in more complex, potentially yet-unseen applications.
This is true but this doesn’t imply those companies couldn’t still use those engineers in some capacity but rather they have decided to cut the cost of employing them.
Universally, software is so flawed and yet so fundamental to modern life, there is certainly a possibility for everyone to contribute but not necessarily funding to pay them for their work.
This. I asked a question regarding this on a forum and I got downvoted to oblivion just because I said a manager/CTO/CEO could see this as an opportunity to lay off people, cut salaries, etc...
I am skeptical that this will happen but if it does it seems to me it will still be a short term situation. I don’t believe the world’s need for software, especially high quality software, is anywhere near met. There are many problems waiting to be solved with software that just aren’t due to cost or time of implementation. The outcome will be more software and more complex software, you may as an individual engineer be expected to manage and produce more software then before but the demand for software engineers will not be reduced because all of the sudden there is much more software in the world.
The CEO at a company I worked for a few years ago suddenly one day discovered open source. He decided that we were now going to be a software company and "the nerds will do the work for free!" Not even paraphrasing there, that's what he said at a companywide town hall meeting. He thought he was brilliant for discovering open source and that he was the first to think of exploiting it for commercial gain.
Bankruptcy reorganization took longer than expected but he's still CEO, so I guess it didn't impact him very much but lots of people lost their jobs and everyone who owned stock was wiped out, which included a good chunk of the employees.
The problem is your CEO was right. Exploiting open source is the right move. Instead of hiring engineers to write an operating system you guys likely exploited Linux and a bunch of other free tools.
100 percent: open source has contributed to less demand. It's the only logical conclusion.
The thing is that supply is so low that even with less demand it still outstrips supply.
Here's the the thing we should be cautious about. Times change. Technology changes, the culture changes and interest rates also change. Demand may not always outstrip supply.
No, the CEO was wrong. You're conflating a serendipitous use of open source software with a targeted exploitation of it. People decided to open source Linux, GCC, and other tools. So developers at companies use them, because they are available. This is not exploitation, though, it is the intention. Developers made these tools specifically for other developers to use them, even at their jobs.
The CEO, however, wants to convince developers to work on software that would drive value for the company. In essence, the CEO wants to trick open source developers. This is clearly doomed to fail.
I know commercial products where the code is open source (and largely useless to anything except the product) and people contribute. Decent Espresso is one. It is insane anyone contributes but they do. Rich owner gets tons of free labor.
You are getting your emotions mixed up with facts.
When you use open source you are exploiting a resource as there is no fair trade. It's not a crime nor is it immoral but because no fair trade occured it is technically an exploitation.
No CEO tricked open source developers. Open source developers create open source as a charity to society that's all. They aren't tricked. They willingly choose to allow others to exploit their goodwill as a resource. Many people choose not to exploit them and donate money for their efforts, but most don't.
Put it this way. People can be aware they are being exploited and people can be unaware that they are exploiting others. Knowledge of the action is independent of the action of exploitation.
If I gift you resources, the trade is fair. This is you putting your own emotions into it, and projecting. You don't get to tell me what I do with my resources, and my labor and time has no intrinsic value.
Even with your description of things, you still have the wrong way of things. The CEO in the description obviously wants to make open source developers build _something new_. That is, something they have not decided to gift to the community already. We can argue semantics of the word exploit, of which I think you're being ridiculous, but even with your definition the situations are different.
A gift isn't a fair trade. That's why a gift is not called a fair trade. There's such phrase: "fair gift".
> You don't get to tell me what I do with my resources, and my labor and time has no intrinsic value.
I never did tell you what to do with your time and resources. Why would you assume I did something that never occurred? I think your emotions are saying this.
>The CEO in the description obviously wants to make open source developers build _something new_. That is, something they have not decided to gift to the community already.
No exploitation doesn't just involve that. Even taking something already built without a fair trade is still exploitation.
>We can argue semantics of the word exploit, of which I think you're being ridiculous, but even with your definition the situations are different.
Not only CAN we argue this, we are arguing this. This is the central point. And it's not about MY definition either. It's about the colloquial definition of the word exploit. If you google it, you will see that I am right.
There is no different "situation" here. You're simply offended by the word "exploit" because you have preconceived connotations attached to it. I don't have any skin in the game, I don't have to adjust vocabulary or my interpretation of the English language to justify my place in the world.
That CEO is strategically making the best decision by "exploiting" open source. Anyone following that plan is also making the most cost efficient strategic move. He may be acting like an ass about it, but logically his strategy is correct. That's just reality.
I mean how you perceive the tool is relevant as well. It's just self delusion and denial.
It's obvious if your productivity increases because of AI it diminishes the need of another person's productivity. You give everyone more AI tools you could increase productivity to levels beyond what is necessary. If some productivity isn't necessary it's laid off. Simple logic.
It's quite obvious. It's just people have a fascination and love for this technology such that they need to construct a delusional narrative that validates their love and validates their moral imperatives. But deep down they know, because it's really really straightforward the consequences of any tool like this.
This paradox only occurs if every resource is abundant. We tend to see it a lot (especially in the last decade) because of the easy money policies by the Fed in the last decade or so. Following your example, if we have unlimited money and gas prices are cheap, we buy more gas. But with limited money, when gas gets cheaper, we don't buy more gas, we usually allocate more money for more essentials.
The scenario with a bankruptcy is largely parallel to what we're seeing recently with interest rates and the lay offs. Free money is being tightened. With limited money the paradox no longer functions. Big tech is not going to hire people to write existing software they can get on the open source world, so they let go of a bunch of people.
You can literally see the two curves correlate ever since interest rates started to rise... Open source projects are going up right now while lay offs are also increasing... violating the paradox.
The Jevons paradox was noted in the 19th century when the world was far less wealthy than today. Recent American monetary policy has little relevance.
There’s many more examples if you look up induced demand - a similar effect is the Downs–Thomson paradox, where adding more roads increases traffic congestion in the long term. You may see a short term improvement (the same way a struggling company that increases productivity will let go of employees) but eventually a new equilibrium is reached.
This assessment is correct. Many more engineers will be needed. Far more than exist right now. There is a lot of work to do. There could be innovation in products and services...more products, more services, more innovation, for another 1,000 years.
There is no worker shortage for engineers in software roles. Nor a shortage in other engineering professions. That's corpo propaganda used to reduce salaries, the largest expense of tech. More job competition = less pay.
If anyone wants the best software devs there's plenty of them uploading projects on GitHub. The resume is right there in plain sight. Speaking to numerous hiring managers personally, the story is the same. They know, they also have a few hundred applications already. You'll know there's a shortage when the org actually puts money into education, interns, and makes offers to juniors.
Further - if there were a shortage, that would be an existential crisis to any engineering org. They would be tumbling over themselves trying to get people through school. They have actual billions lying around. This is not the case. These corps contribute almost nothing, because they don't need to.
I certainly can’t argue with this point. Except I will add that when I speak of a shortage of engineers, I am perhaps more speaking of a gut feeling on the overall quality of software the entire industry is putting out. There may or may not be a surplus of engineers out there to fill jobs, but there are a lot of hats an engineer has to wear if they actually want to drive systemic positive forward change, much of which is of course not really “engineering” at all.
Maybe what I’m trying to say is: for the vast majority of new-hires despite qualifications, they will consistently produce more technical debt and that debt will need to be paid from time to time. I believe the increase in popularity of LLM-type AIs will amplify this effect and make that debt more visible and urgent.
Increased productivity of a single developer -> less demand for developers
More AI based companies and products -> more demand for developers
Not sure which force is stronger.
In my opinion, GPT doesn't invalidate the need to learn to code anymore than the invention of the pocket calculator invalidated the need to learn one's arithmetic.
139 comments
[ 3.1 ms ] story [ 268 ms ] thread"I'm the author of Python Crash Course, which is published by No Starch Press: https://nostarch.com/pythoncrashcourse2e" - author and OP
Part of the answer is that "you should learn to code beyond basic syntax, so that you can be better than the computer".
What it doesn't mention is that the state of AI is also going to continue improving, so you're possibly entering an arms race.
But professionally, we may have to find new activities.
It's not at all the same medium. Unless you consider that the whole point of oil painting is to imitate realistic pictures...
As someone else mentioned, people play chess for fun. People do things that they will never be as good at as computers.
I don't buy this idea that people need to be the "best" at something to enjoy it. Living that way dooms you to always being unhappy
That being said, people still do things they're outclassed at. We still have blacksmiths.
My brother has figured he can make a great living out of gardening for people. Yes robots will probably do this one day, but will they to the same level ? Really who knows anymore?
I’m actually sure a lot of the more wealthy people he works for kind of also just like him and his company too. He’s a youthful fun guy with a lot of creative ideas.
The silicone value push for eternal life via the singularity and trips to Mars seems to be mostly fuelled by cults and the need to keep shareholder happy / profits coming in.
I don’t know if anyone else cares that much, including the bots themselves. Time will tell.
It's really clear how useful these tools are to many experienced programmers, but I have no idea what impact they'll have on people who are new to programming. Most of the write-ups I've seen so far have been from people who already know how to code. I think it will be some time yet before we really see how effectively people who know nothing about programming are able to use these tools for learning.
You need the disclaimer. The reason why is because no one can read your intentions, they can only guess your intention from your actions.
By waiting until a 3rd party disclosed this information a little bit of trust was automatically lost.
I believe you, but this really isn't how maintaining credibility with a conflict of interest works.
You also don't have to add a "disclaimer". Just mention anywhere that you wrote a book on programming. You can say it abstractly like that if you don't want it to be an ad. Considering how much this experience informs your argument, it should be pretty easy to work in.
And thank you for your book. I've recommended it to many people.
I ended up doing a lot of reflecting about the comments people made. I think I've gotten used to writing for an audience that already knows that I'm the author of PCC, and I start to assume that anyone else will see that quickly as well. Do I really need to add a disclaimer any time I write about the process of learning to code, or its ongoing relevance? I'm not asking anyone to respond to that, especially on an old post, but that's the question that I kept coming back to for a while.
I realize that a post like this, shared with a larger audience, at this point in time, warrants a disclaimer. I've been a member of HN for over ten years, and I value my reputation here. I'm sorry if I misled anyone as they went into reading this post. I didn't add a disclaimer right away because I've made a habit of not responding too quickly to feedback on the internet when I'm not sure exactly how to respond.
I ended up adding a disclaimer, but that was well after this had dropped off the front page. I didn't put off adding a disclaimer to mislead anyone, it just took a while to think through all this. I will be more careful about which posts need to include a disclaimer from this point forward.
I know few people will see this, but if anyone sees the surrounding comments after the disclaimer is there I'd like them to see this context. Thank you all for the critical feedback. As uncomfortable as it is sometimes, it's part of what I've always appreciated about HN.
I've been using GPT to write very simple utilities in languages I am unfamiliar with, and for me, there's no faster way to pick up a language then to see an example program where you already know exactly what it does.
(Or is supposed to do, finding the small mistakes that GPT sometimes makes also helps learn things, ironically.)
A better one (but one which doesn't leave software engineering): as programming languages have gotten easier to use and tooling has gotten better making programmers more effective, more programmers have been needed to write ever more code despite them all having to expend much less effort if they were to merely do the same things... because, and this is key, the tooling now allowance people to tackle ever more complicated problems leading to new things that can be achieved.
Easier tooling is more like programms like Duolingo and Babbel.
If you totally trust the former you don't need to learn anything, the latter enforces to do something on your own.
And that's where it is a complex analogy for me to use and fix, because I get what you are wanting to point at, and yet it doesn't seem like the relevant thing to measure.
I believe that large language models automatically writing code will result in many more programs existing of much higher complexity and I simply do not see how that is going to result in fewer software developers.
I do believe it will change how we do this job and the level of scale and abstraction we are dealing with, but if you think that the world of post-AI software is going to involve a bunch of people building stuff that looks as simple as it is today in 2023 just without software developers I think you are going to be surprised, as frankly you don't need a software developer at all to build most marketing websites people need--we solved that problem years ago with WYSIWYG tooling--and yet somehow every marketing website is now more complicated than ever before because the goalposts moved.
Imagine when every single thing you interact with is going to be some crazy 3D environment with animated characters providing immersive abuse^Hengagement designed to close the deal. Sure, you could just generate a static website for your project but that's so early 2020s it hurts, right?
And yeah: the team that builds that might be doing a ton of development using AIs but it isn't going to be just "outsource it to the AI" until the AI gets smart enough to replace us entirely and at that point we probably only have a few more years of being alive anyway ;P.
One simple reason: demand. If software developing is more than a hobby you need to get paid, and ChatGPT will be cheaper than entry level programmers, so it will be hard to get entry level jobs and the experience to reach the next level while getting paid.
If the improvement continues, the LLMs can reach a point in skill where they can replace us. Your statement and this article is gambling on the status quo. That humans will always be better then AI.
Why is this causing so much of a ruckus right now? Pretty much everyone knows chatGPT is pretty stupid when compared to a human.
It's causing a ruckus because it's a herald for a possible future where the AI becomes superior to human problem solving.
It's not a unrealistic proposition given that chess AI and go AI has already surpassed us.
Not only that.. your argument in itself is self defeating EVEN if "constrained games" WAS a factor. A machine learning system beat the best human humanity had to offer at a game that is fucking constrained? Literally, the more pathetically simplistic the task the worse Humans perform against an AI. That's the overall logic of your genius argument.
I think one thing is proven by your response. That basically certain people are just not smart or intelligent. You're pretty much below average. This isn't an insult. I'm just pointing out the truth here. I'm sorry but you can't even come up with a coherent argument against the "rantings of a fraudster." Consider measuring your IQ to verify.
It reorders existing words but doesn't invent new ones
In any case, I generally feel that discourse works better when people just remix existing words and concepts rather than rushing to create new ones.
The probability for new concepts for any prompt is near zero.
That is actually what the "temperature" API parameter controls - set it to high and you'll get a high probability of new concepts, coupled with a high probability of nonsense. (I assume) It's like facilitating a brainstorming session and offering the participants edibles.
Not entirely sure that would have been a negative outcome. React is horrible.
Oh sweet summer child. It's ancestors were so much worse. They had to deal with Microsoft Internet Explorer
jQuery. bootstrap. And if that doesn't strike fear in your heart, ANGULAR!
Believe it or not, gmail was a much faster cleaner better interface before they switched to Angular, and FB worked much better and was way less buggy and slow before they switched to React. The reason the mega-caps pushed their use was to offload processing power to the client, which saves them server costs. Front end JS frameworks don't solve a problem almost every other company has, hence why they had to be pushed by FB/Google, and didn't grow organically from the open source community.
I think bringing the functional programming approach and princinpled state management to frontend was just something that the time was ripe for.
(Also React was much different back then, before hooks, etc).
- Algebraic effects
- DSLs designed to be expressive and statically analyzable
- [Thing] as a function of state (I’m not sure how much this was applied to UI specifically, but if I had to take a wild guess, probably)
- Abstraction of declarative definitions from computational instructions
If anything, I think a declarative UI model could have come much sooner if there weren’t such deep investment in other techniques. Not that a hypothetical AI of the time would have arrived at that, but I definitely think it had enough training material to go on.
I think people being less eager to be programmers will only help with increasing wages lol
I think there will be less demand for programmers and more demand at lesser pay for the top quintile of talented coders. There will also be ML managing/engineering/monitoring type jobs that will require you to know how to code. Various other disciplines will also have knowing python and shell scripting a requirement.
The only thing that will get decimated is the need for a 10:1 ratio (making that up for the record) between coders that stitch software and suck at debugging and coders that sre debugging ninjas that can identify issues GPT* hallucinates.
The next stage of decimation is a long way off when GPT is able to be integrated into the production monitoring tooling, debug on it's own and answer questions like "why is your code slow under these circumstances? And why does it randomly crash?" Right now operations/sre/users ask that of the programmer. I don't believe GPT is anywhere near being able to reliably answer those questions because if it were, why emit such code to begin with? You would be able to prompt it to generate perfect code if it could do that, the code I have seen is impressive but full of flaws even a collegr freshman wouldn't make.
To me the question is the same as dalle-e replacing artists. Even whe the drawing is not weird or just messed up it still does not "wow" you, i mean technically it qualifies and for a machine it is impressive but it just feels mediocre to the most part.
I think in reality what you will see is GPT assisted IDEs giving new meaning to "code completion".
I think people being less eager to be programmers will only help with increasing wages lol
But does this mean no more stackoverflow? Not cool.
4 months... that's it.
Wait 5 years, and during that time we'll know whether or not it's worth it to know programming. Maybe not even 5 years, give it 2 years.
chatGPT and dall-e put fuel on the fire. Interest has spiked and additionally the industry and academia is matching the trend with an equivalent refocus of research efforts.
No exaggeration here to say "we don't know what will happen"
I’m getting tired of the “losing jobs” narrative. GPT4 is a worse coder than 3. What I’d like to see is some discussion about this tech disrupting the need for “leadership” and bullshit executives. IMO vast swaths of elites - GPTs tendency to hallucinate makes it the perfect politician - are becoming obsolete as their opinion and influence is no longer interesting / necessary. This, of course, will not happen. We will only replace workers, the rest will be fine. We won’t even talk about it.
Sorry for the detour and unsubstantiated rant. I deserve the downvotes. Taking the hit for the socialist team here.
Analogy:-
Because of a tool such as Grammarly, I no longer recommend my kids to bother when they lose marks due to minor grammatical mistakes on a handwritten test.
They better put that 80-20 to practice and learn to recognize aggressively reducing their efforts/tasks/work to 20 wherever possible.
Their English teacher disagrees with me.
Maybe, we do have a horse in this race.
This comment was edited in Grammarly, and it score a 67 out of 100 on readability.
> This comment was edited in Grammarly, and it score a 67 out of 100 on readability.
I can see that. Your 80-20 sentence is poorly constructed, you used the wrong tense in "and it score a 67 out of 100". Other than highlighting the fact that Grammarly thinks you write poorly, what point are you making exactly?
I think the opposite of what people are worrying about will happen here. AI will create a feedback loop for developers, where there just aren’t enough humans to keep up with the work - exacerbating the existing problem of a shortage.
For me, LLMs can essentially replace large portions of my workflow: stack overflow, googling for examples, finding some obscure syntax, getting started on a problem when I’m coming from a place of little understanding. Assuming I ask the right questions in the right order and get the output running, it can drastically reduce my time to a working solution.
This is the same thing previous tools have done, but with a faster and tighter feedback loop. That will just amplify the primary pattern of software: with every solution we create new problems to solve. And every new abstraction has some hidden cost.
Mark my words: our near future problem as engineers is not that we can’t get jobs, it’s that we can’t fill them all. We will most likely find ourselves desperately chasing automation that never quite gets as automated as we need it to be.
Of course this is both good and bad. But it means that like this author, we need to encourage everyone possible to “learn to code” in some sense.
There will now be more competition of course, more LLMs to build and maintain. More features to keep up with etc.
Also AI safety jobs will become more of a thing, could just be getting started.
…or it’s the end of all work!!!!!!
Communication skills and business domain knowledge will become far more important than what we consider “tech skills” today.
I doubt the world’s appetite for software will decline even when one person manages to develop in a day what used to take a team of people months. We’ll have a lot more work to do, and a lot more people will join the field.
However, on average, it might become a much less lucrative and prestigious profession.
That’s just a higher level programming language… And we all know that it doesn’t solve things.
Natural language programming via GPT instead abstracts away the actual functioning.
I’ve seen colleagues use snippets from chatGPT that are horrendously inefficient despite being “simple” prompts. They look fine at first glance, but work only 50% of the time.
Analogously, it may not be long before crud websites are created, end to end, by non-tech people with mostly natural language.
That being said, today’s crud web developers won’t be out of work. Their experience writing/designing code will be put to use in more complex, potentially yet-unseen applications.
When you pay enough the talent pool is endless.
Universally, software is so flawed and yet so fundamental to modern life, there is certainly a possibility for everyone to contribute but not necessarily funding to pay them for their work.
The problem is how your CEO, not an engineer, perceives the tool could be useful.
Bankruptcy reorganization took longer than expected but he's still CEO, so I guess it didn't impact him very much but lots of people lost their jobs and everyone who owned stock was wiped out, which included a good chunk of the employees.
100 percent: open source has contributed to less demand. It's the only logical conclusion.
The thing is that supply is so low that even with less demand it still outstrips supply.
Here's the the thing we should be cautious about. Times change. Technology changes, the culture changes and interest rates also change. Demand may not always outstrip supply.
The CEO, however, wants to convince developers to work on software that would drive value for the company. In essence, the CEO wants to trick open source developers. This is clearly doomed to fail.
When you use open source you are exploiting a resource as there is no fair trade. It's not a crime nor is it immoral but because no fair trade occured it is technically an exploitation.
No CEO tricked open source developers. Open source developers create open source as a charity to society that's all. They aren't tricked. They willingly choose to allow others to exploit their goodwill as a resource. Many people choose not to exploit them and donate money for their efforts, but most don't.
Put it this way. People can be aware they are being exploited and people can be unaware that they are exploiting others. Knowledge of the action is independent of the action of exploitation.
Even with your description of things, you still have the wrong way of things. The CEO in the description obviously wants to make open source developers build _something new_. That is, something they have not decided to gift to the community already. We can argue semantics of the word exploit, of which I think you're being ridiculous, but even with your definition the situations are different.
A gift isn't a fair trade. That's why a gift is not called a fair trade. There's such phrase: "fair gift".
> You don't get to tell me what I do with my resources, and my labor and time has no intrinsic value.
I never did tell you what to do with your time and resources. Why would you assume I did something that never occurred? I think your emotions are saying this.
>The CEO in the description obviously wants to make open source developers build _something new_. That is, something they have not decided to gift to the community already.
No exploitation doesn't just involve that. Even taking something already built without a fair trade is still exploitation.
>We can argue semantics of the word exploit, of which I think you're being ridiculous, but even with your definition the situations are different.
Not only CAN we argue this, we are arguing this. This is the central point. And it's not about MY definition either. It's about the colloquial definition of the word exploit. If you google it, you will see that I am right.
There is no different "situation" here. You're simply offended by the word "exploit" because you have preconceived connotations attached to it. I don't have any skin in the game, I don't have to adjust vocabulary or my interpretation of the English language to justify my place in the world.
That CEO is strategically making the best decision by "exploiting" open source. Anyone following that plan is also making the most cost efficient strategic move. He may be acting like an ass about it, but logically his strategy is correct. That's just reality.
Open source can be understood as a gift economy https://en.wikipedia.org/wiki/Gift_economy
It's obvious if your productivity increases because of AI it diminishes the need of another person's productivity. You give everyone more AI tools you could increase productivity to levels beyond what is necessary. If some productivity isn't necessary it's laid off. Simple logic.
It's quite obvious. It's just people have a fascination and love for this technology such that they need to construct a delusional narrative that validates their love and validates their moral imperatives. But deep down they know, because it's really really straightforward the consequences of any tool like this.
The historical precedent would be for increased productivity to lead to more software being developed, not the same amount but by fewer developers.
This paradox only occurs if every resource is abundant. We tend to see it a lot (especially in the last decade) because of the easy money policies by the Fed in the last decade or so. Following your example, if we have unlimited money and gas prices are cheap, we buy more gas. But with limited money, when gas gets cheaper, we don't buy more gas, we usually allocate more money for more essentials.
The scenario with a bankruptcy is largely parallel to what we're seeing recently with interest rates and the lay offs. Free money is being tightened. With limited money the paradox no longer functions. Big tech is not going to hire people to write existing software they can get on the open source world, so they let go of a bunch of people.
You can literally see the two curves correlate ever since interest rates started to rise... Open source projects are going up right now while lay offs are also increasing... violating the paradox.
There’s many more examples if you look up induced demand - a similar effect is the Downs–Thomson paradox, where adding more roads increases traffic congestion in the long term. You may see a short term improvement (the same way a struggling company that increases productivity will let go of employees) but eventually a new equilibrium is reached.
We see paradoxical trends and trends that are not. It just means the paradox can sometimes occur it does not mean the paradox is a general rule.
If anyone wants the best software devs there's plenty of them uploading projects on GitHub. The resume is right there in plain sight. Speaking to numerous hiring managers personally, the story is the same. They know, they also have a few hundred applications already. You'll know there's a shortage when the org actually puts money into education, interns, and makes offers to juniors.
Further - if there were a shortage, that would be an existential crisis to any engineering org. They would be tumbling over themselves trying to get people through school. They have actual billions lying around. This is not the case. These corps contribute almost nothing, because they don't need to.
Maybe what I’m trying to say is: for the vast majority of new-hires despite qualifications, they will consistently produce more technical debt and that debt will need to be paid from time to time. I believe the increase in popularity of LLM-type AIs will amplify this effect and make that debt more visible and urgent.