Hacker News new | ask | show | jobs
by jmfldn 1355 days ago
This keeps me awake at night I must admit. How do I best future proof my career?

I was sceptical about this until I started playing with GPT 3 and has it not only writen code for me, but also "explained" code to me. Sure, it's kind of limited right now, but it can only be a matter of time now before this all radically improves.

Maybe I should focus on system design and translating the messy real world into systems. That's the hardest bit of my job currently. I was also thinking of moving down the stack and getting deeply into security engineering or something like that (not that this is immune from AI either!!).

5 comments

Just take a look at the generated code and explanations. A surprising amount of it is subtly but fundamentally wrong because gpt is just a regurgitation engine. The issues may look superficial, but when you start looking at why they happen, you realize the truth. The ml tools are usually great at writing boilerplate that's the same every time. The instant you do anything else, they fall over. They're statistical autocomplete, not any kind of important change to the process of programming.

I don't see any reason to believe the current approaches can extend to something that actually changes programming. They're not based on understanding code, they're based on generating text that matches what they would expect to see given the context. They have no model of what code means, so they can't model why sometimes code is subtly different if there are no local contextual cues. And when there are your prompt would need to reproduce those contextual cues for it to key off of. In other words, you as the programmer still are directing the generation of the code. You're just doing it via an undocumented and somewhat unpredictable autocomplete.

This doesn't remove the need to have someone who knows what they're doing in the loop. Best case is that it reduces the amount of time you spend typing by a little bit. As long as your job is to know what you're doing rather than to generate text, the current systems are no threat to it.

This was pretty much my take too until I played with GPT 3. I suspect that you're still basically right, but the code it was writing, whilst a bit quirky and sometimes full of errors, showed a simulacra of creativity. I use this term as I know it's an illusion, it is what you suggest, but it's amazing to me that this trick can be pulled off. I got the program to write some fairly esoteric functional programming code. I then pasted some of my own code and got a convincing "explanation". If nothing else, if GPT 3 can simulate understanding in some narrow cases through what is essentially a giant search engine trained on a gazillion data points, then it's a good trick.

It's quite possible that this avenue doesn't scale to anything more broadly useful. We shouldn't mistake solving 20% of a problem to being on the right path. Maybe this remains as auto-complete on steroids and it's a dead end. I was honestly just surprised by GPT 3's apparent abilities, smoke and mirrors though they may be!

Sounds good, but... do we have models in our heads? Or are our minds simply huge and complicated neural networks?
Well, we absolutely have models in our heads. That's how we can understand what programs do.

It's possible our minds are also huge and complicated neutral networks, though I suspect that description is incomplete at best.

But the point is that current tools are trained on text generation. Something that would change programming would have to train on the meaning of programs. It's a rather different task, as it's no longer statistical. Doing it properly requires metacognition as well, to avoid falling into the trivial inconsistencies in most programming languages. And connecting that with real-world tasks that it hasn't seen before would require an understanding of the real world.

I'd call something with all of those capabilities AGI. I honestly don't think any system short of that will ever be more than an autocomplete, because it can only ever fit things together based on some statistics.

It was in 1982 that I for the first time heard about the fourth generation programming languages in which you only had to specify the problem and you would get the system for free. But now 40 years later, most of the programming is still done in third generation programming languages.

I am rather skeptical about the idea that AI is going to do away with programming soon. Yes, ML have shown some impressive results and will definitely show some improvements in the coming decades, but I think it will still take some time before the efficiency of electronic based ML systems will surpass that of organic based ML systems.

Please note that this blog post is from a start-up that aims to work at ML systems that aim at replacing programming. So, this blog is also in a sense a kind of job advertisement and/or investor pitch.

Even if this were possible, the value of starting over in the problem domain would require considerable starting investment. In the meantime, your competitors will continue to iterate and improve. Depending on the domain, it might take many years to get to feature parity, even with vastly increased productivity. Many companies or industries will also shy away from such an investment because the benefit might not actually be worth the cost. Also, I think Joel Spolsky's lesson will still apply -- it's human nature to think it will be better the second time through: https://www.joelonsoftware.com/2000/04/06/things-you-should-...
You can't guess the future so future proofing is next to impossible. Providing solutions to people wants and needs is the way to go. There you focus on the problem and then you look at what tools are available to provide the needed solution. People will always need food,recreation,sex, a place to live and religion to name a few. Figure how to fill needs in those areas and you'll be ok.
An AI capable of replacing human programmers will have to be a full AGI. At that point worrying about your career is probably moot.
Don't stress. Do what you enjoy.