0:00Welcome to the standup. Today, we have quite the show with you. We have one a incredible blocker by one incredible programmer. And then second, we have Casey deeply regretting his life decisions. And then third, we have the main course. Python, is it not good for education? Is Python not good for anything? Is C really how you actually understand computers?
0:23Or is that all a farce?
0:29Uh anyway, I sorry. I saw this little spat happen on the old internet, as they say, about uh a Google researcher, Laurie Wired, for those that are unfamiliar with her game. She is a very incredible YouTuber. Effectively says that CS degrees are kind of fumbling the bag because they're starting students on Python as opposed to C or C++. And thus, it's driving more and more people going in to learn about computer science further and further away from the computer. And this is really kind of
0:58doing them uh dirty, if if we will say. Uh it is not allowing students to excel the best or come out of college really knowing how computers work. Instead, they know how say Python works, which is a further abstraction up the tree. And then this ignited an entire series of arguments of people saying, like, uh most C and CPP coders don't even know a lambda calculus or formal languages are the bedrock of computer science. Good point, And people started arguing over what the heck is computer
1:26science. Do we even Does anybody even know what a true computer scientist is?
1:31There is no true computer scientist that walked this this Earth. Ryan Fleury, of course, was making fun of some things.
1:37There was someone that said something uh kind of making fun of the whole computer science and C being a a better abstraction, saying C is not actually representing what's happening on a computer. And then, of course, Casey, you also had a beautiful tweet. Vaxry was just like, I don't even know Vaxry seems like he's like, I'm not even sure what CS is, but I think it's pretty much math proof and formal logic. And so, none of this makes any sense. So, C really doesn't help at all. And so, it just kind of turned into everybody arguing about things. So, I figured we could break this entire thing up into
2:06three steps. The first one has to be what is the chief goal of a CS degree?
2:12Like, what actually is is the person walking out? Is it to become a good programmer? Is it for you to be able to just do the pigeonhole theorem just at any moment on the whiteboard? Or is it for you to practically understand how a computer operates. And I think those are three very different, you know, positions. And so, I I feel like Casey, you were the most excited and also got like a ragingly or a decently tech viral tweet.
2:38Therefore, you are required to answer this first.
2:42Well, I I would like to point out that my my tweet, the incredible content of my tweet, Legendary tweet, honestly.
2:50Legendary tweet, Casey Victoria.
2:53Filled with wisdom was, and I quote, "100% yes. Thanks, Laurie Wired."
3:00[laughter] Wow, Casey.
3:02That was it. That was all I said.
3:04I didn't say so so He's getting Twitter, everybody. Casey's getting Twitter. [applause] I kind of knew everything you were going to say because I actually listened to your podcast on Pragmatic Engineer. I think that's the name of it.
3:15And then I saw this clip and I was like, oh, this is like exactly where you were basically talking about that whole episode.
3:20Okay, yes. [laughter] I mean, yeah, effectively. So, I was just trying to say what This actually surprised me quite a bit, the reaction to this. I mean, I guess I shouldn't be at this point, but I kind of was because at least when I when I saw that because the reason I saw it was cuz that I I'm not sure MTS something The original post I'm unfamiliar with MTS?
3:45Monitoring the situation.
3:47I'm unfamiliar with that source. I would never have seen I would have not even have known that this occurred, except that it was in the trending like it was in the Twitter trending things. And it said like it didn't say Lori Wired. It said like Google researcher, you know, says says Python. I was like, oh that's interesting. So I clicked on it.
4:07And I saw that the M J S I don't know what this is. I'm like, oh it's Lori Wired. Like okay, I know who that is. I listened to the clip.
4:14You're not supposed to do that Casey.
4:16Just as a quick heads up. Don't do that next time.
4:19Don't don't Don't actually This is comment. You just got to comment as fast as possible.
4:23By the way Casey, if you look right here, I'm actually still getting it as trending. Google researcher questions Python shipped in CS programs. And hey, is that HTTP? Get that out of here.
4:33That's not how we order coffee. We order coffee via SSH. terminal.shop. Yeah, you want a real experience? You want real coffee? You want awesome subscriptions so you never have to remember again? Oh, you want exclusive blends with exclusive coffee and exclusive content? [music] Then check out Kron. You don't know what SSH is?
4:52Well, maybe the coffee is not for you.
4:55Terminal [singing] coffee in hand, living the dream.
5:03So I listened and I thought that that Lori Wired's like what she says is actually very diplomatic. Like she did not phrase it in an incendiary way. She basically described quite literally like what the issues are, why she was concerned about it, and if you listened to it with any degree of like understanding, you would understand that she she never even says like Python is bad. She She
5:33even says like Python and Java are are I think she even says they're great things like, you know, she doesn't have a problem with them. She's just saying that you kind of need to know this other stuff. Like we need to be able to teach people about memory management. And it's And she says like it's easier to do that if you already know something like C++ because it's easier to extend downward.
5:51Like she made the entire Yeah, exactly. Yes, it is that.
5:55you're describing to the T. It's a classic, an all-timer really. An all-timer tweet.
5:59is an all-timer. [laughter] Cooly Bravo. Yes.
6:03Thank you, Cooly Bravo. Yeah.
6:04So I thought it was presented very diplomatically and so I didn't I didn't know there was I didn't even know people were complaining about it yet. So when I said 100% yes, thanks Laurie wired, I was saying that because I was like I was saying like thank you for putting this so diplomatically and I think correctly and great yes, thank you, right? Like uh So I I didn't think I needed to like have a tweet that was explaining anything about it cuz it's so well explained already in the original source
6:33material. Uh but somehow, right? This seemed really uh I I guess in the same way that like whenever there's a national tragedy, the first thing anyone does is figure out how they can talk about the thing they care about as being now very important because of this tragedy even if it's like the most tenuous connection you could possibly imagine. It feels a little bit like that. It's like a very reasonable statement was said by someone in a
7:01high-profile context and so now everyone's thing, whatever it is, they're like swerving it around to be that thing for some reason. So that's kind of what bothers me about B2B SaaS on LinkedIn. Talk there's exactly something.
7:17Yeah. [laughter] It's It's like actually uh computer science is about this and here is my whole thing about what I want to talk about all the time. It's like, okay, like, you know. So that's I just that's what I would say first about it. I mean, there's a ton of things we can talk about. I just want to point out that's what it felt like to me. It felt like it felt like this was actually a pretty hard like if you went and actually listened to this, I think it's actually a bit difficult to come away with like without at least appreciating what was
7:46said and being like, "Yes, that that there is a problem there." Like it She didn't say the entire problem with computer science or all computer science is like none of that was said.
7:56So, she's just saying I think we have a problem and I think she's right. So, and I think it's hard to argue that she's right cuz we definitely have an understanding gap there and especially in the age of AI when you can now sort of program in English, I fail to see how like, you know, focusing a lot more on high-level languages makes all that much sense because if you really want to be high-level, just use English now. Like it doesn't seem So, I don't know. So, anyway, go ahead uh with with the net with whatever the other thing is. That That would just be
8:25my framing since you since you asked.
8:28So, I kind of wish that maybe there exist schools where this is the case, but like I wish we just had basically two separate degrees. We had basically like applied CS and theoretical CS.
8:41Which is like what math has basically, right? Like if you go to a math you can or it's like you have a math major and then you focus on whether it's applied or Pure. I think pure is the word.
8:52Pure math or applied math.
8:53They don't like it when you call it theoretical. They're like, "It's real to me, okay?"
8:57[laughter] Um Except if it's complex numbers, okay?
9:03thing that's been said yet.
9:05Then it's imaginary, all right?
9:07So, the cuz I feel like there's a really good case to be made for we need a lot of people to like do things on computers to solve people's problems, right? It's like, "Hey, we have to write some software, figure out how to like use Excel better or something at a company." Like that would Be scripting Excel should be a whole course at college. There you go. Boom.
9:31Hot take of the day. If you disagree, you've never worked at a real company. So, there you go.
9:35Also, it should be like a 7-year degree because it's [laughter] pretty freaking touchy and there's a lot of buggy There's a lot of buggy Excel spreadsheets out there.
9:45Capstone, Rollercoaster Tycoon inside of Excel. Like, until you can do something like that, you're not really in Excel.
9:51Yes, yeah. It Well, you have to You have to go compete in those Excel Olympics things they have.
9:57They have TJ, odd ironically, like, he's material.
10:00I almost auditioned for that, Casey.
10:04Like the Excel Olympics.
10:07I When I was in Okay, I I was On that sentence, I was I was hanging out You were like, "I almost" I thought you were going to say one and it was like, "audition". I almost thought [laughter] about maybe going on the thing. It's like Okay, okay.
10:19There was a time in my life where I was doing so much Excel that I was like All right.
10:23I watched some videos and thought, "I might think I got this."
10:25For what? Was this for work or what?
10:27Yeah, yeah, yeah. Just a random job that I had in college. We just did a lot of Excel and then I I liked it.
10:34I was a pretty big accelerationist in in college.
10:38E E X E X with an E [laughter] X X an effective Excel.
10:43Uh I Can we give a shout-out to uh to Krazam here for their awesome like macro video that he does on Excel? Like, the Excel We'll link that in the We'll link that in the in the description for this video cuz it's a deep cut and it's a very I think it is the second video Krazam ever uploaded to YouTube, if I recall.
11:02So, that's a real That is a really good one. Uh but my my main point that I was trying to make before I got distracted on Excel, a passionate one.
11:09way, can we just one more time DJ, you are you are cousin your your Uncle Rico.
11:13Of course, know, I actually I I couldn't I could have put that spreadsheet in the bag, okay?
11:19We would have won states that year.
11:21[laughter] Uh Prime, just cuz you watched Napoleon Dynamite this week, uh some of us haven't watched in a while and still get can pull that out, okay? So, that's not a I'll those references. Oh, that's Uncle Rico. Okay, I got it.
11:34Honestly, if his boss would have put him in fourth quarter, they would have won states. That's true.
11:38Give me your sheets.
11:39You know what I mean?
11:41Keep going. Keep going.
11:42[laughter] Applied CS, I think should be an like that actually makes sense. And the whole goal is we're just only going to teach you what we think is the most likely stuff for you to get hired at someplace that does engineering things right after school. Right? It's like we focus on internships. We just like try like cool, you want to do front end? Cool, we're finding out how to how you can learn like next JS. We're doing it really fast or something. I don't know. Or Isn't that just a boot camp at this point?
12:10Yeah, I was going to make that argument.
12:14You need like Because Okay, are we we're making the case that six-week boot camps really prepare people for their jobs?
12:22Well, no, but I I don't I don't know if four years would also prepare you properly for the Anyways. Uh okay, sorry.
12:30There would still be like in a even in an applied mathematics, you still take some theoretical math courses. It's not like you only I'm just saying your like elective section, I think would be more focused on the things that people are literally hiring for right now. Hey, cool. This is we are partnered with a bunch of companies. We do this like there's engineering degrees where you go and you get you have to do internships for like either like the whole time or the last two years or whatever. They're required. They partner with local
12:59engineering companies to do this.
13:01Whatever, right? Like in my mind, that makes sense as a pathway and is a viable complaint of what, you know, see or viable like place that CS degree should be for. But also, you know, I think it's also good that we have people studying the theory of CS and figuring out new stuff and trying to understand data structures better and maybe they're the ones who figure out how to make map reduce 5% more efficient and get to delete 10 data centers off of the earth. I don't know. That seems great. You know what I mean? There's like or they're discovering new theories
13:30of of CS and stuff like that. But those don't seem like strike me as like crazy overlapped in like a four-year degree program. You would you may end up in some different places.
13:44But both of them should still start Actually, okay, I'll I'll Well, actually I'm interested in this. Hey, Casey. I think it's kind of nice to have a high-level language as your very first CS course so you can see things show up on the computer excited. Then I think right after that you should have to do C. So like whether it's Python or Java or something else. Like my first course was Python and it made me fall in love with programming. So I'm interested to hear whatever Nels thinks about that.
14:07So that that's what like uh University of Maryland's Com Sci program does. They do Java as like the 100 courses and they go to like OCaml or Rust or C after the fact.
14:16But I want to You mentioned the boot camp stuff and I think this is literally the exact same argument before like the college people cuz boot camps were like oh you're learning React but you don't even know JavaScript kind of thing, right? Because React is like [laughter] another framework.
14:28It's like it's literally the exact same thing happening in just like in this Yeah. But you should never utter that phrase. If you find yourself saying that phrase, you should go okay, I'm going to be quiet. Just don't say it. That's it.
14:39[snorts] That's what this is literally like what this whole thing is reminding me of is that that whole kind of uh debacle that happened. Um but [clears throat] like to Casey's point now is like why would why should we learn high-level languages if you can just code it English now with agents?
14:51And like I think to me that hits me really hard. It's like I almost want to say for people in college, you you should just focus on like the low super low-level stuff cuz that's what's going to make actually make you stand out in my opinion cuz it's like if I learn Python, sure, I could go type some Python or make a prompt to make a Python program or something.
15:10But when things go wrong, that's when like people that understand at a low level how to optimize, right? Like performance, all that stuff is like such a niche category and that's like if I go to any company, there's only like a handful of people that actually do like performance stuff. Like so like Prime, right? In our DP, your team, your your past team, and all your adjacent teams, you were like the performance people, but there was like you were just a small little group out of a huge engineering firm, right? And I feel like if you could just focus on that stuff, it's
15:39going to be so much easier. Not so much easier, but I feel like you have a better shot of just standing out like in the candidate pool.
15:45Um I don't know. What do you think, Prime?
15:47Uh So, that's the problem is that I still feel like this argument over We're still kind of struggling with what is the purpose of CS even with these arguments, which is even with applied well, is it really important to learn a low-level language? And does low-level language really make you understand what you're actually interacting with beyond just simply like say memory layout? I assume that using C, you actually see, "Oh, it is just a bunch of ones and zeros, and a struct is just like Oh, okay, it's 24 bytes. Like I can see
16:17I can see the memories, you know? Like it feels better." But does it actually is it like does that teach you how a computer works? And I know the internet was so ready to misunderstand Laurie on this one, but there is a bit of truth in it, meaning that however a computer work, which please do not ask me, ask Casey. I know there's a lot of indirection with memory, and there's virtual stuff, and stuff and crap gets paged in, and what I actually write versus what actually happens is is magic to me, at least. And so, it's
16:46it just seems like maybe uh you know, even though C is closer to what is happening, it's not really what is happening. And so, it can kind of give me like a false sense that I I understand.
16:57But I guess the thing that's good about is that you do understand, but at the end, does that make you more practical?
17:01In 99.9% of all situations for programming in today's world, I don't know if that actually or let's just say 80% of all situations, that doesn't necessarily make you more practical or useful as somebody at a job, because often debugging is not what's wrong with the structure layout. It's more like we have 19 services because we went to a conference and micro services is still the greatest thing in the universe and now we have to debug a problem of requests getting like fanned out and now we're making 400 internal requests for one single user request. Stop burning
17:31down our computers. And that has nothing to do with performance. That just has everything to do with bad decision making, which I don't know if low level or high level helps you in any of those situations. And so I'm not sure if this is a good argument and then as far as universities go, for me universities universities at least at one point used to be where rich people learn how to go to leisure well. Well, you know, you didn't come out of a university thinking I'm going to now be super practical at my job. And computer science always understood that. That's why if you go get a MECE degree or a CEVE degree today, you come out and you can do
18:00finite element analysis and fluid dynamics and then you go to a job and you never do those things again. You're never on you're never on the ground being like, bro, hold on, let me just whip out this double integral for a quick second. I see some Green's theorem over here in my my electronics. Like no one's doing that. And so it's like so much of it's done you know, for you via the computer.
18:20At least that's what all my CEVE and MECE and my EE friends do is that they have a lot of that all happen automatic automatically for them. And so it's like CS or CSE CE ME all were there to teach you the theoretics and then it's up for you to become morphed into a job ready person. And so I'm not sure if university really does it really matter that university does or doesn't. I think the problem is is that computer science is the only one
18:47that there's such a battle over what is important in computer science. Is it the theory or is it the practicality? Not saying from a university perspective cuz university Every every every single every math department has this all the time. Every math department has been doing this for way longer than computer science has even been a thing. They've been arguing about this.
19:08Yeah, but but but the problem is is that computer science they make all their money off of grants for the theoretics, but then they're supposed to get all the students ready for all the practical. Like it's a really bizarre thing because they're kind of expected that all students who leave a CS program are practically good.
19:24And like that's kind of the expectation, which I think I'm I'm thinking it's like a broken expectation problem as opposed to anything else. Like I don't Huh?
19:31I don't think the practical part is true.
19:34I think Well, I think people expect them to be able to like assimilate and learn how to become useful on a job after they graduate. And that's sometimes So like in my experience, when we hire for like new grads, we already have the understanding that they're going to be literally worthless for like the first year.
19:49Really? But what's their interview?
19:51I mean, it's obviously it's obviously like the data structure How to do an async request queue in TypeScript, okay?
19:59That doesn't sound like theoretical CS AT ALL. I WAS EXPECTING PRACTICALITY from day one, okay? I did like a hundred interviews, buddy.
20:07Yeah, well, this is this is like a way before. This is like 2000 10-ish or whatever. But we were just asking just pure comp sci data structure algorithm questions. Nothing really practical because we know they necessarily don't have they don't necessarily have the experience. You can look at they like one internship. To be honest, most most internships kind of suck, if I'm being honest. So it's like I don't really pay much attention to it. But we know that they do have like the theory and the foundational skills.
20:34But then their first years where they actually pick up all the practical stuff. Like how do you communicate with people? How do you like how do you actually transfer your skills to the real working place? We kind of help them transition there. And then like at some point they can then start leaning in on like their foundational theory that they learned in school. So that's kind of how we approached it. But this was like 10 years ago, so I don't know what it's like now, to be honest, but I mean, one of the problems here is there's just so many things wrapped up in this discussion that I'm not sure like you could talk about any of them
21:03for quite some time.
21:04So I think the biggest thing I would point out is just that I think that when you're talking about what you should learn in a college setting or more specifically what you should learn in any kind of educational setting that is supposed to be uh more serious and less immediate. So, for example, if I just want to learn Python, I mean, I don't know about you guys. Maybe this is atypical, but I don't think it is.
21:33Like, I never programmed Python before and I wanted to do a little bit of that for uh some stuff I was doing on the Substack.
21:41It it it took like 5 minutes. Like, it did The amount of time it takes to learn for me to learn to program Python was zero time, right? Right. So, the idea that like we need to think very hard about what language you're learning uh to me seems just kind of ridiculous because uh if you're if you're a decent programmer, then if you someone asks you to program in a new language, it's the it like I have never found that to be a relevant question. It it just isn't. And maybe there are certain idiomatic things
22:09that I'm going to have to like go read about because they wouldn't occur to me because I haven't been programming this language for 30 years or whatever it is.
22:16So, like, maybe I will want to go like uh to a good reference of some people who you know, that I would respect and say, "Okay, so what are some idiomatic things that you tend to do in Python? Uh like, all right, I see. Thank you." And that's it.
22:28So, to me, when we're talking about what is what is supposed to be there for even a practical education, not even the theoretical part, it's what are the things that remain true?
22:41Meaning, if I learned them 30 years ago, I didn't relearn them today. There is a very big, I think, misconception promulgated by this C is not a low-level language statement, which I think is false and not interesting, but that's kind of irrelevant to the argument. That somehow the things that you would learn in a course that was about low-level programming do not do not remain true because hardware has changed.
23:15And that is just completely false. Like it's literally completely false. The exact same things you had to consider in 1968 and 1972 and 1977 and 1987 and 2012 and 2026 are exactly the same. The only difference is the diagram you are reading about how these things are interconnected on the particular thing you have will be slightly different. That's the difference, right? But name a thing, whatever you want.
23:50SIMD caches, loop caching, virtual memory, whatever it is, it was there. It was there since like at least 1970, but usually a little earlier than that. And so, if you went and learned about how computers work, meaning you were like, here is a survey of how they work, generally speaking this is what the architectures look like, here's the different kinds of components we have, that literally has changed almost not at all, you know, in like 50 or 60 years.
24:19The The thing that changed the most is really like that everyone has the best of everything now in their desktop chip.
24:27Like all the things that you would have been like, oh I had to have a CDC 6000 or a system, you know, 360 91 to get those things like a loop cache, and now they're just on my PC by default that I have in my home or my smartphone or whatever, right? That's the big difference, but that's really it. They're all the same concepts.
24:49And so, uh the reason that I think, just to tie it back to Lori uh Lori Wired's like original thing she said, the thing she said is the important thing. It's that if you teach a course in something like C, I would say Rust is probably equivalent here, although I'm not really a Rust programmer, but you know, it's basic, you know, you pick a language like one of those languages.
25:13The important part is that it's very easy for someone to say, "And here is how we would access this part of the CPU. Here's how we would do a thing that was cache aware. Here's how we would multi thread this. Here's how we would do an atomic." Right?
25:28Because you're not forced to use some high-level like co-routine implementation thing that's the only way you do that in a language, right? In some higher-level language that's that's right. In C, yeah, the vanilla language C doesn't have these things in it, but that's not the point. The point is that if you already kind of know roughly how to learn something like C or Rust, you can then just right there, without teaching the student anything new, you
25:55go, "Now, we are going to go use this crazy instruction on your CPU by using an intrinsic to go do this thing that looks at a SIMD vector and takes the mask register and packs the ones that are zeros into like and you can understand it with knowing nothing more than just the C you already learned and the little bit that they're trying to teach you now. And so, at least what I got out of her statement, and I thought she said it pretty clearly, she even used the word like extending down to
26:24memory management or things like that.
26:26The thing about C is it's very easy to extend down to whatever I need to teach you. It's not that the language itself has baked in the concept of vector processing. But I don't want it to, because if it did, I couldn't teach you it as easily, right? Cuz you don't have to learn how it actually works if the language is auto vectorizing. If I teach you how to write shaders, you will never know about how things like vectorization work because it's already baked into the
26:55threading model. The the like SIMT model of programming, right? So, to me, like I think she was absolutely correct. I think the perspective that she placed it in was absolutely correct. And I think that's the critical piece that has to be understood, right? And if you do learn those things, I think they're useful for decades. Whereas, if you just learn how to program Python and the libraries that come with Python now, I I honestly don't think 30 years from now anyone's going to care what those
27:27That was one thing I really like. So, I I technically have like more of a computer engineer. It's electrical and computer engineering degree. It's like I didn't go I have a CS minor. And it was fun cuz we just learned a bunch of stuff like about computers and like physically how they worked. And it was always very helpful to me cuz I I was like, "Oh, you can look at the code and be like, "Well, that's going to be slow."
27:49Cuz there's there's no way to make the computer do that in any way that's not slow. You can just look at it and be like, Exactly. That's not going to be good, which has served me well for a long time, which I I like. And it didn't matter what language we did it in.
28:04Honestly, that was a load-bearing description you just gave right there.
28:08Genuinely, [laughter] that was well-formed.
28:11That was well-formed. In my honest opinion, that was good.
28:15Yeah, and and so and it also means that you can do it in other languages, right?
28:18It doesn't have to be C. It just has to be a language with that easy downward extension, which is it's it's very cumbersome to do that in Python. Even in Java, it's cumbersome to do it.
28:28It doesn't mean can't, right? It's not trying to you know, people get hung up on can you or can't you do this thing in a language. It's just it's just how simple is it to just extend downwards into something I'm trying to teach you, right? And we could just teach it all in assembly language, but I think at this point that just being able to read assembly language is enough. I don't know that we need to spend time to teach people to really write significantly sized programs in assembly language. So, learning C and how to read the ASM that comes out of it
28:56seems like a very or or like I said a rust or something like that that's has this capability. I think is a good idea and I think Lori was correct.
29:05Well, that was my next topic was what makes C better and Casey I believe that you absolutely nailed that one. So, that one's done. And so, the real question is is Python a mistake or should that be is is Python itself the mistake or is it the fact that there is not a heavy emphasis on C. And I think you've kind of also answered that which is that it's the exact same thing as like a I mean it's kind of like a boot camp in some sense. You go to learn React.
29:32It's like it's not a very extensible skill unless if you go and you practice it a whole bunch. So, you're not learning like how to make a great UI, you're learning how to use React to make a UI.
29:40Or COBOL might be a an the historical analogy. It's like it's not a bad idea to learn it at the time. It's just probably not that relevant 30 years from now, right? But but it doesn't mean you shouldn't maybe start like like I think to T's point start with it because it's like hey, this is what people are using today.
29:58You'll see a lot of it. It's easy for you to get some stuff up on the screen that you'll be excited about, right?
30:04That all makes sense to me. So, I don't think Python is a mistake. It's the lack of of some other thing that's the mistake if it's happening. Which I don't know by the way because I'm I don't know. Like like like Lori was talking about this move away from it. I don't know anything about that. So, I'm not saying that's happening. I'm just saying assuming that is happening, I agree with her that that's a problem.
30:23I will say about the COBOL thing though, the use of COBOL cripples the mind. It's teaching [laughter] should therefore be regarded as a criminal offense.
30:31Edgar Dijkstra, QED. So, just in case you're wondering, you can't do that one.
30:35Yeah, I think you could find that from Dijkstra about just about anything you wanted.
30:39[laughter] Is that funny? is just actually crippling the mind. Yes, he also said APL is for people who want to go play play around. APL's a mistake carried through to perfection.
30:51Yeah, I think so we did like I mean like I said the first CS class I took was Python and that's like before I took that class I literally thought learning programming languages was like learning Spanish or like learning a foreign language. Like the way everybody talked about it like in my life because I like nobody in my life is technical.
31:12My dad's an accountant and I always told him, "Dad, I like math but I'm not going to do your math when I grow up. That's boring."
31:19Um right? And so I got literally thought programming languages were cool I have to go memorize like a bunch of random grammar things and like there's like a million new vocab words and there's like 35,000 exceptions to everything and you can't do well on the test unless you study extensively vocab and I didn't want to do that I hated that. Um So when but I had to take a CS class as part of my like liberal arts thing cuz I was doing mechanical engineering.
31:46So one of our like gen ed class we had to take was CS one and I took Python and I was like, "Holy cow, programming is just like logic and like pattern recognition and like trying to communicate with the computer. This is so much fun."
31:59And then from that class the next class we took was data structures and it was in C or C++ I think it was in like C++ but we pretty much only used C features, you know what I mean? Like that kind of thing. And that was for me I thought that was a really effective way of getting people into a track for CS where you can see things like appear on the screen quickly, you can interact with stuff, you can like you know draw a turtle that moves around on the screen and like connects dots. You're like, "I just TOLD IT TO TURN LEFT AND IT TURNED LEFT. THAT'S SO COOL." Like I think JavaScript is fine for some of this too.
32:29teach, a lot of people are thinking you're talking about an actual turtle now. You're going to have to logo pill them.
32:34It's the sorry it's just literally a dot it's a turtle's library in Python. So, it's it's not as exciting as you might think. It's just it's it's it's just dots.
32:45I would have that in my head.
32:46Yeah, well, Trash, that's cuz you're obviously not a real engineer. You don't know Python turtle library. So, [laughter] I tell you what, I did C++ in college and it almost made me quit coding. I hated it so much.
32:58at the very beginning or in the middle, Trash?
33:00I think it was like a 300 course. I did VB before that.
33:04did VB and then we went to Dang.
33:07C++ and I was like, "Yo, what are these tildes doing here?"
33:10That was [laughter] weird, dude.
33:11I do think like like a the the the part where maybe like I I wouldn't like I'm not sure about what the in the original context of the discussion the the plus plus part of C++ is a problem. And so like, you know, the the I think if you were teaching people C++, the like the actual C++, the way that it is now intended to be programmed, I do think that would be a similarly transient thing to teach people much
33:40like Python. Like not something anyone will care about in 30 years. You know, everyone's going to hate me for saying that, but like so, you know, that I don't know about that part and maybe maybe Laurie Wired was actually implying that teaching C++ the plus plus part was important. I don't know I would part ways there, but you know, I don't I don't know.
33:58seem like her her like her suggestion that like yeah.
34:02part of what she the point she was making though, I don't think.
34:05I think to to your point, Casey, like as much as especially like, you know, let's say before maybe senior year, like my senior year, we did a lot of like very pragmatic stuff where we like built projects together and like had to figure out how to collaborate. Like so, we ended up using Git and figuring this out and a bunch of other stuff, which was very helpful before going into the workplace. Like let's say years 1 through 3 or something. Spending a bunch of time teaching you all about the tilde's, where they go in C++, will
34:35make programming not fun. It will not be fun for people and I think it is actively like not helpful. You don't get [laughter] a reusable skill on the other side and you hate it. At least if you're going to teach them a not reusable skill, make them like excited about something in programming. Like cool, here's how to make a website and it wasn't fun, but at least you can like submit a form when you're done or something. I don't know.
34:57Um and so I I do have to admit something.
35:01Which is that See at MSU, Montana State University, not Michigan. Okay.
35:06Uh Well, I don't like Michigan State either, so that's fine. Yeah.
35:10I think we spit on that thing. I was spitting spitting on that thing.
35:12Do you know how many [laughter] like CEOs of HTMX right now are hanging on every word you're about to say?
35:19Oh, yes. They will take the state of Montana. I have been to his office. I actually know where it's at. I know I know all about the EPS Represent.
35:27the engineering physical science buildings. In which also has the computer science laboratory in. All right, anyways, I digress a little bit, but uh during my time when I started in 2005, Java was the thing they taught.
35:42And I man, I hate to admit this. I was a stellar student. Uh the programming language concepts, I had such a high grade, they had to throw out mine and then curved to the next one. I got like 170% multiple times on on many tests.
35:59Wait, wait, wait, wait, wait. 170% Oh, after the curve.
36:03After the after being thrown off and the new curve shifting me up so far. So I was I was very very good at these things. Uh computer engineering, they actually going through and and doing like addition from a CPU's perspective [laughter] on integers by hand. I didn't hear what Trash said.
36:19Um I'm just kidding. I said what happened?
36:22Oh, what happened? [laughter] I'm about to tell you. That's the That's what I'm This is me getting to the shameful part, trash.
36:28Let me tell the story in a way that is you know, because you have to tell a story where people like oh, he's just humble bragging and then I turn it around back on that.
36:35Now, here's the thing is I only had one class on C [laughter] I only had one class on C and it was kind of like a brief one where it's like hey, here's how to do a linked list in C, here's how to do a few things and it wasn't really like that good. It was more like on the language of C. It was a 100 level class like just like how to dip your toes into C. And the thing is is that after I graduated college I could talk about heap and stack memory and all these things, but it didn't dawn on me until like a couple years after
37:05college that when I was programming C that I was writing either to the stack or to the heap cuz I never actually learned those things. So, even though I aced every single thing, could do addition of a register by hand, I could multiplication, I used to know all that stuff, all the barrel fun stuff. I could do all the things. But, I actually had no tying it together Mhm.
37:26to the point where I just I did not understand it because they never taught C. I only knew Java and I do think that that was a great disservice that I wasn't pushed further into that category where you take the theoretics. Like actually drawing the squares and then doing the squares in language in a very practical kind of sense. And like I really do I really do feel like I I greatly missed out on that because all practical assignments like doing AVL trees and everything were all done in Java. All my stuff was done in Java except for networking which was done in
37:55C. But again, you're just playing with like you know, net.h. You're not actually you're not actually doing anything other than crafting UDP packets. So, it's it's not quite the same thing. And so, I do feel like I was certainly robbed and it it did uh I actually still look back at that as like what a waste that was. I was learning so many things that I didn't understand how good they were, but I could pass exams. Like I could 100% all of them, but I literally learned nothing because I didn't have that like the the real tie into
38:24everything. And so I look it back at that as like a huge failure. And so I I do actually agree that I wish more things were in a sense reaching down as you say. Like that makes perfect sense replaying it against my past. I could leak code. Yeah. Yeah, I could leak code like a boss. Like I was that classic person I could come out and balance a tree, but I have no idea about anything else.
38:44Well, and I think that gets to like Lori's like extending downward thing, which is the crucial part, right? It's like you did learn some C, but you can't like it they can't just say, "Oh, here's the C language. Okay, now you know everything." It's like, "No, it's like the C language is just what what really we're saying is it's a way it's a framework that makes it easier to teach these concepts that you actually need to know. And again, it's not like you can't teach them other languages. Like one of the things I did on my Substack, right, is I'm like, "Hey, here's this Python program. It's extremely slow to add the
39:13add numbers together, and we can show why." Well, okay, we could we could use Cython to compile that Python to C. You could go reach for PyPy or something, but you like those are all these steps that now you have to do instead of just no, we can literally just write in this language without changing anything we're doing.
39:30We can just show exactly how to do the thing from here. It's a very short step, right? And so it's really just about it's a very it's just very convenient. It happens to hit a nice sweet spot.
39:39It's why it's been such an enduring language. There's so many things written in it, so it's easy to go look at the examples of people doing things like operating systems in it cuz that's what they write operating systems in and blah blah blah blah blah, right? And so, you know, those languages and the C lineage languages like now successor languages like Rust that are trying to be, you know, C and then some new things without breaking the C-ness of them, right? Um those are they're they're just easier to do this education, I think. I think that's just
40:07the bottom line. And when you if you made me teach the same thing in Java, it's just going to be harder for me to do that.
40:13Hey guys, if you like this episode, you can watch the rest of it on Spotify, and don't forget to like AND SUBSCRIBE. WOO!
40:24Five code errors [singing] on my screen.
40:29Terminal coffee living the dream.