Ask HN: What field in computer science will be AI proof
Seeing the rise of ChatGPT, I am convinced companies will be using this and services like it in the future to drastically reduce the number of engineers needed.
Is their a field that has relative job security in computer science that shouldn’t be impacted by similar AI products?
I know people will mock me for having these thoughts but I am only 3 years into my career so I already didn’t have the confidence some of the developers on this forum have.
Some initial thoughts include pivoting to work on lower level stuff like OS. I am highly motivated and am willing to put on hours. I just fear Im entering a race that I have no odds of finishing.
82 comments
[ 2.8 ms ] story [ 157 ms ] threadWhat evidence are you basing your conviction on?
Ask ChatGPT to solve unsolved mathematical and computer science problems or any basic international mathematical olympiad (IMO) questions and it falls before the starting line and will give incoherent answers.
Even if it moves an inch past the line, it cannot transparently explain as to how it got there in the first place.
In reality, we don't have artificial intelligence and until we create a machine that can be called intelligent we don't even know for sure if it's possible at all. In the foreseeable future human programmers will be needed, when the day comes that machines archive general intelligence all bets are off anyway.
This question seems to me a bit like asking what field should I specialize in if I believe we'll make first contact with an alien race in the next 10 years. Who knows?
or alternatively just ask it to solve simple addition. It can't reliably add large numbers together either. As good as it is at producing plausibly sounding language it has virtually no facilities to reason or learn axiomatic rules.
That's fine. It can always use a computer if need be.
> As good as it is at producing plausibly sounding language it has virtually no facilities to reason or learn axiomatic rules.
I've never been hired on the basis of learning axiomatic rules.
>I've never been hired on the basis of learning axiomatic rules.
Nope but you'd be fired really quickly if you couldn't communicate or follow some. I don't think you were trained to not throw coffee cups off the table like a cat via reinforcement, B.F. Skinner style. Which is really how we have to interact with these models (i.e. prompt 'engineering'). For humans to put artificial systems in task of really complex systems there needs to be a way to interact at a high level reliably and put boundaries (that is, rules) in place. As of today we largely have those outside of the models when necessary.
most software engineers today are employed to solve unsolved mathematical and computer science problems or IMO-style problems.
For example - how about becoming an AI programmer?
And there's also plenty of free "big data" stuff online to play around with. (Ultimately AI is going to have to train on large pools of data -- and someone's going to have to set up those training pools...)
I'd suggest the opposite, move up rather. What's difficult for a computer is what's been difficult for humans since the invention of programming, turning a humans "I have this problem" into a concrete program that solves that specific problem in a good way.
What's hard in writing software is not the writing of software but that the software solves the right problem in the right way. If you aim to do this, I don't think computers will be able to do a better job than humans for a long time.
Idea person -> Development work -> Idea person
The development work piece is done by expensive humans and takes lots of $$ and time.
If an AI chat bot was in the loop instead, and could quickly work with the idea person, why would anyone include a dev until it's at the end when you need it actually deployed or hosted - and maybe not even then.
Just loops of "this is what I want" "no, not quite, change this"...
I'm scared.
The people closest to a mop handle will stay employed the longest. If not physical, then digital.
Its going to have limited knowledge of internal company APIs and classes -- especially poorly designed ones. To use it effectively, as a software engineer, you need to grok the code to even write a prompt.
In that sense, since 70% of software is maintenance (rather than greenfield), most software engineers will be ok.
That makes it easier to isolate legacy cruft and reduce the number of people.
Maybe it is time to find something else to do with my life.
The Luddites said first, "this tech will make the whole factory more productive, let's keep everyone on board and split the gains between the owners and the workers. It's a win win."
The factory owners said, "no, I can keep 100% of the gains if I fire you all and hire unskilled workers."
Engineers today are looking at AI that's close to producing non toy code. We are in the same spot as the Luddites - but we have the ability to see it coming.
The answer is to consider: unionizing, starting or joining workers co-ops, fighting for legislation that takes care of workers basic needs (eg universal basic income) so displaced workers aren't made destitute, etc.
That’s happening today with enterprise cloud adoption. The bank CIO migrates to AWS, gets his bonus for eliminating capex, and AWS quietly hires the smartest people away. That brain drain will make it increasingly similar to communicating circa 1960 with AT&T. Entire categories of skilled worker are on their way out.
Iterate trillions of times per second.
No, thank you. I would prefer CEO's remain firmly able to experience pain.
Like, coal miners aren't useful anymore, but just telling the miners to "learn a new trade" is not solving the systemic issue of "if society advances, we should provide more for members of society".
> What do you do when 10% of your country's population is unemployable?
I usually frame this in the context of automation to avoid the "new jobs will appear" argument (which is poor regardless because it is avoiding the transitionary period that you allude to, but I digress). 10% is depression level unemployment. But the real question here is "How do we transition into a post scarcity society?" (10% is arbitrary, and we'd expect it to rise) I think a lot of people have a lot of answers but do not think deeply about this problem. There's a decent chance that this kind of event happens within our lifetimes. Handling properly would probably mean we've already needed to have started down this path. If handled poorly revolutionary bloodshed isn't unlikely. Post scarcity would be a big boon for humankind, but the process of getting there is potentially a great filter in of itself.
Personally, I don't think our modern concepts of things like Socialism, Capitalism, UBI, or other similar systems can accurately capture the nuance needed to make this transition while maximizing human benefits/quality of life. We are talking about a complete shift in our organizational structure that no one has ever seen before, so I don't think we should accept simple answers. But I do think this is a question that needs to become more commonplace and is not as absurd as when I proposed it a decade ago.
We coders are not in the same spot as the Luddites, most of the world is.
We produce enough to give everyone in the US a comfortable existence. Almost twice as much food is produced as we need, for every homeless person there are 30 vacant houses, people gladly share their productive time with others (even highly skilled labor, like engineering time in open source.
There are many, many socialist and anarchist thinkers who have written extensively on this topic.
center two <div> side-by-side
To center two <div> elements side-by-side, you can use the following CSS code:
Copy code
Here, the .container class is used to wrap the two <div> elements, and the display: flex property is applied to center the <div> elements horizontally. The justify-content: center property is also used to align the <div> elements to the center of the container. The left-div class is used to add a margin to the left <div> element, so that it is not touching the right <div> element.Nonetheless, I will eagerly follow its progress on advent of code exercises as they get harder.
Also, AI is a misnomer.
Otherwise you just have to stop worrying so much about it.
I am also fairly convinced that AI will create more work opportunities for humans, it's just that the kind of work will change. (some people predicted that automation would replace human labour, while in reality work shifted from manual labour workers to 'knowledge workers')
Also when AI gets even more powerful more precision and domain knowledge is required to express the requirements to get the desired result. It will also be very costly to discover an imprecise requirement or query of an AI after using the results of it for over a decade.
Chatgpt will become a core part of my workflow, a kind of pair-programmer on steroids. I'll bounce ideas off it, check for refactored implementations, and use it as a sounding board.
Last night it taught me about k-nn and cosine similarity so I could generate videogame recommendations for my site. It was the first time I heard about k-nn and cosine similarity. So now I can go online and learn about these concepts and apply them to build something. It did this in about 10 minutes.
Adapt and elevate yourself and your work.
Or don't and go the way of the Zend PHP Certified Engineer.
At the end of the day it’s not about the code shapes, the languages we make, it’s about correct machine state coupled to a context.
Eventually we’ll have a deduplicated data model of sufficient detail and the algorithms that can take a context and render it visually or audibly.
Networked bootstrapping, updating, and healing of the model will be the norm. There will be a hardware I/O kernel and the AI to sample a model with.
This is going to happen because, similar to no one having an obligation to past religious traditions, there is no obligation to your past computing traditions.
It’s going to happen because having programmers recreate code shapes to fidget with machine states is wasteful engineering practice.
Society learns and moves on. It does not sit still and babysit the sensibilities of its past.
Automating engineering is good engineering because it removes complexity and redundancy.
Reality does not care about our old philosophy. We have to be prepared to adapt to reality.
Option 2: Get close to the client. They're not able to clearly express a spec to us, they're not going to start doing so to a bot on their own.
Actually, I'm not that worried. My generation had to install OSes before doing anything, the next didn't install their software but at least they had access to chrome's F12. Nowadays kids grow in the walled garden of their phones.
Somebody is going to have to keep their hands dirty to keep the systems going, and it's going to be us; which brings me to:
Option 3: Get into security. Who is insane enough to trust ChatGPT to make changes to iptables/ADs/etc?
It’s game over once ChatGPT can write ChatGPT.
Then I thought, isn't that happening already? Hasn't somebody tried applying an AI to designing an AI?
If you don't believe that (which I'm in this camp and work in ML) then anything creative. Which also means a lot of things won't be taken over by AI. BUT that doesn't mean AI can't change the field significantly. For example, a few years from now AI might write quick routines for you. You could program latex and the AI would fit the picture for you in the place you want. Research is probably going to be the most long proof and we might even be symbiotic at HLI.
On a slightly different note, I think there's a relevant question that I like to ask people (and they don't like to answer). What do you do with a society where 10% of your workforce is unemployable because automation. The question is about the transitionary period to post scarcity. Transitions are rough and I think it is really clear that this possibly comes about in our lifetime.