Uncle Bob - The Long Reach of Code, Automating Programming, and Developing Coding Talent

Uncle Bob - The Long Reach of Code, Automating Programming, and Developing Coding Talent

Dwarkesh PodcastNov 28, 202045m

Dwarkesh Patel (host), Robert Martin (guest)

Limits of AI and automation in programmingEvolution of programming tools and future development paradigmsTeam creativity, leadership, and agile misconceptionsEducation pathways: universities vs trade schools and self-learningAptitude for programming, hiring, and apprenticeship modelsDomain knowledge, design sense, and the “beauty” of softwareProfessional ethics, licensing, quotas, and politics in tech

In this episode of Dwarkesh Podcast, featuring Dwarkesh Patel and Robert Martin, Uncle Bob - The Long Reach of Code, Automating Programming, and Developing Coding Talent explores uncle Bob on AI, coding careers, ethics, and true craftsmanship Robert “Uncle Bob” Martin argues that while tools and AI will increasingly assist programmers, true automation of programming would require human-level sentience and deep business intuition, which he believes are far off. He traces the evolution of programming tools from binary to modern IDEs and predicts future environments will feel more like supervising and “training” smart assistants than being replaced by them. Martin discusses how to develop and recognize programming talent, emphasizing trade-like apprenticeship, domain knowledge, and long-term design sense over formal university credentials. He also calls for professional standards and ethical structures in software, while being wary of government-imposed licensing and of quota systems that lower standards rather than helping marginalized groups.

Uncle Bob on AI, coding careers, ethics, and true craftsmanship

Robert “Uncle Bob” Martin argues that while tools and AI will increasingly assist programmers, true automation of programming would require human-level sentience and deep business intuition, which he believes are far off. He traces the evolution of programming tools from binary to modern IDEs and predicts future environments will feel more like supervising and “training” smart assistants than being replaced by them. Martin discusses how to develop and recognize programming talent, emphasizing trade-like apprenticeship, domain knowledge, and long-term design sense over formal university credentials. He also calls for professional standards and ethical structures in software, while being wary of government-imposed licensing and of quota systems that lower standards rather than helping marginalized groups.

Key Takeaways

AI will augment programmers, not replace them.

Martin maintains that fully automating programming would require human-like sentience and nuanced business understanding; instead, AI will act like an autopilot that needs a skilled human constantly supervising, correcting, and handling edge cases.

Get the full analysis with uListen AI

Programming is best learned as a trade with mentorship.

He argues most core programming skills can be acquired via bootcamps, trade schools, and on-the-job mentorship in one to two years, making a four-year CS degree a poor return if the sole goal is programming proficiency.

Get the full analysis with uListen AI

Strong programmers are detail-obsessed, analytical, and able to focus deeply.

Not everyone can program effectively; the role demands comfort with low-level details, Boolean logic, and long, intense concentration, traits Martin estimates only a small minority of the population possess.

Get the full analysis with uListen AI

Domain knowledge is as crucial as technical skill.

To write useful software, programmers must deeply understand the business domain (insurance, telecom, finance, etc. ...

Get the full analysis with uListen AI

Team creativity requires clear leadership, not pure egalitarianism.

He contends teams generate more ideas than individuals but need a strong leader to choose and direct them; leaderless, fully “flat” agile teams tend to become unfocused and ineffective.

Get the full analysis with uListen AI

Programming craft includes an aesthetic ‘design sense’ developed over years.

Like writers or musicians, experienced developers develop an intuitive sense for elegant code and architectures—an appreciation of “beauty” in software that only emerges with extensive exposure and practice.

Get the full analysis with uListen AI

The software profession needs ethics and standards, but not blunt quotas.

Given society’s dependence on software, Martin believes some form of professional self-regulation is inevitable and preferable to government mandates; he criticizes quota systems for lowering standards and unintentionally devaluing the people they aim to help.

Get the full analysis with uListen AI

Notable Quotes

In order to finally replicate programming, that machine would have to have human sentience, and we are very, very far away from that.

Robert C. Martin

We programmers are detail managers. We deal with all the mess.

Robert C. Martin

The way we program computers will be more like training a dog… but under no circumstances will there not be a programmer involved.

Robert C. Martin

To be a programmer, and a good programmer, this is a skill that you can learn at a community college or in a trade school over a period of a year, maybe a year and a half.

Robert C. Martin

There are beautiful designs, there are beautiful architectures, there are beautiful functions… understood as beauty only by people who have the experience to look and say, ‘Oh my goodness, that’s beautiful.’

Robert C. Martin

Questions Answered in This Episode

If full automation of programming requires sentience, what concrete milestones would indicate we’re getting closer to that threshold?

Robert “Uncle Bob” Martin argues that while tools and AI will increasingly assist programmers, true automation of programming would require human-level sentience and deep business intuition, which he believes are far off. ...

Get the full analysis with uListen AI

How should aspiring developers balance depth in one domain with the breadth Martin recommends across several industries?

Get the full analysis with uListen AI

What might an effective, non-governmental professional body for software ethics and competence actually look like in practice?

Get the full analysis with uListen AI

How can companies fairly evaluate programming aptitude without relying on unreliable puzzle-style interviews or long unpaid apprenticeships?

Get the full analysis with uListen AI

In a world of increasingly powerful AI tools, what specific skills will distinguish excellent programmers from merely competent ones?

Get the full analysis with uListen AI

Transcript Preview

Dwarkesh Patel

Okay. Today, I'm talking with Robert Martin, who needs no introduction. So let's begin with talking about the future of programming. Will GPT-25 be able to automate programming? Will I not have a job in 25 years?

Robert Martin

What is GPT-25? What is that?

Dwarkesh Patel

G-, uh, GPT-3 is the program that OpenAI just released, and it seems to be able to do some basic... make some basic methods, like making a palindrome, 'cause they just did deep learning over a bunch of GitHub repositories. So is the future of AI basically gonna be able to automate programming?

Robert Martin

No. (laughs) Pretty, pretty straightforward answer. There's, there's a, a fundamental reason behind this. Um, in order to, um, finally replicate programming, if you wanted a machine that could program like a human, that machine would have to have human sentience, and we are very, very, v- far away from that kind of a machine. Why would we need human sentience? Because someone has to specify the, the way the program is going to work, and that specification is, in fact, the program. No other specification will suffice. So a business user comes along, and he, he, he creates a rough specification but is depending on the human intuition and the human intelligence of the programmers to fill in all the horrible little blanks that the, uh, the business person omitted. We programmers are detail managers. We deal with all the mess. We, we're the ones who deal with the fact that text files sometimes, uh, terminate lines with backslash N but sometimes terminate lines with backslash N backslash R for reasons that go back 50 years because of teletypes and Unix and DOS and all this crap. And we're the ones writing the dumb little if statements to deal with the bizarre little exceptions that no business person wants to even think about. If we tried to make a, a mach- a deep learning machine (laughs) that could deal with all that stuff, we would wind up with a HAL 9000, something that has human intelligence, and, and we are so far away from that that, uh, it does not concern me in the slightest that some, some deep learning machine will eventually take over all the programmers' jobs.

Dwarkesh Patel

I'm happy to hear that then. But how about this, uh, potential, which is that the development environments and the tools that programmers use will become so advanced that it'll be almost like a symbiotic pair programming kind of assignment, where, uh, you know, you're, you're working with the machine to write the code instead of just, like, writing it on the machine?

Robert Martin

Sure. I mean, that, we've already had that for, for, for the entire span of programming, we've been doing that. I mean, the original programs were written in binary, right? So Alan Turing, working on the, uh, the automated computing engine, was literally writing things in binary 'cause th- there were no languages. And then eventually, we made an assembler. Can you imagine the benefit of an assembler over binary? All that horrible binary math that you had to do, you don't have to do anymore, and you can write your code in symbolic form. That's already a huge advantage. And then along comes John Backus with the Fortran spec in 1953, and what a huge advantage that was over assembly language. ALGOL came along pretty quickly. By 1966, you've got Ola Johan Dahl and Christian Nygaard inventing objects. This is, you know, 20 years after Alan Turing was doing binary programming, you've got the first object-oriented language. C comes along in '68, two years later. C++ comes along 12 years after that. And we've got this massive progression of, of incredible amounts of help to the programmer. Then in the, in the late '90s, we start getting this wild stuff in our tools, the IntelliSense and the refactoring tools and the inspectors and the duplication finders, so that a modern IDE is a treasure trove of, of tools that allow a programmer to do immensely more complex things than we used to be able to do. So yes, I hope that machine learning continues to make our tools more powerful, but that will never alleviate the need for the programmer to be there and supervise those tools. I'm a pilot. I fly a plane. The plane has a beautiful autopilot. I can turn it on, and the plane will fly itself all the way to my destination, and I watch that thing like a hawk 'cause it's a, a machine, and it's gonna do the wrong thing at exactly the wrong time. So I sit there, and I watch that autopilot, and every time it's supposed to do something, I make sure it does that thing. I'm still in charge. It's not. (laughs)

Install uListen to search the full transcript and get AI-powered insights

Get Full Transcript

Get more from every podcast

AI summaries, searchable transcripts, and fact-checking. Free forever.

Add to Chrome