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

Dwarkesh Podcast 45min 4 min #11
Uncle Bob - The Long Reach of Code, Automating Programming, and Developing Coding Talent
Watch on YouTube

Summary

  • Robert Martin (Uncle Bob) discusses the future of programming, the limits of AI in automating software development, how to educate and spot programming talent, and the need for professional standards in the industry.

    • He argues that AI like GPT-3, which learns from GitHub repositories, will not replace programmers because programming requires human sentience to fill in the vast number of low-level details and business-specific decisions that no specification fully captures.
      • Programmers are “detail managers” who handle countless edge cases (e.g., line-ending differences from legacy systems) that business users never think about.
      • A machine capable of handling all this would need human-level intelligence, which is extremely far off.
    • He does expect programming tools to become far more advanced and symbiotic, similar to how an autopilot assists a pilot, but the programmer will always remain in charge, supervising and correcting the machine.
      • He traces a historical arc from binary to assembler to Fortran to C to C++ to modern IDEs with IntelliSense and refactoring tools, showing that programmers have always worked with increasingly powerful tools.
      • He speculates that programming may eventually resemble “training a dog”—setting parameters and rewarding or correcting the machine’s output—but a skilled, analytical human will always be needed to supervise.
  • On educating programmers, Martin believes the field has become too complex for young people to master everything, but it is still learnable without a university degree.

    • When he started, a programmer could know everything about a simple machine like the PDP-8 in months; today’s systems are far too complex for that.
      • Unlike medicine or law, programming does not yet require narrow specialization—a generalist programmer can become adept at GUI, middleware, database, and telecom programming within 5–10 years.
    • He would not teach programming at universities, viewing it as a trade skill better learned at community colleges, trade schools, or bootcamps over 1–1.5 years, followed by mentorship on the job.
      • He acknowledges some bootcamps are poor and advises caution, but sees this route as far more cost-effective than a four-year degree for acquiring programming skills.
      • He notes that a math degree does not reliably predict programming success; he was disappointed by a math master’s hire who struggled to adopt a programming mindset. Most programming requires only high school algebra or pre-calculus, except in specialized fields like physics simulations or quantitative finance.
      • He emphasizes that programmers must understand the business domain they work in (insurance, telecom, etc.), and that much of early on-the-job education is about the business, not programming itself—which is another reason AI cannot easily replace programmers.
  • On spotting programming talent, Martin has found no reliable test and favors extended apprenticeship programs.

    • He once used algorithmic puzzles (Newton’s method, Sieve of Eratosthenes) in interviews but found them unreliable predictors.
      • He now prefers multi-week apprenticeship programs where candidates face escalating challenges (writing, speaking, presentations) and are assessed by everyone they interact with before being offered a job.
    • He estimates roughly 100 million programmers exist worldwide, suggesting about 1% of the population has the aptitude, possibly as high as 5–10%.
      • The required traits include deep analytical ability and sustained focus on narrow problems—traits he believes are partly innate neural wiring, though he has seen the “switch turn on” at different life stages (his son in late high school, his daughter at age 30).
      • He is skeptical that programming toys and mandatory coding classes in schools (Logo, Lego Mindstorms, etc.) create new programmers, suspecting they mainly help those who would have become programmers anyway. He supports brief (4–6 week) exposure for all students but opposes year-long mandatory courses.
  • Martin discusses “design sense”—an aesthetic judgment programmers develop over time—and its relationship to music.

    • Michael Feathers coined the term “design sense” to describe the elusive feeling that a piece of code or architecture is beautiful, recognizable only to experienced programmers.
      • Martin notes a strong correlation between programmers and musicians, speculating that sheet music resembles a program (with conditionals, loops, sequences) and that the mathematical structure of musical scales may attract similar minds.
  • On occupational licensing, Martin argues the industry needs a self-regulatory body before government imposes one.

    • Society is now existentially dependent on programmers, yet there are no ethical or technical standards constraining them—an unstable situation.
      • He envisions something like the AMA for doctors or a guild structure, with organizations licensing programmers based on principles, ethics, and disciplines, letting the market decide.
      • He notes some consulting firms already advertise based on principles and ethics and hopes the industry self-regulates before government intervention.
  • On why tech is political, Martin attributes it partly to geography and partly to the low barrier to entry in programming.

    • Coastal and urban areas skew liberal; rural and midwestern areas skew conservative—this geographic bias shows up in tech companies.
      • Programming’s low barrier to entry (no degree required, easy to learn HTML, etc.) has allowed marginalized communities to enter the industry easily, gain skills, and amplify their voices—which he believes has sometimes fueled cancel culture, though he acknowledges this is his subjective perception.
  • On quotas, Martin argues they are well-intentioned but counterproductive.

    • Lowering entry standards to admit more people from marginalized groups hurts the industry and does not help those admitted, who then face higher failure or dropout rates.
      • He recounts a conversation with an accomplished woman who feared she was invited to speak at a conference only because of her gender, illustrating how quotas can devalue individual achievement.
      • His position is strict meritocracy: hire anyone who can write code, regardless of background, but do not relax standards for any subgroup.
  • His advice to a 20-year-old aspiring programmer is to learn through self-study, mentorship, and on-the-job training rather than necessarily attending university.

    • Use free resources (YouTube, GitHub) to learn a language like Java or C#, read other people’s code, and work through beginner books.
      • Find a mentor—experienced programmers are usually eager to teach—and seek a company with an apprenticeship or mentorship program.
      • The demand for programmers is extremely high and will remain so, making it possible to enter the field with minimal financial investment.
Back to Dwarkesh Podcast