Discuss HN: Software Careers Post ChatGPT+

86 points by rich_sasha ↗ HN
We've all seen it - ChatGPT genuinely solving coding puzzles. Clearly, clearly, that's a long way from building MVP products, designing new programming languages or writing "Hello World" in Haskell. But it's also a long way since even GPT-3, never mind status quo 10 years ago. It would be cool to discuss what a future looks like where "human operators" of programming are competing against a machine. I don't think it is imminent, but equally I think it's less imminent than I did a week ago.

Some threads that come to mind:

- Are these language models better than current offshore outsourced coders? These can code too, sort of, and yet they don't threaten the software industry (much).

- What would SEs do if any layperson can say "hey AI slave, write me a program that..."? What would we, literally, do? Are there other, undersaturated professions we'd go into, where analytical thinking is required? Could we, ironically, wake up in a future where thinking skills are taken over by machine, and it's other skills - visual, physical labour, fine motor skills - that remain unautomated?

- Are we even the first ones in the firing line? Clearly, for now AI progress is mostly in text-based professions; we haven't seen a GPT equivalent for video comprehension, for example. Are lawyers at risk? Writers?

- What can SEs do, realistically, to protect themselves? Putting the genie back in the bottle is not, as discussed many times in other threads, an option.

- Or is it all bogus (with justification), and we're fine?

No doubt ChatGPT will chip in...

147 comments

[ 4.2 ms ] story [ 229 ms ] thread
I feel AI tools will just accelerate software development speed overall rather than replacing software developers them entirely. A lot of boilerplate code, how to configure X and the 80% of development side will be taken care by these AI tools remaining 20% will be left for the software developers to fine-tune and making the functionalities work together.
I mentioned it in a previous comment. It's common for senior engineers not to write that much code. They spend time their time on meetings, planning, creating architectures, presenting solutions, discussing solutions, triaging, keeping up-to-date with tech, clarifying business cost, working on waste avoidance, reviewing code, streamlining processes, vetting new tech/solutions and, in general, understanding everything that is going on.

ChatGPT+ will definitely have some affect on junior devs but us more experience folk should be fine... for now..

Yeah, agreed. I wonder though if it will start nibbling away at the bottom of the pyramid.

First you'll cut the bottom 10%, then the bottom 20% etc. The pie will only be shrinking.

i strongly disagree.

The point is exactly that most of those meetings are happening everywhere for the same reason and thus GPT25 might already know all the answers that you need.

Also given enough general framework skills, I'm pretty sure the AI will be able to build stuff like a good junior dev.

The algorithm doesn't have any "general framework skills" though because it's an algorithm, not a person.

It can generate something that looks like what a person would have wrote based on its compressed probabilities, but that's very different from being an "an artofficial intelligence". At best it's a Chinese Room.

And proper APIs and Frameworks are very well documented inputs and outputs, whats your point?

Im pretty sure we could train an AI to suggest the correct API for the intended purposes. Given the fact that we have support of datatypes and documentation what is left to do is to map what you have to what you want.

Also we can reasonably generate classes and controllers already through cli, so why not combine all the nice things we have to something usefull.

Kubernetes is simply an api too

With types and comments as a prompt in Go, GPT already produces fairly viable API endpoints for basic CRUD operations.

With some framework to compose various prompted endpoints using the same types and conventions, a junior engineer would be totally unnecessary. They couldn’t code as well, and they couldn’t architect as well as a more experienced engineer doing the prompting.

You could even prompt from a spec and begin iterating upon the outputs, revising each manually or with GPT’s suggestions. Say “take this endpoint and refactor it based on the conventions of this endpoint, and make sure (some logic) accounts for (some potential problem)” and boom, it will probably work okay.

But aren't the devs of the future on GPT right now, half-assing learning to code while getting a fast track education in correcting bugs and architecting?

If this technology evolves to be able to reliably generate working code to a prompt, the entire field of software dev will shift dramatically. Some junior and some senior devs would prove better at meeting deadlines by AI whispering, and others would have to find new career paths.

In that case GPT25 can do all the tech work and all the business decisions and all the marketing work. It will just do everything.
> ChatGPT+ will definitely have some affect on junior devs but us more experience folk should be fine... for now..

It affects both. If a single team was to be split with 5 juniors and 5 seniors, ChatGPT significantly reduces that headcount from 5 juniors to 0, and 5 seniors to 2 or 3.

With many companies cutting costs and with the cheap money getting dried up, no-one is safe. HN may not like it but, the same thing that has happened to digital artists with Stable Diffusion which was welcomed on this site, now has happened to programmers and I see lots of worrying and frowns everywhere.

It appears that StackOverflow (which lots of juniors and senior developers use) has just become irrelevant.

> ChatGPT significantly reduces that headcount from 5 juniors to 0, and 5 seniors to 2 or 3.

Citation needed. I haven't heard of any massive disruption in the commission art market since stable diffusion went public, and I don't think something less-impactful(a different way to search old stack overflow posts) is going to cause a massive disruption either.

Stack overflow still beats chatgpt in one area that it can never compete. Coming up with new solutions to new questions. If all we needed answered was the same questions, chatgpt would be sufficient since it's essentially a compressed version of our current knowledge. We don't really have a way to update it with "new knowledge" other than "train it again".

Art is a strange market, where people pay for more than the physical good being delivered. In some cases the objective value of the good being delivered is zero, or even negative after considering cost of "carry" (transport, storage, insurance) yet people pay for it.

I once spoke to an illustrator who said her work was definitely shrinking due to low cost human competition, so much so that she was leaving her profession. I can imagine this did in fact get worse.

>Art is a strange market, where people pay for more than the physical good being delivered

Luckily we're in tech, which doesn't work this way at all.

How do junior devs ever become senior devs if an AI can replace the work of all junior devs?
This is a great question.

One thing about GPT is that it only knows what we know at the moment. That indicates to me that it won’t be great for learning new technologies until humans generate content it can regurgitate. That alone might give juniors an edge against it (assuming they are gradually replaced by a robot pooping out dumb logic) - they might be able to specialize in learning what models don’t yet know, or what they can’t be good at.

Just guessing here. I’d love to hear a rebuttal to get a sense of where people think things are going.

Though I don’t think GPT is “there” yet, I can see it getting there by 2030. I think it’s seriously worth considering: how will people learn to program in 10 years, how will they remain relevant through periods of their career where an AI can generate better solutions than they can, and how will more experienced engineers adapt to those changes?

I like to think of Industrial Revolution for counterexamples. It wiped out tens or hundreds of professions. No more blacksmiths in every village.

Two things happened: one, blacksmithing effectively was taken over by a different skill, that of configuring, servicing and operating industrial machines. There were no junior or senior blacksmiths anymore, seniors probably migrated their knowledge, and the whole field was taken over by non-blacksmiths.

The other thing is that a small proportion remained. Initially perhaps for niche goods that were too difficult or uneconomical to automate. Now blacksmiths do exist, a bit like craft coffee blenders and horse trainers. But the industry was nonetheless wiped out.

Will we see that crafting software will become a job for people trained in AI whispering? Perhaps they will never, or hardly ever, write any code, but will train extensively in software design. Much as a metallurgy engineer might know all crystalline forms of steel but have never swung a hammer.

Day 1 these jobs would likely get filled by senior devs, but there may be no new devs, junior or senior, except for niche applications.

I guess they won't, in the same way we are much worse at remembering information in the era of search engines. They will be profient in telling the AI the exact words it needs to produce the correct code output. No one will be good in programming trivial code snippets not because every snippet is on SO but because every code part can be generated with the correct request.

As many of us cannot read machine code and hex anymore many of the juniors won't be able to parse the code output - but it may not matter anymore.

In which case programming will become stringing prompts together, ChatGPTLang anyone? That's still programming.
They will probably manage. People manage to become programmers without having to learn how basic electronics, cpus, operating systems, etc work. You just skip over those solved problems.
I think the opposite, LLMs will be used to build the optimal high level scaffolding and implementation, but low level devs will be needed to check and verify the code. As we ve seen so far, AI automates the brainy part, but not the long tail or parts that need physical access (eg safety drivers, warehouse workers)
I'd argue that reading and verifying code correctness is the brainy job.
ChatGPT can and will make us way more productive.

The obvious conclusion is that you're gonna need less engineers overall and especially on the junior and mid level.

I wonder what will happen if every tech company cuts their SWE salaries AND headcount in half over the next 10 years as this technology advances. You could perhaps have a team of 10-15 engineers under a CTO build and maintain a pretty complex product perhaps? Will be interesting to see where things go for sure.

At least I will be able to build some cool software on my own or with a small team!

Position yourself to be at the open of the next door. :)

The obvious answer is that deciding what to build is difficult, but that rather invites asking whether building lots of stuff at random and throwing it at the wall would have a better hit rate than building the right things.

Interesting angle is testing where successfully tying a "real program" to one of these AI tools would look a lot like a fuzz tester. Possibly a better one than the current state of the art.

Philosophically I'm not hugely worried about automating the wisdom of Wikipedia and Reddit for mass application. Seems more likely to rot than improve itself. But we'll see.

Response by ChatGPT:

It is certainly possible that in the future, language models like GPT-3 could become advanced enough to compete with human programmers. However, it is important to note that these models are still limited in their capabilities and are not yet at the level of human programmers.

At present, offshore outsourced coders do not pose a significant threat to the software industry, and it is unlikely that language models like GPT-3 will be able to fully replace human programmers anytime soon. However, it is possible that these models could be used to automate certain tasks and make the work of human programmers more efficient.

If language models were to become advanced enough to compete with human programmers, it is likely that software engineers would need to adapt and develop new skills in order to remain competitive. This could include focusing on areas where language models are not yet advanced, such as visual and fine motor skills.

As for protecting themselves from potential automation, software engineers can stay up-to-date on the latest technology and continue to develop their skills in order to remain competitive in the job market. It is also important for the industry as a whole to advocate for policies that support workers and ensure that they are not displaced by technology.

Overall, while it is possible that language models could become advanced enough to compete with human programmers in the future, this is not currently the case. Human programmers still have a valuable role to play in the software industry, and it is important for them to continue to develop their skills in order to remain competitive.

Oh no, it has happened - it has replaced me at my side gig; writing comments on HN, YouTube and Reddit.
I've noticed that ChatGPT tends to give non-answers to specific questions like this. It will reply with an answer that "makes sense" but it's just repeating a very high level observation that essentially means nothing. Like "This could include focusing on areas where language models are not yet advanced, such as visual and fine motor skills." is literally just repeating the op without any extra insight and the conclusion is entirely about the present day which is not what the question is asking about. I like to say that it reads like a 7th grade essay on the subject. ChatGPT is definitely very good at some things (ask it how to set up nginx), but I get easily frustrated when I ask it something specific but non-technical and it gives me an answer like this. It's like it's afraid to pick a side on anything.
This, if nothing else is why AI will take over and rule the world - it has already surpassed politicians in terms of non-answers.
> something specific but non-technical

It does a pretty good job with factual questions, in my experience. It gives good, if shallow, answers about history.

But I mean if you ask it for opinion or analysis, of course that's silly. It can't analyze anything.

It is a personalized StackOverflow on steroids, so I expect it not only increase productivity of boilerplate tasks, but also teach how to program in the process.

In addition to classically trained, self-taught, we're going to have AI-taught programmers. There will be some curious cultural differences there.

We're the old guard now: "Listen kiddo, in my days, we had to google for stuff! We were lucky if there was any documentation to read, manually!"

Until it can change existing code, I think we're ok.
Sorry, it can.

Currently it can work at function level, and can make reasonable modifications to existing code (sometimes buggy, but that may be fixable with a larger model and better training data).

The current chat UI isn't suitable for working with larger codebases, but it seems within realm of possibility to extend it to be an IDE like CoPilot with tooling that feeds it your whole codebase and documentation to work with.

Yupp, it can! I've been able to get it to do simple examples. I was able to get it to print out a 'sum of digits' style function. I was then purposefully placed a silly bug in it by hand. I then ran the code through a 'please code review' style prompt, got a number of decent suggestions out. Using those suggestions, I was able to prompt it to refactor the function to: fix the bug, add documentation comments, include type definitions, and even add tests!.

A simple example, and not 'perfect', but it's quite impressive. Even a simple case of throwing your code 'over the wall' to the AI for review before going to an actual person is a huge time-saver.

The token size limit is the killer here, it means larger files, let alone projects, can't be fully processed in a single prompt.

Initial code produced: ``` def sum_of_digits(n):

    if n == 0:

        return 0

    else:

        return n % 10 + sum_of_digits(n // 10)
```

I didn't save the exact code review, but essentially it was just a list of suggested code changes. The prompt was:

``` prompt = f'Python3. Act like you are a senior engineer writing a code review comment on the code. Write at least two specific changes to make, being sure to check for any errors first: {prompt}. Be as concise and correct as possible, and also be sure to write in a way that is easy to understand.

```

The resulting output code was:

``` import unittest

def sum_of_digits(n):

    if n < 0:  # Added base case check for negative numbers

        return None

    elif not isinstance(n, int):  # Check type of argument passed in

        raise TypeError("Input must be an integer")

    elif n == 0:

        return 0

    else:

        return n % 10 + sum_of_digits(n // 10)


# Unit tests using built-in test suite

class TestSumOfDigits(unittest.TestCase):

    def test_sum_of_digits_positive(self):

        self.assertEqual(sum_of_digits(123), 6)



    def test_sum_of_digits_negative(self):

        self.assertEqual(sum_of_digits(-123), None)


    def test_sum_of_digits_type(self):

        with self.assertRaises(TypeError):

            sum_of_digits('abc')
if __name__ == '__main__':

unittest.main() ```

Edit: trying to cleanup hn formatting for readability

> Edit: trying to cleanup hn formatting for readability

HN code formatting is simple, prefix each line with 2 spaces and then you don't need any extra blank lines like with normal paragraphs.

  class TestSumOfDigits(unittest.TestCase):
      def test_sum_of_digits_positive(self):
          self.assertEqual(sum_of_digits(123), 6)

      def test_sum_of_digits_negative(self):
          self.assertEqual(sum_of_digits(-123), None)

      def test_sum_of_digits_type(self):
          with self.assertRaises(TypeError):
              sum_of_digits('abc')

  if __name__ == '__main__':
      unittest.main()
``` does nothing, it's just noise here.
> Are these language models better than current offshore outsourced coders? These can code too, sort of, and yet they don't threaten the software industry (much).

I felt kind of offended by this biased view (especially the “sort of" part). Just because one is not from the same country as the OP, it doesn’t mean they are any inferior.

I'm not from any of the countries you may be thinking of.

I'm talking about outsourcing software to the lowest bidder - who is almost always "somewhere" abroad. And isn't really a competition to a skilled SE.

Rephrase it how you like, but it's a real effect.

There’s a bias towards coding capabilities amongst testers (and perhaps trainers) of ChatGPT.

I bet it has (or can have) a similar level of capability when it comes to chemistry, biology, finance, law, etc. - all human knowledge that is expressible as text or formulae.

With regards to software engineering, a great amount of time is currently being wasted by coders trying to solve problems that have already been solved by others. Some of the solutions for that previously included libraries, SaaS, and Stack Overflow.

Now we have another tool at our disposal to 10x all software engineers (and perhaps the same for other industries).

I think the question is what happens when you're able to 10x all software engineers but don't have job market demand to match the 10x increase. 90% layoffs? Maybe not 90% because these processes aren't perfectly efficient or evenly distributed, and also because you can increase productivity without affecting demand to some extent, but what's the %? 30-50%? That's still huge.
Perhaps we'll have Jevons paradox, and instead of reducing the workforce, we'll accelerate software eating the world.

A lot of software is crappy. The extra productivity could go partially into quality improvement.

We haven’t automated 10% of what could be automated, especially in tasks that were previously not cost-efficient to automate or that required AI tech to automate.
My understanding is that much of automation difficulties are actually to do with interactions with the physical world. We still don't have a machine for folding laundry that matches human performance.

Coding is nice for AI to overtake because it's all abstract (apart from context). The problem domain is literally just string to string mapping.

Coding may be abstract, but execution of the resulting program is not. And results of the execution is driven by real world needs. Truth is that a human can invent things because it can pattern match across whole domains. You can say there is a mechanic solution to that, how can we do an algorithm that have the same result. AI cannot unless the algorithm was already created. I think the current state of AI is great for searching and creating starting point, but it can never get us to the finish line.
Finally a software engineering silver bullet post-No Silver Bullet.
oh wait until you realize that most software is basically the same crud and most "unique special solutions" to problems are not so unique as you have thought.

Finally the most common reason why the "stack is hard" in startups is because there was an "all knowing" coder who build a system which he cant be replaced out of.

As a freelancer is always nice to see how quickly they shift their mannors if you show them that "you can do it too" and that all that is needed to break a stack like that is reading up on the 15 frameworks they used to build it.

All in all i dont think AI will replace us, but mainly because its going to be cheaper to hire a studied IT veteran than to use the AI.

Are the times where we are treated specially over? yes indeed. We never where more than handyman for computers.

If the software you are working on is that simple then you can simply auto generate it using a code generator. Which is what I do at work for CRUD stuff. No need for an AI. And hey it hasn’t replaced my job.
yeah well, try thinking about a crud generator that has read all definitions of what a ShoppingCartItem is and generating it for you with all the bells and whistels instead of defining properties and hitting generate.

I have used many of the approaches you mean for years with symfony, but its not the same. Text replacement is clearly less adapdable to begin with

I think we will continue to be surprised by how effective GPT-X and other LLM models are at coding tasks. The main reason is that unlike math programming is a field where dozens or hundreds of correct solutions exist for every task.

All an LLM has to do is generate one out of hundreds of potential programs which solve the problem. It doesn't even have to generate perfect code, lots of profitable businesses are built off of buggy software.

What's wild about this is that for now ChatGPT seems to have the most benefit for 'stack overflow' programmers who rely on copy-pasting solutions to problems other people wrote. Now they can effectively generate a stack overflow answer to their specific question instantly!

For now AI seems like it will empower them.

I think documentation will be one of the first places we see it used a lot. I say this because today I'm writing documentation about how to use sprints, Jira and projects within our company today. I've written over 50 percent with the help of ChatGPT. Lets me focus on the less boring written stuff.
IMO for now it is the next iteration of stack overflow/google. I will 100% use this to ask a question on how to do something at the API/function level because it gives really good results.

Ex: "How can I create a webserver in python" will generate all of the boilerplate instead of me going and looking at the flask documentation.

> Or is it all bogus (with justification), and we're fine?

This is mostly my take. We are at the stage of truck drivers ten years ago who might have been freaking out about self-driving taking their jobs, and here we are in 2022 with a truck driver shortage.

I don't think GPT can be useful to the point of replacing software engineering without a consistent mental model of itself, time, and the world, and I predict it will approach the limits of what advanced-search pattern-matching can do without getting anywhere near those AGI capabilities.

I think these are much different. Trucking depends on humans due to infrastructure and complex problems of law, vision, last mile details, etc. I agree about near term limitations of this kind of model, but I think highly contextual and refined models for software will prove to be powerful enough (edit: by powerful enough, I mean powerful enough to transform how people write software) in many cases.

Software reiterates a lot, and generated solutions can be quickly vetted. A truck driving to the wrong destination or locking up en route is a much larger issues than a few seconds spent determining that a generated solution has a bug or doesn’t match a spec exactly.

If AI can stand on the shoulders of giants and people can vet its outputs, I’m fairly sure it will become more capable and safer to implement than self driving trucks, much faster.

The question I have is that if we can build more, faster, will we run out of work or will more people simply make more things?

There are huge incentives for wealthy companies to run more and more code on their infrastructure. Can we do more business digitally? Will it scale to provide more programming work, even if it’s heavily AI-assisted?

> Software reiterates a lot,

Well sure. That's why we have Wordpress. Javascript frameworks. And ten thousand other things. All the plug-ins of the last ten years have made me a more productive developer. But it hasn't reduced the demand for developers.

You should understand why there’s a lot of demand for programmers and how they demand might be impacted by ChatGPT
The amount of paranoia and fear mongering over gpt is insane. Firstly you don't get paid to churn out lines of code. You get paid to build, maintain and own systems. Secondly GPT is impressive but it is in the end a statistical matching machine prone to constant errors. It's very good as a tool to help humans but by it's very nature it's a terrible tool for automation. Compilers, high level languages and infinite free public libraries are far better tools to automate programming than GPT is. If your job is something like taking an English language question from someone and writing a short script for them in a programming language then I might be worried. But for the vast majority of programmers that's not the case
People you’re referring to are not talking about gpt as is, they’re talking about the rate it improves and extrapolate it to the near future.
No I'm talking about the inherent nature of deep learning algorithms.
Quality Assurance / Testing / Verification and Validation
Are you saying that these are the disciplines where humans will still be needed, or that these are disciplines that AI will take over?

IMO it's the former, simply because it's still a human world (a la "it's an analog world" ca. the DSP revolution) and nothing will replace human agency, accountability, and, ultimately, skin in the game.

I am saying that those are some of the careers that could expect a brighter outlook, post-singularity or what have you.

I agree that human accountability is something not likely to ever disappear.

A perspective from a non-professional who has been teaching himself to code:

My knowledge of exact functions is poor. I might know that I can use Framer library to animate on-page elements, but I have little to no understanding of the exact function needed to animate an object from, say, left-to-right on hover.

My normal workflow was to either read the documentation or search StackOverflow for answers. I would then have to rework the function to fit my current use case.

Now, I've been asking chatGPT directly to build the exact function for me.

So far, it's been a massive timesaver. I'll probably learn more if I dig through the documentation, but since I'm a hobbyist, not a professional, it's much more convenient for me to just get the information I need, without digging through Stackoverflow or documentation.

FYI this is probably not a good habit if you're trying to teach yourself, rather than just trying to get some task done. Reading documentation and searching StackOverflow are genuinely useful skills that take practice to get good at. Asking chatGPT is equivalent to just asking a friend for the answer, which is fine if you want to be efficient but not ideal for learning.

Obviously this doesn't matter if we think chatGPT is so good that you'll never need to read documentation yourself, but I think this is one of those situations where you need to be an expert before you're allowed to break the rules. Without experience, you won't know if chatGPT is really giving you everything you'd get from reading the docs yourself, or only a small and potentially inaccurate slice.

ChatGPT generally goes into a lot of details about its decisions, and provides detailed explanations. You still have to fact-check it, or verify by running the code, because it will make mistakes, but if that happens you can say "Hey, this isn't quite right because ..., how do I actually do this" and it will usually figure it out.

As a software dev of 10 years, I've done the "googling and reading documentation" a fair bit, which is kind of like stumbling around in the dark and feeling around to get a sense of where things are. For some well-defined, well-documented things, using ChatGPT to do the same is like having having an overconfident junior-intermediate dev to pair with who's familiar in a stack that I'm not. I still have to guide it a fair bit, and adjust my expectations to account for that overconfidence. But it can absolutely guide me as well, and teach me new things.

Yeah that makes sense, I'm just saying that if you didn't have 10 years of experience, you might not know how to guide it and might not notice when it doesn't seem quite right, and end up learning a lot less than you could.

It's a little bit like "you won't always have a calculator in your pocket". We do always have a calculator these days, but it's still useful to know how to do arithmetic so you can do things in your head, and notice if an answer doesn't make sense because you made a typo or something. Maybe in the future we'll all have chatGPT running locally on our phones or brain interfaces or whatever and be able to quickly train it on new datasets, but even then it will still be useful to know how to do things yourself.

I think that sometimes just copying and pasting from stack overflow is not much better than using chatGPT. But I agree with you about reading documentation. When you read the docs you build up a model of the system in your head. You can then play with this model in your head and come up with good solutions. This seems to be exactly what chatGPT can't do.

Also I'm senior and sometimes don't get to program for long periods of time. What I find is that when I don't program I get worse and solving higher level problems. The important part of programming is not about knowing APIs etc. It is modeling a problem and its solution in a domain that forces you to be precise. For that reason I would say to junior developers: Keep programming. It will make you a better problem solver and it will make you better at the things that chatGPT can't do.

Even for Stack Overflow, knowing what to copy is a learned skill. Stuff like "this accepted answer with 10k upvotes is 8 years old, I should scroll down and see if there's a newer answer with the right way to do it in $latest version". Maybe chatGPT can handle that, I don't know, I just think that finding the right answer within the right forum post is an important learned skill and I wouldn't want new people to miss out on it. It carries over to many other areas of your life.
As an aside, programming is the lowest "willpower depletion" activity I've ever done, apart from producing (i.e. in a software DAW) music. I can program for hours without getting particularly tired or feeling like I need a break.

Have to say I'm a little jealous of people who get to do this for a living.

I understand that and I'm fine with it, especially since I'm using it for a hobby project, and mostly looking up non-core libraries that I'll likely not use often again (such as framer motion).

My point is that it's making newbies like me way more productive than we have any right to be.

It will be interesting if it replaces stackoverflow considering that it probably trained itself on a lot of the questions and answers. On the one hand it's not much different than training on github or how google put translators out of business by using their translations. But it is just a more direct connection that demonstrates how these guys are funneling the wealth generated by other people's work up to themselves. Before stackoverflow the state of questions and answers on the web was really bad and full of noise. They took a risk and put a lot of effort and engineering knowledge into building it.

What really annoys me is that it will probably further train itself on this text I'm writing now. I am writing it in the spirit of exchange with other similar people. Not in the spirit of some mechanical turk worker for OpenAI.

I agree and I think this is similar to some people's very legitimate objections to Stable Diffusion and DALL-E. When people put artwork up on the internet they were expecting a handful of human beings to draw some enjoyment and maybe inspiration from it. They were not expecting billions of identical robots to ingest it in a nanosecond and remember and build off of it for eternity.

Scale matters, and robot and human inspiration are not ethically equivalent even if you think they are mechanically equivalent.

It's probably too early to tell, but my wild guess is that it will add another conceptual level of abstraction to programming. Instead of say pesudocode→code→assembly, you would get to description/case→code (via GPT)→assembly. I put assembly there on purpose; just like higher-level languages made programming more accessible and opened up the profession, I would expect this to (eventually) happen here as well. Now, how do we get there from here and which companies lose out in the new world, who knows? we hadn't had a paradigm shift like this since the iPhone.
I feel like this is a false opposition of AI vs Programmers. I would argue its never going to happen IMHO because AI + programmers is going to be so much better than either on their own.

Even if you have some thing generating amazing code you still need the energy to deploy it and check that it works and put the docs in the correct folder and email somebody.

So IMHO the future we all need to be looking it is how these tools can make us all more productive and then the juniors just get a different bunch of shit to learn. Maybe we develop more focus on writing tests to "prove" the software is correct as opposed to reviewing the code output? Idk, but I don't see the industry suddenly replacing devs given that the problems are not entirely reduced to simply writing code.

I've been looking at simple mathematical logic problems that are computer science adjacent and while I've had a little success on some simple toy scenarios, I've found it incredibly difficult to get it to provide even "directionally correct" solutions for anything useful.

Coding is probably a pretty restricted problem space. After all, there's only so many ways you can handle a string until something throws an error.

(comment deleted)
ChatGPT provides incorrect solutions to most iOS prompts relating to UI stuff that I gave it.

They would look correct to someone who knows how to program, but does not know iOS. Most of them even compile. But they're very wrong, even when I tried dozens of different inputs in an attempt to get the correct solution from it.

But are we confident GPT4 will fail in the same ways? What about 5? I've been coercing it to write code all day and it's honestly pretty good. It can get stuck, sure, but when it does and I provide it the compiler error it can fix in 50% of the time...
ChatGPT feels like the current aim assist debates in a lot of FPSses to me. It'll make you better at the shooting part of the game, perfect even. But, won't necessarily make you that much of a better player, because aiming is only one aspect of what makes someone good at FPSes. However, if someone is generally good enough or very good at the "not aiming" portion of the games, then having aim assist would drastically increase their overall skill.

Also, ChatGPT doesn't really work for any UI based programs at all. For example, if you want help using Excel, you'll get a list of instructions, but nothing visual to help you out.