Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How to Deal with AlphaCode Anxiety?
18 points by nopilot on Feb 2, 2022 | hide | past | favorite | 18 comments
ML code generation systems like GitHub Copilot and now AlphaCode are impressive. Part of me finds them super interesting and exciting, including everything else that's happening in the larger deep learning/language models space.

However, a different part of me gets hit with a wave of anxiety whenever these advancements make the news. I've been coding since teenage days and will graduate in a few months. I have a job lined up and am thrilled about working there. Now it feels like I'm running against a clock until the career I am working very hard for will automate itself away.

Are my feelings reasonable? How do you deal with this? Do you feel threatened?

Well well.. Looks like someone has noticed we entered the Industrial Age some time ago! Have you heard about something called automation?

Do you know who did, and had to deal with it decades/ centuries ago? Every other type of workers. Farmers, metalsmiths, artisans, etc, etc. Everyone gradually moved to better jobs and now everyone agrees automation is great in the end, of course.

Frankly, I’ve thought for some time that Software engineers are about the most luddite group around at this point, and I have no problems at all to say this on this website.

Seriously, every other answer in this thread offers true and valuable insights, but as always, about everyone seems to thinks Software jobs should be “different” or “more safe” than the others for Some Reasons.

Which, to me, it’s Doubly sad: for the reason that, at the beginning of computers (less than a century ago), the dream was Already to reach full automation. AI was Always the plan. What happened to that?

Why are many software engineers the ones with most problems with it now? (To the point of denying that AI will ever replace large parts of their current daily job. Of course it will- which doesn’t mean it will replace us ofcourse, just like there’s still farmers around- but the job will be pretty different. And we should be the first to know)

When did the annoying daily job of building boilerplate and knowing arcane syntax by heart become a career anyway, and an untouchable one at that?

Of course it’s easy for me because I’m fairly young, but tbh the sooner we enter the mindset that our job will change Exactly how all the others have, the better…

Sorry if this was ranty but I’ve followed these discussions for a while

> Which, to me, it’s Doubly sad: for the reason that, at the beginning of computers (less than a century ago), the dream was Already to reach full automation. AI was Always the plan. What happened to that?

The goal of out right automation has been consistently taken backseat to the advances of augmentation - tracing back to Englebart's lab at Stanford vs. SAIL and all of the other AI research labs. One laid the foundation of personal computing, the other, umm, surely some important things, but nothing nearly as radical.

It's a subtle difference between automation and augmentation. Both are rooted in eliminating labor, but that does not necessarily mean replacing people. Despite tools like compilers, databases, and frameworks having eliminated plenty of programmer labor, there are more programmers than ever. Very few need to write machine code or implement a b-tree though.

Copilot and AlphaCode can easily be viewed as extension of that. Much like an IDE can fill in the blanks while refactoring, copilot can go and fetch a method implementation from the hive mind that's been written a thousand times before.

Like you said, the end goal is automation, not writing software. Writing software isn't a goal in and of itself.

Of course you could say these tools will reduce demand for software developers but you could have said that for just about any other advancement in our tooling. You could have called the top of the market for software and developers in the past several decades and you would have been wrong every single time.

As our tools solve our existing problems, we focus on solving new ones, and as long as we have problems we'll need problem solvers.

You don’t see how someone might have a visceral reaction to the prospect of being automated out of a job? Especially for those people living in countries with weak or no social nets? Plus, for a lot of us programming as it’s done now is a big part of our identity, and it’s understandable how people might feel uncomfortable about something that casts uncertainty about our place in the future.

The historical Luddites were not anti-tech. They were lashing out against automation reducing their status in society and financial security

I can understand a person taking seriously the possibility that they will lose their job to automation. I live in a country with a weak social safety net (United States).

If programming is "a big part" of your identity, get help for that. People work to make money. We are all in charge of our career choices, and we should pay attention to changes that might affect our work future. Having been in the programming business for four decades I've had to pay attention to the possibility that my job would get outsourced overseas -- that was a big thing a couple of decades ago, though it never happened to me because I made sure my skills weren't easily outsourced overseas or fobbed off on juniors with less experience.

Getting worried, feeling uncomfortable, having a "visceral reaction" won't do any good. Nor will trying to push back against progress. What will do some good is paying attention to actual trends that affect your career, and figure out what you can safely ignore (like AI writing production code anytime soon). Everyone who doesn't want to end up out of a job has to continually adjust their skills and career path. None of us has a guaranteed "place in the future," it's up to us to position ourselves for reasonably likely futures.

Here's a piece of advice that doesn't answer your question directly. Go. Out. And. Meet. People.

That's one of the strongest safety nets you can get for you career. No one can predict whether their industry is going to be fully automated in x years or not. But knowing the right people, having a strong network, will increase your chance of survival tenfold if not more.

You're young, you already know how to code, you've got the tech part covered. You're likely competent enough to be hired. But if you're anything like most tech people, your social skills are an untapped reservoir of growth.

No. I have worked as a programmer for 40 years. During that time predictions that programming would get automated away or made so simple anyone could do it have come around many times. Writing code that passes tests is just one part of programming, and not even the hardest part.

I wouldn’t worry about it. AI may simplify some tasks and give us new tools, but I don’t see human programmers going away. Demand for skilled programmers is higher than ever.

I don't feel threatened at all. Until we have true general AI like we see in the movies, there's no chance that an AI like AlphaCode could design software, and there's no chance that it could write actual code because it wouldn't be able to name variables. Because of these two things, AlphaCode will always need to take in very specific instructions and output incomprehensible code. Does that sound familiar? That's essentially what a compiler does. There are only two differences that I can see AlphaCode ending up as compared to a compiler.

The first is that we could end up with a programming language that can accept natural language as its syntax. The best case scenario of this is that more people learn how to code as they don't need to learn strict specialized syntax to program. However, whenever this topic comes up it always turns out to be more of a pipe dream, because when you are programming you want precision, and to have precision you need strict specialized syntax. In other words, the advantages of not needing strict syntax are small unless you are not a programmer, and the disadvantages are massive as you might be misunderstood and end up with hard to fix bugs.

The second possibility is that we could end up with generation systems that can build small, well defined functions for us, similar to the problems that AlphaCode is already solving. The problem with this is verifying correctness. As mentioned before, the code that AlphaCode outputs is unreadable. As such, verifying correctness would likely take longer than building it yourself. As a result, anyone needing to use small, well defined functions would be better off using the existing solution of human built libraries. Because libraries are shared between so many programmers, it is much easier for bugs to be discovered and fixed.

So for my summary, all AlphaCode really is, is yet another attempt at a natural language type of compiler, which even if it succeeds wouldn't affect programmers much as languages being well defined is critical for making sure everything runs correctly.

Coding is just the last step in providing a solution to a need. It arguably should be automated away.

What we humans do which is of great value is understanding problems and needs, considering known and possible unknown constraints, and finding a balanced solution which hopefully best meets the need.

Ironically, since most problems are described by humans (who tend not to be great at communicating), that big phase where we attempt to understand the real need is difficult and likely impossible for a computer to ever do. Just look at how underwhelming and frustrating current digital assistants are…

I look forward to being able to specify a class of need and some details and allowing the computer to code an implementation.

I assume that good code automation is not in our sights. We've seen Copilot has a lot of quirks and is based on other's code, which isn't always directly applicable or correct. A good engineer will be better than a machine for as long as we're alive. That's my potentially ignorant take though. Take it with a grain of salt if you think otherwise.

Development is problem solving. Copilot will tell you how other people wrote a (for e.g.) database transaction, but it cannot tell you how to utilise the result. It cannot and, likely, will not every understand intention or goals. It cannot problem solve - only you and your cohort can.

Just read the latest reports on what is happening with IBM and Watson. That is a straight-forward use case, a simple classification goal with some decision support, and the real world has hit it like a steam train hitting a bowl of jelly.

No more so than "no code" tools. I imagine the first assembly programmers might have seen the first compilers as an existential threat.

But the job of a software engineer is to solve problems and add value w/ software. A small part of that is writing code. Most of it is designing the right level of abstraction, the interfaces and so forth.

Lastly, as mentioned elsewhere, we will probably always need human debuggers.

It was assembly language programmers who wrote the first compilers. Higher-level compiled languages were not a threat, because writing code and knowing languages are not the key important skills of software development, and programmers knew that back in the olden days of assembly.

Tech is always changing, so your current experience and qualifications are always on a timer regardless.

Personally, I enjoy solving problems with computers and rather dislike the tedium of actually writing and debugging software. If a ML model could take that off my hands I'd be ecstatic.

Beating the median on a coding competition isn't commercially useful because the median didn't 100% the task.

Something almost everybody is forgetting is that this kind of technology has an asymptote embedded in it's structure and it will always be a bridesmaid but not a bride.

Before Elon Musk predicted full self-driving, robo-taxis, and colonies on Mars "next year" for a decade, pundits predicted that automation (either AI or no-code) would eliminate programmers. The only actual threat to employment as a programmer came from outsourcing overseas. Even though that's vastly easier today (thank, Internet) than it was back in the '80s and '90s when management was keen on it, it never happened at large enough scale to put a dent in the demand for skilled programmers. Apparently no one at the HBR or WSJ figured that China and India might develop domestic demand for programmers.

My job is to develop solutions, not to write code. I'm using GitHub Copilot today and I will gladly use the latest and greatest AI to help me in my work.

Good luck trying to teach a robot to code with humans in mind from scratch. Like a very pedantic genie.

Not reasonable... if your job can be automated away you probally dont want to be doing it

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact