Crap, every day I see signs of how AI is polluting reality, when it could and should only be used to improve humanity.
Also, I’m starting to believe AI is effectively going to destroy or resize several jobs. For example, a friend of mine told me it asked ChatGPT to write several lines of code and it did so, maybe 85% correctly. He went through the whole code and could find mistakes and correct them. Anyhow, long story short, it would have taken his a lot of time to write them himself.
It can write simple well known stuff. But as soon as you ask it more difficult things to code, it falls apart. Also, a program is not just 1 or 2 functions. It consists of a ton of code that needs to work well together has specific conditions it needs to meet for the program to work as expected.
I can ask it to write me a function that adds numbers, or do something with a well known python library. Or write some html code to display some shit. But writing an entire program is not easy.
Gpt just combines certain things it knows about. It does not know what the rest of your program is like or the software yours needs to work with. What it contains or what expectations need to be met.
Its like making a robot put a slice of cheese on bread and thinking it will replace a chef.
Just as what the article is about, it knows how to write a lot of bullshit and make it believable. The same goes with code. But things that have been written a million times before are easy to copy.
I dunno, it’s already pretty good at writing code and only going to get better. I agree with your conclusion though, mainly because as a software engineer writing code is actually not even the most complicated part of the job. If an AI could write perfect code every time it’d make my job a lot easier but I’d still have to do a significant amount of work such as:
- Figuring out which code to write in the first place! Work discovery if I’m senior enough or clarifying requirements.
- Co-ordination with other teams. Depending on the exact work this becomes more or less important
- Managing the lifecycle of a change including testing, deployment, monitoring and triaging issues.
- Ongoing maintenance. Staying on top of upcoming changes in adjacent or foundational teams, making sure our stuff will keep in working.
- Architecture design. You mentioned this in your post, understanding interactions with adjacent systems and how to organise our own systems to meet current and (reasonable) future requirements.
- Conducting non project work such as interviews, involvement in working groups to help decide overall technical direction of my group, upskilling myself and those around me.
That’s just off the top of my head, I’m sure I’ve missed some things. As much as I love writing code I honestly feel like if an AI could do that part it’d just take stress out of my day and give me more time to focus on those other parts of the job. Of course in reality more work would probably just be piled on but that’s just life I guess.