The Pragmatic Engineer
01:10:51 · Titus Winters, Gergely Orosz
[01:10:51] S1: I will riff a little on my bona fides there to, like, to to to add some weight to this. So after the book, I got recruited into the ACM, IEEE, AAAI work on setting the curriculum requirements for an undergraduate CS degree. So this is like the the professional society saying these are the things that we need to be doing. And for the steering committee for that work, I was on the steering committee, I was the only currently working engineer. Everyone else is acting. Okay. Yeah. Some sense because, you know, it's what can we teach. And I managed mostly the software engineering requirements. But it does mean that I, like, I see exactly what the requirements are and have been living in that space for for years. And bluntly, and I gave a talk on this in a pre AI keynote, bluntly, most of the CS curriculum hasn't substantially changed since, like, 2000, maybe earlier. Right? The average thing in the curriculum is exactly what was needed to build a database or an operating system in the nineties. That does sound good, does it? Not for a field that prides itself on innovation. Right? And, like, there's all of these things where, like, I have to genuinely ask, like, are we teaching this because it is relevant and important, or are we teaching this because it is tradition? And the history of [01:12:19] S0: Or we know how to teach it. Right.
01:12:21 · Titus Winters
[01:12:21] S1: Or we know how to teach it. But because, like, the history of, you know, software engineering or CS departments, like, we're only at fifty, sixty, seventy years for the earliest CS departments. Right? Like, this is a field that is way, way too young to be doing stuff out of tradition. Even pre AI, it was like, I think a lot of this needs to be burned down because all of the curriculum requirements, all of the teaching has mostly been through accretion. You know, like, we just throw more stuff in there and cut the amount of depth on the existing stuff by epsilon. Yeah. Right? And, like, that... I don't think that works. Even pre AI, I was saying, like, the thing that I really want is, like, you spend more time practice and drill and actually become, like, a fluent programmer algorithmic thinker, not you have a trivia understanding of a million different topics. And now AI. Right? Like, we guarantee, like, you can do all of an undergraduate degree without ever thinking if you can just feed it into an AI because it will do just fine on all of those programs and assignments. And so a lot of what I'm pushing for is we need to get out of the code. We need to uplevel substantially. Like, you need to be able to read code and think as a systems thinker and under... Like algorithmically, like understand the structure and execution. But no one needs to implement a linked list. And we probably shouldn't even teach linked lists. It's way too slow. Right? Memory is a slow thing. The more that we can refocus on design specification, like precision in saying what you want to happen, and then testing validation verification, like making sure that the AI actually did the stuff that you needed to happen. Right? If we can teach those things, then it's suddenly perfectly relevant, you know, for professionals. And I think the big question is, will that be CS, or are we looking at CS enrollment is going to plummet, but software engineering programs are gonna kick up? Because, let's be honest, the stuff that's going to matter, like, in a AI era and still get a job is teamwork, communication, design, specification, testing, validation. Right?
01:14:56 · Gergely Orosz, Titus Winters
[01:14:56] S0: Oh, that's a bunch of software engineering topics. And and also building production software, especially with AI. There's there's no... Like, I was talking with Peter Mattis, cofounder Cockroach DB, Cockroach Labs, And he was telling me that during his college on the side, he built the GIMP. [01:15:14] S1: Mhmm. Mhmm. [01:15:15] S0: Yeah. And he got a lot of opportunities afterwards, and then he built G2K plus. And I was thinking, hang on. Like, he did that on the side next to a CS degree. Would you not want... Just throw aside computer science. I I did computer science as well. But for a software engineering degree, would you not want to start on day one, especially with AI? People come in here and you build on one class, you build one software and the other builds... You build a software with the team. On the third one, you extend the software. On the fourth one, because my experience being in a computer science thing, we we did a bunch of theory. My favorite class was the one team based class where we actually built software in the four years. There was one, only one. Normal. Yep. And then I took an extra class for... To actually learn dot net. And then when I got into a real world, it felt I was starting from scratch. I was thinking of all of these things which were not taught at the time these days are, but the practice was was missing. I I I had the theory, but I Yeah. I definitely did not have the reps.
01:15:15 · Gergely Orosz, Titus Winters
[01:15:15] S0: Yeah. And he got a lot of opportunities afterwards, and then he built G2K plus. And I was thinking, hang on. Like, he did that on the side next to a CS degree. Would you not want... Just throw aside computer science. I I did computer science as well. But for a software engineering degree, would you not want to start on day one, especially with AI? People come in here and you build on one class, you build one software and the other builds... You build a software with the team. On the third one, you extend the software. On the fourth one, because my experience being in a computer science thing, we we did a bunch of theory. My favorite class was the one team based class where we actually built software in the four years. There was one, only one. Normal. Yep. And then I took an extra class for... To actually learn dot net. And then when I got into a real world, it felt I was starting from scratch. I was thinking of all of these things which were not taught at the time these days are, but the practice was was missing. I I I had the theory, but I Yeah. I definitely did not have the reps. [01:16:14] S1: Right. And I would argue that the LeetCode interview was because of this. Because, okay, how do you find signal that someone has put in the reps? Right? It's the students that were playing in the programming contest. Right? Those are the ones that had enough time on That was [01:16:34] S0: the only reps that were kind of a little bit given Common. That were open to engineers who didn't have software engineering expertise. Sorry. Right. [01:16:42] S1: Yeah.
01:16:42 · Titus Winters, Gergely Orosz
[01:16:42] S1: Yeah. [01:16:42] S0: People with affinity for programming who did not have software engineering expertise. [01:16:47] S1: Exactly. Right? And so, like, it made perfect sense from that perspective for us to, like, ask those sort of leak code questions in the programming contest styles, not because we needed solutions to yet another breadth first search problem or reversing a linked list or any of that nonsense, but specifically because it was a proxy for you've been in an environment where you put in reps. Whereas the amount of actual programming time on task for an average degree is pretty modest. And, you know, you go back to ten thousand hours to mastery and Malcolm Gladwell. I think that's at Gladwell. And like... Yeah, like, where are you getting the time?
01:17:25 · Gergely Orosz
[01:17:25] S0: And if I think back of the boot camps that spun up in the... From, like, early two thousand tens, they started to get really strong 2014 to 2017. What they did is a three month, three to six months, sometimes twelve months, but usually three to six months, they took people who had no prior computer science or programming experience. They started day one, let's build an application which was typically a front end and the back end. They gave them the basics. It wasn't all that much, but that was three intensive months or six intensive months of building a working web application from the ground up. Yeah. And there was such a huge demand for software engineers that they got hired as a junior engineer level or almost at an apprentice level, but what they knew compared to computer science grads, they knew version control, they knew GET, They knew pull requests. They knew they they knew a database. They knew a front end. They knew new Chrome developer tools. So they actually had a bunch of valuable skills in only three months Yep. That the people coming out from programming four years might or might not have had. It was more of a coin toss. Yeah. Exactly.