Dwarkesh PodcastUncle Bob - The Long Reach of Code, Automating Programming, and Developing Coding Talent
EVERY SPOKEN WORD
75 min read · 15,179 words- 0:00 – 8:40
Automating programming
- DPDwarkesh 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?
- RMRobert Martin
What is GPT-25? What is that?
- DPDwarkesh 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?
- RMRobert 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.
- DPDwarkesh 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?
- RMRobert 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)
- DPDwarkesh Patel
(laughs) But once we get these advanced tools, will the future of programming just look incredibly different from what programming machines are like now? You've written about how, um, uh, th- the l- the way that Turing wrote the first programs is not that dissimilar to how we write programs now. Is that sort of con- uh, continuity something we should expect in the future, or is the interface going to completely get modified?
- RMRobert Martin
Well, I, uh... So I mean, the interface has been completely modified since Turing-
- DPDwarkesh Patel
Or you-
- RMRobert Martin
But, but the act-
- DPDwarkesh Patel
Yes. That's what I mean to say.
- RMRobert Martin
... of programming is still sequence selection and iteration.
- DPDwarkesh Patel
Yes.
- RMRobert Martin
Programmers still arrange programs in little units of sequence selection and iteration. Will we continue to do that? Well, I, I think that's a very interesting question. And we've had some hints about...... other possibilities. If you've ever programmed in Prolog, for example, you see that the sequence, selection, and iteration gets transformed into something else equally detailed, but it's not sequence, selection, iteration anymore. It's, it's declarative truth. (laughs) I'm not gonna go deep into Prolog, but, but if you want to bend your brain around a concept that you're not familiar with, study Prolog for a couple of days. Uh, but, but in the end, are we going to get to a, a situation similar to my autopilot where I can set up some parameters in a tool and then watch the tool as it starts to develop a program. And then I, as the programmer, watching what it's doing, start tweaking parameters around the outside, say, "No, no, not that, not that. This, this. Go in this direction." Will I be able to do that? Yeah, I'd say that's probably very likely sometime in the next, uh, couple of decades, that, that the way we program computers will be more like, uh, training a dog, (laughs) rewarding it-
- DPDwarkesh Patel
(laughs)
- RMRobert Martin
... in the right circumstances and punishing it in the others. Um, we'll see how that goes. We'll see how that goes. But under no circumstances will there not be a programmer involved, someone with the same skills that you and I have today, someone who is deeply analytical and a detail manager and is watching out for all the dumb little gotchas that the machine has no clue and no strategy for addressing.
- DPDwarkesh Patel
I'm happy to hear that.
- RMRobert Martin
(laughs)
- DPDwarkesh Patel
Are teams of programmers less creative than individuals programming alone?
- RMRobert Martin
Uh, teams of programmers are far more creative than programmers working alone, but they also go in many different directions at once. (laughs)
- DPDwarkesh Patel
(laughs)
- RMRobert Martin
So they need... There's... You need a leader. A team has to have a leader. One, one of the problems that we have had in the Agile community is that there's a certain faction of Agilists who believe there should not be a leader, that the entire team is homogenous and equal in a mass egalitarian society where everyone is the same, and my experience is that that doesn't work at all. Uh, a team needs a leader, and then the, the team is generating ideas just like crazy. The team generates ideas, and the leader is the one who acts like, you know, Jean-Luc Picard.
- DPDwarkesh Patel
Yeah.
- RMRobert Martin
"This one, not that one." (laughs)
- DPDwarkesh Patel
Interesting. Um,
- 8:40 – 21:45
Educating programmers (expertise, talent, university)
- DPDwarkesh Patel
now let's talk about educating future programmers. I-
- RMRobert Martin
Sure.
- DPDwarkesh Patel
I watched an interview with Linus Torvalds where he was expressing concern that the complexity of the ecosystem has grown so much that he's not sure that somebody in his position could come up with such a grand innovation. There, there's just not a, um, a rock to hold onto to, like, get that level of expertise at such early an age. Are you... Is, is that... Do you have that kind of concern that the ecosystem has developed so much that it's harder for y- young people to kind of get to the frontier?
- RMRobert Martin
It takes longer now because there's so much more cruft that you have to wade through. When I was a young programmer, uh, the machine that I was working on was initially a PDP-8. I've got a little mockup of a PDP-8 sitting right there. Uh, it must have gone through a power failure because it's not doing what I usually have it do. Uh, but that was a very simple machine. It was a 4K machine, 12-bit word, half megahertz clock rate. And there were no libraries, there were no frameworks, there was no nothing, right? If, if something executed in that machine, it's 'cause you wrote it. And a programmer in those days could know everything about the computer. And, and it wouldn't take very long. It would take, uh, a matter of months to, to eventually get to the point where you just knew everything. Tho- Those days are long gone. It's, it's now not feasible to point at a computer system and say, "Well, I know everything about my MacBook Pro." No, you don't. (laughs)
- DPDwarkesh Patel
(laughs)
- RMRobert Martin
It's just too much crud in there. So there is a much longer learning curve to become, uh, as adept at programming as those of us who started 50 years ago and had to climb that tree while we were working. On the other hand, it is not like being a doctor yet. If you wanna become a doctor, you must specialize. There's, there's no way to go forward in medicine without specializing. Even a general practitioner is a specialist nowadays 'cause they have to exclude all this other stuff they, they cannot do. And, and we are not there yet. A programmer over a period of five years, say, can become adept at GUI programming, middleware programming, database programming, telecommunications programming, threads. All of this stuff can become, um, well-heeled inside of a five-year experienced programmer. 10 years, even better, right? (laughs) So it's not like being a doctor or a lawyer where you absolutely must specialize and narrow your focus down to a razor. Programmers can still be real general practitioners.
- DPDwarkesh Patel
Gotcha. Um, let's talk about the factories which manufacture programmers, uh, 3D printer programmers.
- RMRobert Martin
(laughs)
- DPDwarkesh Patel
Uh, universities. If you had to change one thing about how computer science is taught at universities, what would it be and how would you change it?
- RMRobert Martin
I would not teach it at universities.
- DPDwarkesh Patel
Really?
- RMRobert Martin
I don't, I don't think it's a university kind of thing. A- Again, this is a, a discipline that is only 70 years old. There is, there is not that much in it. There's, there's far more cruft-... in it than there is actual knowledge, actual, you know, solid, you know, teachable knowledge. And the, the vast majority of the skills that a programmer needs are trade-like skills-
- DPDwarkesh Patel
Mm-hmm.
- RMRobert Martin
... not educational-based skills, right? Or, or not university kinds of skills. If you wanna be an electrical engineers, you have to go to university. There's just a tremendous amount of stuff you've gotta learn there. If you wanna be a doctor, you've gotta go to a hell of a lot more (laughs) than a university, right? But 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, get a good job with some mentors, and learn it that route, learn it that way. I, I think that is a much better way for young programmers to become programmers, right? Not go to university. It's not worth a four-year education. The amount of money you'll spend on that four y- four-year education is not going to be worth the programming knowledge you get. Now, it might be worth a whole bunch of other knowledge. It's not worth the programming knowledge you're going to get. If you want to be a computer programmer and you're just getting outta high school, I'd be looking at a trade program, a, some kind of a trade school or a boot camp or something like that. Some of these boot camps are not very good, so I'd be real careful about that. But some kind of pro- program like that where you can, you can spend a few months learning a... not learning a language like Java or C# or something like that, and then move on to a job which has a mentorship or an apprenticeship program.
- DPDwarkesh Patel
Uh, I'm in u- university studying computer science right now, so (laughs) wish I heard that two years ago.
- RMRobert Martin
(laughs)
- DPDwarkesh Patel
Uh, but in any case, uh, can, can you explain to me how it is then that we have an industry where to get in is not that hard in terms of just the education you need at least, maybe there's, like, traits that are rare, but getting in is not that hard, the demand keeps growing very fast. How is it that people are still becoming corporate lawyers when there's a job that pays really well, that doesn't require that much education to get, that you can get into real fast? What, what explains this inequilibria?
- RMRobert Martin
I'm gonna try and interpret that question, uh, carefully. There are, there are... When, when I was a young programmer, I thought anybody could do this. That was my, my fundamental hypothesis. Anybody could learn this. It's ones and zeros. I mean, how hard is ones and zeros? It took me a very long time and a number of very expensive mistakes, (laughs) hiring people, uh, to realize that not everybody can do this. And in fact, the, the number of people who can do this is much smaller than I had at first thought. It, it's, it is not a rare talent, but it is not a massively common talent either. And the talent requires a number of things, right? There's, there's this need to be a deeply analytical, and there is this need to be able to focus, focus-
- DPDwarkesh Patel
Mm-hmm.
- RMRobert Martin
... on very narrow things for very long times. And there are people who simply cannot do that. It's just not in their, in their mental wiring. They cannot do it. Uh, but some programmers can, or some people can-
- DPDwarkesh Patel
Mm-hmm.
- RMRobert Martin
... and they can become programmers. So you ask the question, why are we putting out corporate lawyers? Well, they have a very different kind of interest and mindset. Although they're analytical and they can focus, they focus on different kinds of things. We programmers focus on Boolean decisions, (laughs) ones and zeros, blacks and whites. Lawyers, you know, they're looking at people. People are much more complicated-
- DPDwarkesh Patel
(laughs)
- RMRobert Martin
... than computers. It's a very different kind of mindset.
- DPDwarkesh Patel
Uh, if you had to estimate, what percent of the population ha- do you think has a repertoire necessary to become a programmer?
- RMRobert Martin
Ooh, tough question for, to ask. Um, what percentage of the, of the human population has the aptitude for programming?
- DPDwarkesh Patel
(laughs)
- RMRobert Martin
I think there are 100 million programmers in the world right now. That's just a, a guess, but I think that's about right. Uh, and that would be, what, one-eightieth of the population?
- DPDwarkesh Patel
Mm-hmm.
- RMRobert Martin
So we, we've got some demonstration that at least 1% of the population has this skill, uh, close to one, 1%. Maybe it's as high as 5 to 10%, could be that high, could be.
- 21:45 – 26:10
Spotting talent
- DPDwarkesh Patel
Now, when you are considering hiring somebody as a programmer and they don't have a lot of experience, so you can't just, uh, you can't just look for somebody to vouch for them, what is it that they can do to signal to you that they would become a competent programmer?
- RMRobert Martin
Th- uh, that's a heck of an interesting question, and one that I've struggled with for, uh, uh, a very long time now, a number of decades. Uh, and I have found no reliable test.
- DPDwarkesh Patel
Oh.
- RMRobert Martin
Um, I used to make people... Uh, so back when I thought it was math, I used to make people solve, uh, Newton's method for, uh, calculating a square root. Like, I'd just draw it on the board. I'd draw a parabola on the board and say, "Okay, here's the slope. You know, it's the derivative of the function. Now, come up with an algorithm." And I'd let them, uh, use any language they wanted. And I, you know, I thought that was a pretty good approach. And then, and then I found people that were very good at that, but could not do other things. And then I thought, "Okay, uh, I'm gonna describe, uh, the Sieve of Eratosthenes, beautiful algorithm for finding prime numbers, right? I'm going to describe that in, in simple terms and have them write some pseudo-code and show me that they can actually build a doubly nested loop," right? And that was also not reliable. Although it was better, (laughs) it was not reliable. So, what I've... The conclusion I've come to now is that there is no simple test. What, what you need to do is spend a fair bit of time with someone and observe how well they learn over a period of time and how well they apply that learning, how well they can focus, how well their... how well they can deal with a problem analytically. And that period of time is probably weeks. So, the, the kind of interviewing that I would prefer to do now, and I, uh, by the way, I don't hire people anymore. I'm now just kind of me, but, but I know people who do hire people, and one of the, one of the ways that they do it is to, uh, ask them to join an apprenticeship program. And in that apprenticeship program, they will be given a series of ever-greater challenges, not all of which are programming challenges. Some of them are writing challenges, some of them are speaking challenges, some of them are presentation challenges, but a s- a sequence of ever-increasing, um, uh, challenges.And then at the end of that, an assessment is made by everyone that they have talked to, and they're offered a job or not. And in some cases, there's a stipend salary for that apprenticeship program. In other cases, there's not.
- DPDwarkesh Patel
Hmm. Interesting. Do you suspect that the traits that are required to become a programmer, that these are developed in your childhood through the experiences you have in early life, or maybe through high school and middle school? Or is it something that some people are probably just born with on some level?
- RMRobert Martin
It's hard to know. Um, I- I- I think there's a certain amount of just neural wiring. (laughs) You know, some- some, uh, character defect that causes you to be a programmer-
- DPDwarkesh Patel
Mm-hmm.
- RMRobert Martin
... um, that not all people have. However, I have seen, uh, people who were not at all interested acquire the interest and acquire the talent, um, at different stages of life.
- DPDwarkesh Patel
Hmm.
- RMRobert Martin
My son, for example, who is now a programmer and a very accomplished one, had showed no interest at all in early grade school when I got interested. I was 12 years old, right? So I thought, "Oh, okay, everybody's gonna be interested at 12." Now, my son didn't show any interest at all until he left home and became a... Or- or close to leaving home, late- late high school, early university, uh, and came back with this interest and skill. My daughter, um, has just turned 30 and is suddenly very interested and is acquiring a- a significant amount of skill. Um, so I- I've seen this happen at different stages. The switch turns on and- and all of a sudden, they've got all the- all the motivation and the focus energy and the analytical skill they need. So, I don't know. Uh, you know, it's a- a deep mystery
- 26:10 – 29:31
Teaching kids
- RMRobert Martin
to me.
- DPDwarkesh Patel
Are there advantages to learning this material and adopting these skills early in life? Or do you get a more mature perspective if you learn it later on in life?
- RMRobert Martin
Had you asked me that question 20 years ago, I would have said, there's obviously an advantage to teaching young children. I mean, if you can get the young children immersed into computers, well, obviously they're going to turn into much better programmers. And I'm not so sure that's true now. (laughs) So, the counter examples are the vast number of, um, programming toys, and- and- and they span a huge, um, a huge period of time. So nowadays you've got li- like, things like LEGO Mindblocks and, um... or MindStorm and- and you've got a whole bunch of other tools that try to encourage young people to become programmers. You know, kids that are 12, 13, 14. In the early days, we invented languages that would help young people become programmers. The Logo language, for example, was all about, you know, driving a little mechanical turtle on the floor and letting it raise a pen and draw on a piece of paper. And kids, you know, they would- they would issue it commands. "Go forward 10. Turn right 90 degrees. Go forward 10." Drawing squares and circles on a paper. And what we found through all of these, through all this long period of time attempting to make tools that would appeal to children is that it did not have a profound effect.
- DPDwarkesh Patel
Hmm.
- RMRobert Martin
There's a whole bunch of children that would sit and drive the turtle around for a little while and then lose interest. Yeah. And never develop the- the more interesting skills of putting things in variables and calling functions. Those just went... They didn't happen. Uh, and then we see the same thing with things like LEGO MindStorms. Now, there are children who do grab it and you can tell they want to become programmers. But then the question is, well, wouldn't they have just grabbed it anyway?
- DPDwarkesh Patel
Yeah.
- RMRobert Martin
Why did they need this tool? Is- are these educational props actually incentivizing more people to become programmers? Or are they just helping the ones who would become programmers anyway? (laughs) And I don't know the answer to that. I'm- I'm skeptical nowadays.
- DPDwarkesh Patel
Interesting. Um, so you- you- you're not bullish on mandatory coding classes in middle and high school?
- RMRobert Martin
I think everybody should have a- an e- uh... Everybody should get the experience.
- DPDwarkesh Patel
I see.
- RMRobert Martin
Um, probably, you know, for a- a cl- uh, what a four-week or a six-week period, everybody should do a little, you know, basic programming or Ruby programming. Something, you know-
- DPDwarkesh Patel
Right.
- RMRobert Martin
... I- I want to be careful there because turn people into Ruby and put... You know, it's a very complicated language when you get into it. But, you know, maybe a little- little- little bit of coding, a little scripting, a little something so that you know basically what it's about. But other than that, I don't think there's any- any need to like push a year-long course. I don't think that's necessary.
- DPDwarkesh Patel
Gotcha.
- RMRobert Martin
I think the ones who are interested are gonna do that on their own. (laughs)
- DPDwarkesh Patel
Right. Right.
- 29:31 – 32:22
Prose and music sense in coding
- DPDwarkesh Patel
Um, so let- let me ask you about the sense of style that a programmer develops over time. Is this at all related to what has been called the elusive writer's ear, where a writer over time develops a sense of prose and style? Is- is that sense related to the one that one develops for programming?
- RMRobert Martin
Michael Feathers coined a term 20 years ago, uh, which he called design sense. And he- he's threatened to write a book on this for the last 20 years. I haven't seen him write it yet.
- DPDwarkesh Patel
(laughs)
- RMRobert Martin
But the basic idea is that, yeah, there is this, um... there is this sense that a programmer develops over a long period of time.... that a, uh, a, a bit of code or a design of a system or an architecture of a system somehow feels right. And it's an elusive kind of sense. It's the, the judgment of beauty. You know, it's like, "Oh, a beautiful thing." And, and the word beauty ought to be used here, because there are beautiful designs, there are beautiful architectures, there, there are beautiful functions which can be described as beauty and understood as beauty only by people who have the experience to look and say, "Oh my goodness, that's beautiful." I was watching a, uh, a program on, (paper rustles) on Netflix yesterday. Uh, it's called Queen's Gambit. It's a new one. It's about a, a young girl who becomes a chess master. And in the midst of this, someone asked her, you know, "Why are you so interested in chess?" And she leaned back and she said, "It's beautiful," or, "It can be beautiful." And I think the same thing applies to software.
- DPDwarkesh Patel
Hmm. Christopher Hitchens, who is known for his excellent writing, suspected at some point that the sense of writing was, uh, tempered by a sort of musical intelligence, about cadence and prose. Do you think musical intelligence plays into your ability to code well or beautifully?
- RMRobert Martin
Well, um, there is, and, and this has been known for some time, there is a, uh, very strong correlation between programmers and musicians. People who study music or have played an instrument or have developed a musical sense often become programmers. Uh, why that's true, I don't know. It could be the, the rhythmic thing, the, the mathematical, uh, layout of the, of the scales, the... Who knows? If you look at a, uh, a, a musical composition, if you look at a, uh, sheet music, it is a program. It's got if statements, it's got while loops, it's got sequence, it's got everything. (laughs) So maybe it's something like that. I don't know. But there's definitely a correlation.
- DPDwarkesh Patel
Interesting.
- 32:22 – 35:49
Occupational licensing for programmers
- DPDwarkesh Patel
Um, so let's talk about your idea for... or th- Your claim that we need some sort of body within software engineering that decides who has the ethical and the technical competence necessary to become- remain a programmer. Um, I, I don't know if you changed your view on this or if I... Uh, and I'll let you elaborate what you mean by this. But somebody who is concerned about this might say, "Well, this is exactly what has happened in o- other industries where we have occupational licensing that's keeping people out of the industry so that the labor pool is artificially reduced to the advantage of the people already in the industry." And there's also the added wrinkle with the, um, increasing calls for censorship and cancel culture. We could have- expect that the- this body might itself become a tool for re- removing people who challenge orthodoxies. How do you respond to these challenges?
- RMRobert Martin
Well, so the, the problem- (clears throat) The problem is that programming has become, uh, an entirely essential, uh, job function for our society to exist. Human society can no longer exist without programmers, and that dependency is growing at an exponential rate. So that, you know, you look around the room here and you'll just see dozens and dozens of little electronic things that have code running in them that just make life doable. Uh, and all of the things that we used to depend upon that did not have code running in them all now have code running in them. So your microwave oven and your refrigerator and your car, telephone, your television, all has code running in it. Our society can't exist anymore without programmers. And there is no constraint on programmers to behave ethically, to have any standards, to have any disciplines. So that's an unstable situation. It can't go on like that. How do we address it? Do we need, uh, something akin to the AMA, the American Medical Association, who provides, you know, licensure for doctors? Uh, do- or do we need, um, something else? Do we need, uh, maybe a guild structure, maybe a, a whole set of little organizations that, that license their own programmers with different sets of standards and ethics and disciplines, and then let the, uh, market decide? You know, "Those guys did better than those guys. I think we'll hire them." I don't know where that's gonna come down. I, um, I- my fear is that it will be forced upon us by government-
- DPDwarkesh Patel
Mm-hmm.
- RMRobert Martin
... before we can develop that solution. Uh, I- and I'm hoping that we can develop that solution, uh, before government sticks their little fingers in there and screws it up completely. There are a number of companies that have begun to do this, right? So you look out in the world out there of con- especially software consulting firms, and there are software consulting firms out there that have based themselves on a set of principles, ethics, and disciplines, and they advertise themselves that way. Uh, and, and I think there will be more and more of that. So that's kind of the direction I think the industry is gonna go. At least I hope it goes that way, and I hope we get there before government sticks their foot in it and kicks us all to hell. (laughs)
- DPDwarkesh Patel
(laughs) I hope so too.
- 35:49 – 39:28
Why is tech political
- DPDwarkesh Patel
- RMRobert Martin
Uh, uh...
- DPDwarkesh Patel
I wanted to ask you why, um, tech of all industries seems to be so political, in the sense that specific companies seem to have a clear political orientation, uh, th- that doesn't seem to be true in many other areas of work. Do you have a sense of why that is?
- RMRobert Martin
Um, no. Well, (laughs) yes and no, I guess. And, and it's, it's been a, a deep puzzle. Um, if you... Let's, let's do this differently.If you look at the political bias geographically, right? There is a definite political bias in the United States. You've got the two coasts, they tend to be liberal, blue states on each coast. Uh, cities tend to be more liberal. Uh, rural areas tend to be more conservative, the Midwest tends to be more conservative. If you get, um, go to a company in Kansas City, and you find a company there, you know, that has 100 programmers, odds are those programmers are gonna be conservative. It's just-
- DPDwarkesh Patel
(laughs)
- RMRobert Martin
... you know, because of the geographical bias. Go to San Francisco, odds are the programmers there are going to be liberal. That's just the geographical bias. Is there anything else in software that drives people in a certain political direction? Well, maybe. It turns out to be easy to become a programmer. We talked about this before, right? You don't really need to go to university. You don't really need to, um, to get a full f- full education, right? You can become a programmer without a lot of experience. And- and because our industry continues to invent new, um, new (bell pings) schemes all along, right? There are people who can jump into these schemes very early. So for example, HTML, um, HTML was invented, you know, 20 years ago, and the- and a whole bunch of high school kids suddenly got really good at HTML and, of course, they went out to get jobs, um, without a lot of university training, without a lot of anything. Right? So it's easy. There's- there's a- a low, uh, barrier to- to, um, acceptance early on. And that, I think, has led to a good thing, which is a- a bunch of marginalized folks, folks who live in marginalized communities, manage to get in very easily, and they get e- experienced and they develop skills, and that's also good. And then I think, and this is a- a guess on my part, I think they use that skill and that- and that, um, technology, that gives them a voice, and that voice has been turned and in- in a way that is sometimes very detrimental. Now, I don't wanna cast, you know, aspersions on every marginalized community, but I have noticed that there are some that suddenly develop a very loud voice, and in- uh, in a lot of cases, they wind up driving the cancel culture. Just- just, you know, the way that looks like it's been happening from my, you know, my middle-age, no, I'm not middle-aged, I'm actually old now, from my old conservative white bias, right? That's what it looks like to me.
- DPDwarkesh Patel
Interesting.
- 39:28 – 42:29
Quotas
- DPDwarkesh Patel
Uh, le- let me ask you about quotas. I- I- th- I think you laid out a really good argument in your blog, uh, about why quotas don't necessarily help the groups you're trying to help. Does the argument you laid out there, and I'll let you explain it, apply de- generalize to other places where things like quotas are applied, like universities, for example?
- RMRobert Martin
I think it does. I think it always does. Um, I mean, and the- the idea behind a quota is- is always very well intentioned, right? There's- there's a marginalized group. They're not getting, uh, serviced properly. We need to relax the barrier of entry for that marginalized group so that more of them can join. Well intentioned, you know, (laughs) everybody wants the best. But what's the end result? The end result is that, uh, you lower the standards. The standards have to come down, which hurts the entire industry. And it doesn't help the marginalized folks to let them in under low standards but expect the high standards on exit, right? Because then you'll see this- this failure. And we see that in universities, and we see it in- in, uh, um, employment as well, is that the dropout rate or the failure rate is higher. It doesn't help. I once sat with a woman, a very accomplished woman, um, and we were at a conference. And I- I was giving a keynote, and she was giving a keynote, and we were just talking about this issue, and she looked at me and she said, "I hope to hell that they did not ask me to do this keynote just because I'm a woman." And you- you know, I- (laughs) I could feel that angst, the devaluing...
- DPDwarkesh Patel
Mm-hmm.
- RMRobert Martin
... of her- of her ability to do a keynote talks because she was invited just to become a woman. So her fear, her fear was that she was being devalued by a quota system that she didn't even know if that existed. I think, in general, the only way to deal with issues like this is to do it entirely on merit, right? Uh, if you're going to be a programmer, we will, you know, I'm perfectly happy to hire anybody, don't- I don't care what your, you know, political bias is, your sexual bias is, your race, your racial situation. I don't care about any of that stuff. As long as you can write the code, I'm happy to work with you. I don't want to suddenly or- or I don't want to relax the standards for a certain subgroup. I don't think that's fair to anybody, just me.
- DPDwarkesh Patel
Yeah. Yeah, I completely agree. I- there- the- Malcolm Gladwell was in a debate once, and I- I- I actually really like Malcolm Gladwell, but he started off by saying, "First of all, I think it's scandaled that nobody on this stage is a woman." And there's a point there, but then I thought about it and- and I realized, well, imagine being the woman who just came on stage because Malcolm Gladwell wanted a woman. You know what I mean? Like-
- RMRobert Martin
(laughs)
- DPDwarkesh Patel
... imagine being in that situation.
- RMRobert Martin
Yeah.
- DPDwarkesh Patel
Um...Anyways,
- 42:29 – 45:50
Advice to 20 yr old
- DPDwarkesh Patel
let me ask you finally about advice you would give to a 20-year-old who wants to become a programmer.
- RMRobert Martin
Well, okay being, becoming a programmer is not particularly difficult in our, in our day and age yet. Ma- it may be at some point in time. But right now it's not. Uh, if you're, if you think you wanna be a programmer, and you think you have the aptitude, uh, it is stupidly simple to get on YouTube now or get on a bunch of other websites, uh, and learn to code. And it doesn't take a lot of effort. If you've got a laptop, if you've got a computer at your disposal, if you can go onto YouTube or any of the other sites out there, just find some site that'll walk you through an initial Java program, and then experiment with that as much as you can. Learn, learn how to write this code. Read other people's code. Go onto GitHub, download their code, read it, understand it. It'll be hard, but that's okay, you know, you can do it. There's a whole bunch of books out there, tons and tons and tons of very good books that you can-
- DPDwarkesh Patel
Those are really-
- RMRobert Martin
... read. Start out with simple books like, you know, The Joy of Java or, you know, Java for, For Dummies in 10 Days or, you know, re- Learn C in 21 Days. So any one of these books, um, that, that will just help you immensely. Find a mentor, someone who's been at it for a while. Most of them will be overjoyed to have someone that they can teach (laughs) and work with and help. Um, if you can get into a, um, a trade, trade school for programming, uh, that would be great. Not necessary, but it would be great. Um, if you've got the means to go to university, and you want to spend the ridiculous amounts of monies that universities now cost and go into horrific debt for, you know, the rest of your life, okay, you can do that too. I'm not gonna stop you. And you'll learn a whole bunch of really cool stuff there, stuff that some of which you'll even be able to apply later on in, uh, in your career. Um, but if you don't have tho- that means, if you don't have the means to go to university, that's okay. I mean, you can get th- you can acquire these skills, you can become a programmer with a minimum amount of investment. Just find some people to, to mentor you along, find a company that's willing to hire a beginner, and there are a lot because the demand is immensely high right now, and, and will continue very high for a long time. Uh, and, um, find a way to get in. (laughs) And it's not that hard, right? So that would be my advice. Read like crazy. Read, inhale as much as you can. Study like crazy. Watch videos and do exercises. Just, you know, fill your brain with this stuff. And then, uh, it ought to be simple after that. (laughs) Easiest.
- DPDwarkesh Patel
(laughs) Excellent. Well, thank you very much for, uh, talking with me today. This is very fascinating.
- RMRobert Martin
Oh, it's a pleasure. I enjoyed it very much.
- DPDwarkesh Patel
Hey, if you enjoyed this podcast, please consider sharing it with your friends and posting it on social media. Word of mouth is incredibly valuable for a new and a small podcast like this one. So thanks for watching.
Episode duration: 45:50
Install uListen for AI-powered chat & search across the full episode — Get Full Transcript
Transcript of episode ldTPVd3vO9Q
Get more out of YouTube videos.
High quality summaries for YouTube videos. Accurate transcripts to search & find moments. Powered by ChatGPT & Claude AI.
Add to Chrome