Don't learn to code advises Jensen Huang of Nvidia. Thanks to AI everybody will soon become a capable programmer simply using human language.
Don’t learn to code: Nvidia’s founder Jensen Huang advises a different career path::Don't learn to code advises Jensen Huang of Nvidia. Thanks to AI everybody will soon become a capable programmer simply using human language.
Yes but Nvidia relies heavily on programmers themselves. Without them Nvidia wouldn't have a single product. The fact that he despite this makes these claims is worth taking note.
Lol. They're at the top of the food chain. They can afford the best developers. They do not benefit from competition. As with all leading tech corporations, they are protectionist, and benefit more from stifling competition than from innovation.
Also, more broadly the oligarchy don't want the masses to understand programming because they don't want them to fundamentally understand logic, and how information systems work, because civilization is an information system. It makes more sense when you realize Linux/FOSS is the socialism of computing, and anti-competitive closed source corporations like Nvidia (notorious for hindering Linux and FOSS) are the capitalist class of computing.
Just like we can now uss LLM to create letters or emails with a tone, it’s not going to be a big leap to allow it to do similar with coding. It’s quite exciting, really. Lots of people have ideas for websites or apps but no technical knowledge to do it. AI may allow it, just like it allows non artists to create art.
I use AI to write code for work every day. Many different models and services, including https://ollama.ai on my own hardware. It's useful for a developer when they can take the code and refactor it to fit into large code-bases (after fixing its inevitable broken code here and there), but it is by no means anywhere close to actually successfully writing code all on its own. Eventually maybe, but nowhere near anytime soon.
It might not make him wrong, but he also happens to be wrong.
You can't compare AI art or literature to AI software, because the former are allowed to be vague or interpretive while the latter has to be precise and formally correct. AI can't even reliably do art yet, it frequently requires several attempts or considerable support to get something which looks right, but in software "close" frequently isn't useful at all.
In fact, it can easily be close enough to look right at first glance while actually being catastopically wrong once you try to use it for real (see: every bug in any released piece of software ever)
Even when AI gets good enough to reliably produce what it's asked for first time & every time (which is a long way away for quite a while yet), a sufficiently precise description of what you want is exactly what programmers spend their lives writing. Code is a description of a program which another program (such as a compiler) can convert into instructions for the computer. If someone comes up with a very clever program which can fill in the gaps by using AI to interpret what it's been given, then what they've created is just a new kind of programming language for a new kind of compiler
Well difference is you have to know coming to know did the AI produce what you actually wanted.
Anyone can read the letter and know did the AI hallucinate or actually produce what you wanted.
On code. It might produce code, that by first try does what you ask. However turns AI hallucinated a bug into the code for some edge or specialty case.
Hallucinating is not a minor hiccup or minor bug, it is fundamental feature of LLMs. Since it isn't actually smart. It is a stochastic requrgitator. It doesn't know what you asked or understand what it is actually doing. It is matching prompt patterns to output. With enough training patterns to match one statistically usually ends up about there. However this is not quaranteed. Thus the main weakness of the system. More good training data makes it more likely it more often produces good results. However for example for business critical stuff, you aren't interested did it get it about right the 99 other times. It 100% has to get it right, this one time. Since this code goes to a production business deployment.
I guess one can code comprehensive enough verified testing pattern including all the edge cases and with thay verify the result. However now you have just shifted the job. Instead of programmer programming the programming, you have programmer programming the very very comprehensive testing routines. Which can't be LLM done, since the whole point is the testing routines are there to check for the inherent unreliability of the LLM output.
It's a nice toy for someone wanting to make a quick and dirty test code (maybe) to do thing X. Then try to find out does this actually do what I asked or does it have unforeseen behavior. Since I don't know what the behavior of the code is designed to be. Since I didn't write the code. good for toying around and maybe for quick and dirty brainstorming. Not good enough for anything critical, that has to be guaranteed to work with promise of service contract and so on.
So what the future real big job will be is not prompt engineers, but quality assurance and testing engineers who have to be around to guard against hallucinating LLM/ similar AIs. Prompts can be gotten from anyone, what is harder is finding out did the prompt actually produced what it was supposed to produce.
Until somewhere things go wrong and the supplier tries the "but an AI wrote it" as a defense when the client sues them for not delivering what was agreed upon and gets struck down, leading to very expensive compensations that spook the entire industry.
As a developer building on top of LLMs, my advice is to learn programming architecture. There's a shit ton of work that needs to be done to get this unpredictable non deterministic tech to work safely and accurately. This is like saying get out of tech right before the Internet boom. The hardest part of programming isn't writing low level functions, it's architecting complex systems while keeping them robust, maintainable, and expandable. By the time an AI can do that, all office jobs are obsolete. AIs will be able to replace CEOs before they can replace system architects. Programmers won't go away, they'll just have less busywork to do and instead need to work at a higher level, but the complexity of those higher level requirements are about to explode and we will need LLMs to do the simpler tasks with our oversight to make sure it gets integrated correctly.
I also recommend still learning the fundamentals, just maybe not as deeply as you needed to. Knowing how things work under the hood still helps immensely with debugging and creating better more efficient architectures even at a high level.
I will say, I do know developers that specialized in algorithms who are feeling pretty lost right now, but they're perfectly capable of adapting their skills to the new paradigm, their issue is more of a personal issue of deciding what they want to do since they were passionate about algorithms.
In my comment elsewhere in the thread I talk about how, as a complete software noob, I like to design programs by making a flowchart first, and how I wish the flowchart itself was the code.
It sounds like what I'm doing might be (super basic) programming architecture? Where can I go to learn more about this?
Look up visual programming languages. When you apply a visual metaphor to programming it really is basically just really detailed and complex flow charts.
Having used Chat GPT to try to find solutions to software development challenges, I don't think programmers will be at that much risk from AI for at least a decade.
Generative AI is great at many things, including assistance with basic software development tasks (like spinning up blueprints for unit tests). And it can be helpful filling in code gaps when provided with a very specific prompt... sometimes. But it is not great at figuring out the nuances of even mildly complex business logic.
This.
I got a github copilot subscription at work and its useful for suggesting code in small parts, but i would never let it decide what design pattern to use to tackle the problem we are solving. Once i know the solution i can use ai, and verify its output to use in the code
I'm using it at work as well and Copilot has been pretty decent with writing out entire methods when I start with the jsdoc or code comments before writing the actual method. It's now becoming my habit to have it generate some near-working code or decent boilerplate.
I'm a junior dev that has been on the job for ~6 months. I found AI to be useful for learning when I had to make an application in Swift and had zero experience of the language. It presented me with some turd responses, but from this it gave me the idea of what to try and what to look into to find answers.
I find that sometimes AI can present a concept to me in a way I can understand, where blogs can fail. I'm not worried about AI right now, it's a tool to make our jobs easier!
I think it will get good enough to do simple tickets on its own with oversight, but I would not trust it without it submitting it via a pr for review and iteration.
I agree, it would take at least a decade for fully autonomous programming, and frankly, by the time it can fully replace programmers it will be able to fully replace every office job, at which point were going to have to rethink everything.
Anyone who understands how these models works can see plain as day we have reached peak LLM. Its enshitifying on itself and we are seeing its decline in real time with quality of generated content. Dont believe me? Go follow some senior engineers.
There is a reason they didn't offer specific examples. LLM can still scale by size, logical optimization, training optimization, and more importantly integration. The current implementation is reaching it's limits but pace of growth is also happening very quickly. AI reduces workload, but it is likely going to require designers and validators for a long time.
Fediverse is sadly not as popular as we would like sorry cant help here. That said i follow some researchers blogs and a quick search should land you with some good sources depending on your field of interest
You asked the question already answered. Pick your platform and you will find a lot of public research on the topic. Specifically for programming even more so
Large language models are amazingly useful coding tools. They help developers write code more quickly.
They are nowhere near being able to actually replace developers. They can't know when their code doesn't make sense (which is frequently). They can't know where to integrate new code into an existing application. They can't debug themselves.
Try to replace developers with an MBA using a large language model AI, and once the MBA fails, you'll be hiring developers again - if your business still exists.
Every few years, something comes along that makes bean counters who are desperate to cut costs, and scammers who are desperate for a few bucks, declare that programming is over. Code will self-write! No-code editors will replace developers! LLMs can do it all!
No. No, they can't. They're just another tool in the developer toolbox.
I've been a developer for over 20 years and when I see Autogen generate code, decide to execute that code and then fix errors by making a decision to install dependencies, I can tell you I'm concerned. LLMs are a tool, but a tool that might evolve to replace us. I expect a lot of software roles in ten years to look more like an MBA that has the ability to orchestrate AI agents to complete a task. Coding skills will still matter, but not as much as soft skills will.
Think about a modern application. Think about the file structure, how the individual sources interrelate, how non-code assets are stored, how applications are deployed, and all the other bits and pieces that go into an application. An AI can't know any of that without being trained - by a human - on the specifics of that application's needs.
I use Copilot for my job. It's very nice, and makes my job easier. And if my boss fired me and the rest of the team and tried to do it himself, the application would be down in a day, then irrevocably destroyed in a week. Then he'd be fired, we'd be rehired, and we - unlike my now-former boss - would know things like how to revert the changes he made when he broke everything while trying to make Copilot create a whole new feature for the application.
AI code generation is pretty cool, but without the capacity to know what code actually should be generated, it's useless.
Well, I sometimes see a few tools at my job, which are supposed to be kinda usable by people like that. In reality they can't 90% of time.
That'd be because many people think that engineers deal in intermediate technical details, and the general idea is clear for this MBA. In fact it's not.
At best, in the near term (5-10 years), they'll automate the ability to generate moderate complexity classes and it'll be up to a human developer to piece them together into a workable application, likely having to tweak things to get it working (this is already possible now with varying degrees of success/utter failure, but it's steadily improving all the time). Additionally, developers do far more than just purely code. Ask any mature dev team and those who have no other competent skills outside of coding aren't considered good workers/teammates.
Now, in 10+ years, if progress continues as it has without a break in pace... Who knows? But I agree with you, by the time that happens with high complexity/high reliability for software development, numerous other job fields will have already become automated. This is why legislation needs to be made to plan for this inevitability. Whether that's thru UBI or some offshoot of it or even banning automation from replacing major job fields, it needs to be seriously discussed and acted upon before it's too little too late.
You remember when everyone was predicting that we are a couple of years away from fully self-driving cars. I think we are now a full decade after those couple of years and I don't see any fully self driving car on the road taking over human drivers.
We are now at the honeymoon of the AI and I can only assume that there would be a huge downward correction of some AI stocks who are overvalued and overhyped, like NVIDIA. They are like crypto stock, now on the moon tomorrow, back to Earth.
Waymo exists and is now moving passengers around in three major cities. It's not taking over yet, but it's here and growing.The timeframe didn't meet the hype but the technology is there.
Yes, the technology is there but it is not Level 5, it is 3.5-4 at best.
The point with a full self-driving car is that complexity increases exponentially once you reach 98-99% and the last 1-2% are extremely difficult to crack, because there are so many corner cases and cases you can't really predict and you need to make a car that drives safer than humans if you really want to commercialize this service.
Same with generative AI, the leap at first was huge, but comparing GPT 3.5 to 4 or even 3 to 4 wasn't so great. And I can only assume that from now on achieving progress will get exponentially harder and it will require usage of different yet unknown algorithms and models and advances will be a lot more modest.
And I don't know for you but ChatGPT isn't 100% correct especially when asking more niche questions or sending more complex queries and often it hallucinates and sometimes those hallucinations sound extremely plausible.
It's just as crazy as saying "We don't need math, because every problem can be described using human language".
In other words, that might be true as long as your problem is not complex enough to be able to be understood using human language.
You want to solve a real problem? It's way more complex with so many moving parts you can't just take LLM to solve it, because that takes an actual understanding of a problem.
Maybe more apt for me would be, “We don’t need to teach math, because we have calculators.” Like…yeah, maybe a lot of people won’t need the vast amount of domain knowledge that exists in programming, but all this stuff originates from human knowledge. If it breaks, what do you do then?
I think someone else in the thread said good programming is about the architecture (maintainable, scalable, robust, secure). Many LLMs are legit black boxes, and it takes humans to understand what’s coming out, why, is it valid.
Even if we have a fancy calculator doing things, there still needs to be people who do math and can check. I’ve worked more with analytics than LLMs, and more times than I can count, the data was bad. You have to validate before everything else, otherwise garbage in, garbage out.
It’s sounds like a poignant quote, but it also feels superficial. Like, something a smart person would say to a crowd to make them say, “Ahh!” but also doesn’t hold water long.
And because they are such black boxes, there's the sector of Explainable AI which attempts to provide transparency.
However, in order to understand data from explainable AI, you still need domain experts that have experience in interpreting what that data means and how to make changes.
It's almost as if any reasonably complex string of operations requires study. And that's what tech marketing forgets. As you said, it all has to come from somewhere.
If you ever write code for a living first thing you notice is that people can't explain what they need by using natural language ( which is what English, Mandarin etc is), even if they don't need to get into details.
I don't think he's seen the absolute fucking drivel that most developers have been given as software specs before now.
Most people don't even know what they want, let alone be able to describe it. I've often been given a mountain of stuff, only to go back and forth with the customer to figure out what problem they're actually trying to solve, and then do it in like 3 lines of code in a way that doesn't break everything else, or tie a maintenance albatross around my neck for the next ten years.
And that's really what all these guys saying "AI will take er jobs" don't understand. Good programmers are not just good coders, coding is really the easy part. They're also good analysts and listeners. I understand what he's saying - if you spend time accruing specific domain knowledge instead of computer science then you can perhaps make better, bespoke solutions because the "coding" can be handled by AI. But in present day, AI makes garbage code all the time and you'll be left there not being able to do amything about it because it doesn't make any sense to you. So who do you call? Someone who can code. Even if we get to this hypothetical dream scenario where you tell an AI to do something and it just does it perfect (gigantic IF), who's making that AI? The interface for it? The important safety nets to make sure it doesn't go on a rampage? Itself? Too much context is already lost in conversations between humans, let alone an AI. I can think of one kind of AI that would be able to do it perfectly though (assuming AIs could be perfected, that is), and that's an AI pre-equipped with full understanding of the domain. But then in that case, why do you need the human in the mix at all?
Yesterday, I had to deal with a client that literally contradicted himself 3 times in 20 minutes, about whether a specific Date field should be obligatory or not. My boss and a colleague who were nearby started laughing once the client went away, partly because I was visibly annoyed at the indecision.
I don't see how it would be possible to completely replace programmers. The reason we have programming languages instead of using natural language is that the latter has ambiguities. If you start having to describe your software's behaviour in natural language, then one of three things can happen:
either this new natural programming language has to make assumptions about what you intend, and thus will only be capable of outputting a certain class of software (i.e. you can't actually create anything new),
or you need to learn a new way of describing things unambiguously, and now you're back to programming but with a new language,
or you spend forever going back and forth with the generator until it gives you the output you want, and this would take a lot longer to do than just having an experienced programmer write it.
Here’s an honest take. Let me preface this with some credential: I’m an AI Engineer with many years in field. I’m directly working on right now multiple projects that augment and automate code generation, documentation, completion and even system design/understanding. We’re not there yet. But the pace of progress in how fast we are improving our code-AI is astounding. Exponential growth in capability and accuracy and utility.
As an anecdotal example; a few years ago I decided I would try to learn Rust (programming language), because it seemed interesting and we had a practical use case for a performant, memory-efficient compiled language. It didn’t really work out for me, tbh. I just didn’t have the time to get very fluent with it enough to be effective.
Now I’m on a project which also uses Rust. But with ChatGPT and some other models I’ve deployed (Mixtral is really good!) I was basically writing correct, effective Rust code within a week—accepted and merged to main.
I’m actively using AI code models to write code to train, fine-tune, and deploy AI code models. See where this is going? That’s exponential growth.
I honestly don’t know if I’d recommend to my young kids programming as a career now even if it has been very lucrative for me and will take me to my retirement just fine. It excites me and scares me at the same time.
There is more to a program then writing logic. Good engineers are people who understand how to interpret problems and translate the inherent lack of logic in natural language into something that machines are able to understand (or vice versa).
The models out there right now can truly accelerate the speed of that translation - but translation will still be needed.
An anecdote for an anecdote. Part of my job is maintaining a set of EKS clusters where downtime is... undesirable (five nines...). I actively use chatgpt and copilot when adjusting the code that describes the clusters - however these tools are not able to understand and explain impacts of things like upgrading the control plane. For that you need a human who can interpret the needs/hopes/desires/etc of the stakeholders.
I think this is bullshit regarding LLMs, but making and using generative tools more and more high-level and understandable for users is a good thing.
Like various visual programming means, where you sketch something working via connected blocks (like PureData for sounds), or in Matlab I think one can use such constructors to generate code for specific controllers involved in the scheme, or like LabView.
Or like HyperCard.
Not that anybody should stop learning anything. There's a niche for every way to do things.
As someone who's had a bit of exposure to PLCs and ladder logic, and dabbled in some more 'programming' type languages, I would love to find some sort of 'language' that fits together like ladder logic, but for more computery type applications.
I like systems, not programs. Most of my software design is done by building a flowchart, then stumbling around trying to figure out how to write that into code. I feel it would be so much easier if I could just make the flowchart be the code.
In some sense this is regressive, but I agree that ladder logic is more intuitive.
I hated drawing flowcharts in university, but at this point have learned that if you understand what you're doing, you can draw a flowchart. If you don't, you shouldn't have written that program.
So yeah.
I think the environment to program "Buran" used such a language (that is, they'd draw flowcharts instead of code).
I can kind of see his point, but the things he is suggesting instead (biology, chemistry, finance) don't make sense for several reasons.
Besides the obvious "why couldn't AI just replace those people too" (even though it may take an extra few years), there is also a question of how many people can actually have a deep enough expertise to make meaningful contributions there - if we're talking about a massive increase of the amount of people going into those fields.
I think the Jensen quote loosley implies we don't need to learn a programming language but the logic was flimsy. Same goes for the author as they backtrack a few times. Not a great article in my opinion.
It's not really about the coding, it's about the process of solving the problem. And ai is very far away from being able to do that. The language you learn to code in is probably not the one you will use much of you life. It will just get replaced by which ai you will use to code.
That's how this statement and the state of the industry feels. The ai tools are empowering senior engineers to be as productive as a small team, so even my company laid off all the junior engineers.
So who's coming up behind the senior engineers? Is the ai they use going to take the reigns when they retire? Nope, the companies will be fucked.
Just because you're the CEO of a big company, it doesn't mean you know what you're talking about. In this case it's clear he doesn't. You may say "but the company makes a lot of money" and that's not a point in his favor either, as this is a clear example of survivor bias. Coding is going nowhere and the companies laying off people are just a proof CEOs don't know what they are doing.
For years there have been open source solutions ready for basically any purpose, and if that has not made coders useless, nothing will. Maybe they will change designation, but people that understand what's going on at a technical level will always be necessary.
There have been some situations in the past few years that made the situation less clear-cut, but that doesn't make coders optional.
Nvidia is such a stupid fucking company. It's just slapping different designs onto TSMC chips. All our "chip companies" are like this. In the long run they are all going to get smoked. I won't tell you by whom. You shouldn't need a reminder.
Designing a chip is something completely different from manufacturing them. Your statement is as true as saying TSMC is such a stupid company, all they are doing is using ASML machines.
And please tell me, I have no clue at all who you're talking about.
The Chinese? I think their claim to fame is making processes stolen from TSMC work using pre-EUV lithography. Expensive AF because slow but they're making some incredibly small structures considering the tech they have available. Russians are definitely out of the picture they're in the like 90s when it comes to semiconductors and can't even do that at scale.
And honestly I have no idea where OP is even from, "All our chip companies". Certainly not the US not at all all US chip companies are fabless: IBM, Ti and Intel are IDMs. In Germany IDMs predominate, Bosch and Infineon though there's of course also some GlobalFoundries here, that's pure play, so will be the TSMC-Bosch-NXP-Infineon joint venture ESMC. Korea and Japan are also full of IDMs.
Maybe Britain? ARM is fabless, OTOH ARM is hardly British any more.
I'm so sick of the hyper push for specialization, it may be efficient but it's soul crushing. IDK maybe it's ADHD but I'd rather not do any one thing for more than 2 weeks.
Most people got jobs with no experience, or even education less than 40 years ago as long as they showed up and acted confident. Nowadays entry level internships want MScs and years of work xp with something that was invented yesterday