Yes, you should still learn to code
mostlypython.substack.com
mostlypython.substack.com
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.
"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.
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'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.
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 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".
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?
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.