For a long time, tech culture has focused too narrowly on technical skills; this has resulted in a tech community that too often puts companies and code over people. Greater Than Code is a podcast that invites the voices of people who are not heard from enough in tech: women, people of color, trans and/or queer folks, to talk about the human side of software development and technology. Greater Than Code is providing a vital platform for these conversations, and developing new ideas of what it means to be a technologist beyond just the code. Featuring an ongoing panel of racially and gender diverse tech panelists, the majority of podcast guests so far have been women in tech! We’ve covered topics including imposter syndrome, mental illness, sexuality, unconscious bias and social justice. We also have a major focus on skill sets that tech too often devalues, like team-building, hiring, community organizing, mentorship and empathy. Each episode also includes a transcript. We have an active Slack community that members can join by pledging as little as $1 per month via Patreon. (https://www.patreon.com/greaterthancode)
261: Celebrating Computer Science Education with Dave Bock
Catch Dave on Episode 006 of Greater Than Code! Getting Technology Into the Hands of Children with David Bock
02:10 - Dave’s Superpower: Ability to Reevaluate and Drop Ideas – Onto The Next!
07:10 - The Acceptance of Ruby; Using Ruby as a Teaching Language
- Teaching Ruby Makes Approaching Computer Science Approachable
- Intro To Programming Skill Tree.md
- Computational Thinking
- Object-Oriented Programming
- Functional Programming
- Primer on Python Decorators
18:01 - Mobile Development
- Accessibility
- Teaching Performance; Linear Algebra
24:10 - Teaching Remotely
- WatchDOG Dads
- Cameras On/Off
- % of Women Went Up / Gatekeeping and Gender Bias
34:25 - Computer Science Education Week + Teaching/Volunteering
“Computers aren’t smart. They’re just dumb really, really fast.”
- Understanding the Pareto Principle (The 80/20 Rule)
- Zero: The Biography of a Dangerous Idea
- Plimpton 322
56:39 - Handling Time Management and Energy
- Ted Lasso
- Getting Positive by Looking at the Negative
Reflections:
Casey: Motivating students to learn algorithmic efficiency. Feeling the problem.
Mae: Becoming more involved in the community.
Chelsea: What are people in the tech world ready for?
Dave: How much talking about computer science education is invigorating and revitalizing. Seeing problems through beginners’ eyes.
This episode was brought to you by @therubyrep of DevReps, LLC. To pledge your support and to join our awesome Slack community, visit patreon.com/greaterthancode
To make a one-time donation so that we can continue to bring you more content and transcripts like this, please do so at paypal.me/devreps. You will also get an invitation to our Slack community this way as well.
Transcript:
PRE-ROLL: Software is broken, but it can be fixed. Test Double’s superpower is improving how the world builds software by building both great software and great teams. And you can help! Test Double is hiring empathetic senior software engineers and DevOps engineers. We work in Ruby, JavaScript, Elixir and a lot more. Test Double trusts developers with autonomy and flexibility at a remote, 100% employee-owned software consulting agency. Looking for more challenges? Enjoy lots of variety while working with the best teams in tech as a developer consultant at Test Double. Find out more and check out remote openings at link.testdouble.com/greater. That’s link.testdouble.com/greater.
CHELSEA: Welcome to Greater Than Code. This is Episode 261. I’m Chelsea Troy and I’m here with my co-host, Mae.
MAE: And I’m here also with Casey Watts.
CASEY: Hi, I'm Casey. We're all here today with Dave Bock.
Welcome, Dave.
DAVE: Hi, glad to be here again.
CASEY: David Bock is the Vice President of Strategic Development at Core4ce, Inc. where he is responsible for taking new strategic ideas within the company through development and into production.
Dave speaks frequently on software engineering and management topics at software engineering conferences.
Dave’s true passion is his work as the Executive Director of Loudoun Codes, a nonprofit for teaching K-12 students in Loudoun County, Virginia topics related to computer science. He has been volunteering in classrooms since 2013, working with parents and teachers on an official curriculum, extracurricular, and other supplemental activities.
Welcome, Dave. We’re so glad to have you.
DAVE: I'm thrilled to be here. I love to talk about my passions.
CASEY: Speaking of your passions, we always start the episode with a certain question. I think you're ready for it.
DAVE: Yeah, I’m never ready for this question. [laughs]
CASEY: What's your superpower and how did you acquire it?
DAVE: You know it's funny, listening to this podcast over the years, I have answered that question in the car a dozen times and every time it's a different answer. Sometimes, I don't think there's a good answer for it. It's like trying to settle on what I wanted to talk about this time. Because it's like I don't have any superpowers; they're just mundane powers applied well.
But I think my superpower, if I had to pick one, I would say it is my ability to quickly reevaluate and drop ideas that I no longer find value in like, I don't get overly attached to an idea. I guess, that's the best way to put it.
The first time I realized thinking about that was an episode of Star Trek: The Next Generation where Captain Picard said to somebody that if you truly believe your convictions, you won't be afraid to reevaluate them, and that's just something that I've always kind of applied.
It came up again. My wife watches the TV show, House, which is now long since off the air, but the premise of that show was this doctor who was an expert in rare pathological diseases and he was a kind of a grumpy antihero doctor.
Every episode, there'd be some weird, rare disease and he'd be the first one to identify it and then some other symptom would present itself and he'd abandon that idea and move on to the next one. At one point somebody said to him, “You always think you're right,” and he said, “No, I always think I'm eventually right.” Because if you see it, he's always willing to drop an idea and move on to the next one even when other people were still wedded to the old idea and I think I apply that daily.
But even in my career, back in the 2006, 2007 timeframe, I was set. I could have kept as a Java developer for the rest of my career and instead, I abandoned it and started doing Ruby on Rails development. And I've since abandoned it again. Did the Clojure for a while, abandoned that again and got into management. I just didn't want to identify myself with any one track record too long.
MAE: Love it. Was that how you ended up having that approach is from TNG, or that is like a –? [overtalk]
DAVE: No, I just realized that I had that and that resonated with me. That line resonated with me, that stayed with me all these years. I can't say I noticed it the first time that I saw the episode. It was in a repeat one day that it just really struck me.
CASEY: When did you first realize you have this skill? Was it before that?
DAVE: I think when it was made conscious to me was around the time I was career switching. I had a resume in the Java space that sounded unbelievable. I was a president of the Northern Virginia Java Users Group. I was on the Java 6 Spec Committee. I was one of the 100 people that Sun had called a Java champion. And I really had – I was speaking at a Java themed software engineering conference.
I saw Ruby on Rails and I was like, “That is so cool.” It's such a breath of fresh air. It's like every decision that a team normally argues over for the first several weeks is just made, you can just start moving out. I quit my job, started a consultancy doing Rails development and kept with that for 8 years and it was a blast. Meanwhile, I had friends in the Java community who were like, “Why are you doing that? That's a toy language.”
CASEY: Oh, wow.
[laughter]
CHELSEA: What did you say to them?
MAE: Yeah!
CASEY: How did you retort? Yeah.
DAVE: Yeah, I didn't have a good one. It was just, it was a good career move
MAE: Maybe you've been doing it so long, you don't have a way to explain it anymore, but how do you not get too emotionally attached to any single idea?
DAVE: Oh, man. I think it might be just a healthy amount of imposter syndrome.
[laughter]
Where I question myself a little bit and I know that it also presents itself in a way that, especially as I've gotten older, I noticed that when I'm working with people and a good idea will present itself, they'll immediately attach to that idea and start doubling down on it and about the time other people are starting to write a blog entry on it, I'm wanting to lean in and do research and figure out prior art. [chuckles]
CASEY: Have you experienced any downsides of this? Has this bit you before?
DAVE: Ah.
CASEY: I'm all for this concept that you're talking about, but.
DAVE: That's a good question. Have I ever been too quick to abandon an idea that would have paid out? Probably. I also fall into that cliché of people that wonder if they have never diagnosed ADHD because I have a million half started projects and it's like a milestone when I actually get to finish one. I wonder if that's related. I don't know.
MAE: It's a pretty huge swath of programmers.
DAVE: Yeah. [chuckles]
CASEY: True.
MAE: You mentioned the thing about the Java folks calling Ruby a toy language and I'm curious about where you think it stands today and why and how you find Ruby really effective, especially for educational purposes.
DAVE: I guess, I'm saddened to see so much news lately where people are talking about the death of Ruby, or the death of Rails. Because I really think that the acceptance of Ruby in a first-class way was my eye-opening to the world being a polyglot environment. That even when I was a Java developer, I was a JavaScript developer, a CSS developer, an HTML developer, and Ruby was just another dot on that map for me.
If I look at my career path, I started professionally programming in Pascal, did C, C++, Objective Pascal, switched to Java. So moving to Ruby was just another step on that long road for me, but it's the one that I keep going back to. I've also done Clojure. I'm managing a project now that's in Python and JavaScript and React. Ruby is at a sweet spot for me. When I want to solve a problem, it's the tool I bring out every time despite a half dozen languages I could probably do that with.
I did mention that it was a sweet spot for me in terms of teaching and I need to say that the curriculum that we formally teach in high school is based on Java and that's because the AP exam is in Java. So the march is towards programming in passing the AP exam. But I think the curriculum is a little bit schizophrenia in trying to decide whether it's teaching computer science, or whether it's a vocational skill for teaching programming. For me, teaching Ruby makes computer science much more approachable, mainly because I get to get syntax out of the way.
The first few weeks in a Java programming course, my students struggle with where the semi-colons go? Wait, why do I need to begin in brackets here? What is this public static void main thing about? Which is, that's especially frustrating because we never fully explained that even in 2 years of programming courses.
And Ruby just strips all that kind of complexity away. But then at the same time, it makes some aspects of teaching computer science much more approachable. The fact that I have all these cool things I can do with collections, like I can say each, I can select, I can reject, I can over a collection ask for every combination of five elements of that without it being a page and a half of recursive code [laughter] to get every possible combination.
I teach concepts around algorithmic performance by talking about permutations and combinations that would be inaccessible that quickly in other languages, including Python. Python is a close second, I think and Python definitely has mindshare for teaching in that space. But Ruby is just in a slightly sweeter spot than that for me.
It's funny because you get five programmers in a room and start talking about high school computer science education, you'll get six answers as to what language we should be teaching. I can say that 8 years in a classroom has challenged every assumption I've ever made about that and there are situations where I've taught students 6502 in Z80 assembly language programming on retro computers. So I've been through the gamut of trying to teach students various things.
There's an example where we even do a little bit of prologue to solve a [inaudible] puzzle. When my students, who have been programming in Java for a while, see Ruby, they accuse me of cheating.
[laughter]
No, you can actually program like this professionally.
MAE: Love it.
CASEY: I used to teach, too and a lot of this resonates with me. I taught undergrad programming and I chose Ruby, too for a lot of the same reasons [chuckles] because it's approachable and syntax gets out of the way.
I just shared in the sidebar here, a diagram that it's a dependency graph and you need to know what a variable is before you can sort an array, you need to know res exists before you can sort them, and you need to know about objects before you can learn Rails because it's based on objects. It's like, what do you need to know before you can know the next thing? It's a huge, huge spider web of stuff.
But in other languages, if I had taught Java, for example, there's a whole another mess, web tangled ball of yarn at the top, which is the syntax getting in the way. Ruby gets a lot of this whole what you need to learn first, second, third. It's a lot cleaner in Ruby.
DAVE: Right. And I don't know that there's a perfect teaching language and I think that's irrelevant that there isn't. I think how many of us professionally program in the first language we ever learned? I think the real expertise as a software engineer comes when you know several different languages and can bring them to bear on different problems.
So really – and I think that the computer science, the teaching community is starting to get this right, that they're starting to concentrate on computational thinking, not the syntax of computer programming. If you look at the kind of the hierarchy of skills, there's things that we can teach elementary school kids about computational thinking, give them puzzles on how do you explain to your friend how to solve a maze, things like that.
Then there's the notion of computer programming. How do we get the curly braces in the right place? How do we take our ideas and translate them to the computer? And then above that, there's computer science concepts and then using computer science concepts, but in a much different way, is software engineering.
I'll have students that ask me, “Well, what's the difference between the two?” And computer science, I tell them it’s ultimately about like the performance of algorithms and you can get into almost philosophy of what is computable within the universe if you take computer science to the ultimate theoretical limit. And software engineering is about how do we use as various pieces to solve business problems? How do we work together as a team? And those are very different problems and it's one of the reasons why you can go to school for 20 years to get an advanced theoretical computer science degree, but it's possible to come out of a 12-week bootcamp and have skills that those people would never have.
CASEY: Well said.
MAE: Chelsea also is a teacher. And I'm curious, Chelsea, if you have any thoughts in this realm?
CHELSEA: I do. So I teach a couple classes at the University of Chicago. One of them is Python programming. I teach Python and then intermediate Python and I teach a mobile software development class.
It's funny that you mentioned that there's not one perfect programming language for teaching, because I found that to be true as well. I teach the Python programming class, for example, the point isn't specifically to learn the syntax of Python. The point is to learn principles of programming and the language is chosen basically because it's a relatively low overhead language for a lot of the reasons that Casey mentioned before. But there are limitations that come with that, too.
So Python, I think one of the strengths of Python for example, is that the core Python team makes explicit what I think a lot of other programming language core teams leave implicit in such a way that it is apparent for new learners to understand which is that any tool, any programming language, anything that we write, or read, or use in computer science was written with a perspective in mind because it was written by a person, or a group of people. The Python core team makes that perspective explicit in a number of ways and that perspective leans towards object-oriented programming, which works for a lot of our use cases.
But if we are attempting to teach principles of programming, it also makes sense for us to include functional programming, functional paradigms, and functional programming thinking and I end up needing to use a couple of workarounds to get to that in Python. We end up writing decorators.
A decorator is a sort of meta function in Python that you can pass other functions into and it can rack those functions in the same way that you would decorate a class in something like Ruby. It's not the kind of thing that you would write as an end user application developer. Most folks using Python don't write decorators. I'd hazard the guess in fact, that most people who write Python don't know what a decorator is really.
So students start a little bit confused about the decorator syntax and even Python core maintainers have asked me, “Why do you teach decorators in an introduction to programming like Python course?” The reason isn't that students are going to need to use decorators professionally, it's that decorators are one of the only access points in Python for teaching functional concepts.
We run into a – we handle the problem a little bit differently, or I handle it a little bit differently in mobile software development. So that course, similar to the Python programming course, is a platform specific way to sneak in general programming concepts. And I happen to think that mobile is a really great avenue for teaching a lot of things in computer science. Because before you're on a really small device, a lot of the algorithmic optimizations and data optimizations, that we talk to students about being so primarily important, are just not functionally relevant on a machine of the power that these students have.
At this point, a laptop is so powerful that telling them that they need to optimize this loop in order to make something run faster, they're not going to be able to notice a difference on their machine. But when we're talking about something like a mobile device, where there is a very real, very tangible limit on the amount of data that your application can take up, those things start to feel tangible to students in a way that makes them relevant and memorable. We end up using a couple of different programming languages in that course—we use Swift, we use tiny bit of Objective-C, and we use Kotlin.
CASEY: I love that idea that you can motivate programming a really efficient algorithm by putting it onto a mobile device. [chuckles] Sometimes in a class, I would bring that up as the example like, “Well, sometimes you'll need to make it very efficient, like a mobile,” but we never taught – in my experience, I had never taught mobile app development, but that's so motivated. It matters there.
CHELSEA: It helps. I find that mobile is a great avenue for teaching a lot of different things in computer science. So we end up not talking a lot about sourcing ethics for mobile devices, for example, is a very tangible way for students to understand some of the engineering ethics concerns that we have.
And mobile allows us to talk about accessibility in ways that are tangible for students, because the truth is that the vast majority of the design innovations that made mobile devices so important when they came out, came from accessibility companies, accessibility ideas, and accessibility products.
So if folks have heard me talk about mobile development before, then they've heard me say this, but the touch capacitive screen that made the iPhone so important that made it break the market for phones that existed when we were using T9 and keypads. That innovation and its precursors came from this company called FingerWorks that Apple acquired and the goal of that company was to enable human computer interaction for people who had lost their fine motor skills.
There are a lot of things in development that are like that, where the fact that everyone at this point who's got a mobile phone, considers it so indispensable to their life is a testament to the way that building something in an accessible fashion makes it more useful to everyone, not just the community that “needs the accessibility.”
MAE: Yes. Thank you for plugging accessibility as accessible for all.
DAVE: You mentioned being able to teach them performance and you're right, that is a challenging problem on modern machines. I just shared in the chat two different links to puzzles that I use in the classroom.
One is this Star 26 puzzle, which is the numbers 1 through 12 on little pegs and you have to arrange them in rows of four numbers, kind of like the Star of David and have it so each row adds up to 26 and there are several hundred solutions to that problem. I walk through my students solving that puzzle and the way we can write a program to find every solution to that is just try every – I was talking before about combinations and permutations. We can literally try every possible permutation of the numbers 1 through 12, and we just have a function to see if that's a solution. In a Ruby program—Ruby is not the fastest language—and it can chug through that in about 2 minutes on my laptop.
The second puzzle I shared is called Aristotle's Number puzzle and that has the numbers 1 through 19 that have to be ranged in a hexagonal, almost like a honeycomb pattern so that every row and column has to add up to 39. If you look at the size of the permutation of the number 1 through 19 – and I'll show that puzzle to the students and they'll be like, “Oh yeah, we can write a program to solve that,” now that they've written the first one. They write the program and not considering the size of the set of the number of permutations of 1 through 19 and they sit there and they wait for it to start to spit out answers and wait and wait.
A few minutes go by and nothing happens and then I ask them, “Well, how much bigger is that space?” So we talk about finding all the spaces and we realize that if we could solve permutations of 1 through 12 and about 2 minutes, the permutations of 1 through 19 will take over a 1,000 years. So we're like, “How can we get that down?” And we have to have a completely different approach to solve that problem.
CASEY: That is motivated. To make them feel the pain of waiting, even though – [overtalk]
DAVE: Right, right.
CASEY: It's probably, it's time bound, right?
DAVE: Right.
CASEY: To give them a…
CHELSEA: How long did the final programs end up taking?
DAVE: So you use a little bit of linear algebra and believe it or not, I can use this to – they can intuit the concepts of linear algebra from this puzzle. I'd have to talk you through it, but I can find the solution to that first puzzle in under 30 seconds and then using the same approach on the first Star 26 puzzle, we can bring that solution to find all the possible answers in under 6 seconds.
CHELSEA: Wow.
DAVE: So we go from blindly testing every possible permutation to a depth first search where we quickly eliminate entire branches of the problem, because we know that they don't solve a simpler version of the constraint. And I have a bunch of different puzzles that kind of fit that pattern of the first one, the obvious brute force solution solves it in a couple of minutes, the next one would take a 1,000 years. So we have to figure out a smarter way to solve it.
CHELSEA: I think that's really cool that you give them the opportunity to see, to feel the waiting process.
DAVE: Right.
CHELSEA: I think that those sorts of experiences end up allowing lessons like these to stick in a way that just explaining that this thing is going to take a long time sometimes doesn’t.
DAVE: Right. I should also – I'm talking a lot about my time in the classroom here. I need to give credit to the teacher that I work with. I'm not going to say his name because I didn't get permission to mention him beforehand. But I work with a math teacher at the high school where I work, where 8 years ago, he opened his classroom to me and we lecture together. Most of the time, I would just wander around and help students with lab time. But there are several topics that he just lets me stand in front of the class and give my ideas and give them extracurricular projects. It's just fantastic that he opened his classroom to me like that.
I volunteer in his classroom two mornings a week and that has led to things that I do at local elementary schools, local middle schools. And then last year during the pandemic, when a lot of teachers were looking for other ways to engage their students, I started to engage a lot more remotely and that finally got me some visibility at the county level where there's a Director of Computer Science Education and a few education facilitators that I'm working with now as well.
CHELSEA: Very cool. How did teaching remotely compare for you to teaching in-person?
DAVE: Oh my God, it was so hard. In addition to this—I got into this whole thing because I have 3 boys that are triplets and they're finally at the high school where I'm teaching. But when they were in kindergarten, I started to volunteer through a program called Watch D.O.G.S Dads at their local elementary school. So that's how I got into this whole thing.
So I taught in the classroom for years before COVID and I saw it, first of all, with my own kids in that there were classes that they did fine at, especially with me being able to tutor them in some math stuff, that worked well. But it was also the first year that all three of them were taking Spanish and that was just a really hard remote thing to try to take a foreign language remotely because you sit there and you watch the teacher and she's like, “Okay, I want everybody in the class to say Hola, but I want you to all be muted because I can't hear you all at the same time. Okay, say Hola. Okay, now Daniel, you unmute and say Hola. Daniel, Daniel, the button. Yeah, honey, the button to unmute. There you go.” It took an entire class to get every student to say Hola and it was not going to go well that year.
In the computer science class, most of the time it was okay because it was lab time once they’ve got a concept of just sitting and thinking in front of a computer. In some ways, it was even easier because they can share their screen with me and stuff like that. But there's one topic that I love to teach. It's like I love to teach recursion to the high schoolers because the high school age, you teach them recursion and when they get it, it's like I taught them one of the secrets of the universe.
Normally, in the classroom, I see their faces light up and their eyes were like I've made the connection. They've understood it. At least they understand it in the minute. I'm sure you've all been there where you understand something and then tomorrow, it's a dim memory and you have to grasp for it again. But they understood it in the moment and remotely, I could not make that decision, or make that connection. I walked out of my office and went in to see my wife in her office across the house and I was just like dejected. I was like, “That was the worst teaching experience I ever had,” because I covered the material, but I had no connection with anybody. I could've just been doing it to a blank screen.
My county did not force students to have their cameras on, which is probably a good thing. But at the same time, very few students had their cameras on. So there were very few faces to make that connection to as you're talking. So oftentimes, I was just speaking to a blank screen and a microphone; I could have been singing in the shower for all I knew. There was no connection.
CHELSEA: Wow.
CASEY: Yeah. It's unnerving. I've been teaching online this year, too and when everyone's camera's off, it is unnerving.
DAVE: Yeah.
CASEY: I feel like I'm literally talking to myself. But often, I'll ask people to turn the video camera on and when I ask people to even give me visual feedback, even one person can completely transform my experience.
DAVE: Oh, right.
CASEY: Well, just one person. But I don't know that I do that with kids. I feel like you're stuck where you are.
DAVE: Right. Especially there's – not that any of that's happened in my county, but there are situations where students have been disciplined for posters they have up in their bedroom and stuff like that because it was now a school event. So I understand why as a high school student, I wouldn't want the school intruding into my personal space like that.
One good thing to come out of the remoteness of the pandemic. In Loudoun, we went to virtual very suddenly towards the end of the year before last. So the last few months of school was all remote and we weren't expecting to do that. It was one day, “Okay, we're going out on break,” and then all of a sudden, “No, you're not going back.” So students picked their classes for the next school year remotely and our percentage of women in the class went up and there's no real, like I haven't heard anybody doing studies on that.
At the Computer Science Teachers Association, there was anecdotal evidence that that was true across counties everywhere and the general thinking is that students pick their classes without that peer pressure of people being like, “Ooh, you're going to take that?” So the percentage of women taking computer science classes in high school went up.
And that's always been a mystery to me because we do events at the elementary school level and boys and girls are equally good and equally interested up until 5th grade, which is the end of elementary school. Then I see students again in the middle school when I do events in 7th grade and we already have that 70/30 split. It's like, where are all those girls that a couple of years ago really loved this stuff. They're just all kinds of weird peer pressure and there's no one cause that I can contribute to it. But then by the high school, where on bad years, were down to 20% women in a class. This year, we're up to 33, which is better than normal, but we can still do a lot.
CHELSEA: I wonder whether some of it would have also had to do with somebody’s experience in the class. So if you're taking a class remotely, you're not in this class surrounded by potentially people you don't know, people that you're not spending a lot of time with, people that you're not friends with. That's the kind of thing that I think would really influence the way that a middle schooler would select classes.
DAVE: Yeah.
CHELSEA: I remember being at that age and wanting to be in the classes that my friends were in.
DAVE: Right. Yeah. In fact, I have students that I've talked to, there's a little bit of perception there that that's the geeky subject, I don't want to take that, or girls are more academically interested earlier than boys are. So they want to start language classes a year earlier because that's a requirement and statistics bear that out. This is an optional extracurricular class and so, they're all kinds of reasons. There's no one root because that I can point to and say, “That's the thing we need to fix.”
MAE: Well, with the academic orientation, it's funny that you brought that up because when you described that about the online trend, I was like, “Well, I mean, people are.” It's pretty clear that having these skills will position you better and that is something that girls tend to be pretty attuned to. If we're talking in terms of a gender binary and if we're talking in terms of [laughs] total platitudes about gender stuff.
CASEY: I had some peers in undergrad who were really gatekeeping me as a developer. I had done some community college classes in high school. I was a total nerd. My parents supported me in doing it. It was great. I knew programming, but in freshman year, people said, “Are you a programmer? Here, I know how to tell if you are a programmer. What's recursion?” And I don't know, somehow, I was like, I got it already. I knew recursion years ago.
DAVE: Right.
CASEY: I was like, “I don't know how to answer this question.” So I clearly wasn't a programmer until I could prove I knew of recursion to this undergrad boy that was trying to gatekeep me out of it. Any amount of pressure like that, even if it's more subtle, to the women I imagine is even stronger.
DAVE: Yeah, and the gatekeeping thing is weird. The first year I was teaching, I saw a boy in one of the classes say to a girl that oh, I think it's cute that a girl is learning how to code and she beamed like it was a compliment. And I realized this is going to be tougher to figure out than I originally thought, because this mixes up in the high school dynamic of who has a crush on who and who wants a compliment from whom. At the time it happened, I sat there and just didn't know how to respond to it and since then, whenever I've seen something like that happen again, I actually have a little bit prepared where I'm like, “Well, actually the first computer programmers were women.” And I have a whole little keynote presentation ready to go that has – [overtalk]
MAE: Yes!
DAVE: Pictures of women in front of ENIACs switching the wires around and Grace Hopper is there in her admiral’s uniform and a whole little thing to talk about how this was originally seen as programming was kind of that secretarial pool, the original world of computers. But when computers were people and the computers were just a step above the secretarial typist pool and that as people figured out oh, actually this is kind of interesting, kind of like guys dominated. And how they kind of attribute that in the 80s as video games became popular and first-person shooters ruled the world, that computers became the toy that was in the boy's bedroom, not the girl's bedroom and that's where a lot of our gender bias today can come from. So I try to make them aware of that.
It's funny, I originally took the opportunity to volunteer in high school as a completely selfish reason to see what high school peer pressure was going to be like for my own kids these days. Because I grew up when breakfast club was a reality. My high school was clique upon clique and it's almost encouraging that that doesn't seem to exist as much today. There's, I think a lot more acceptance than I see in the high school.
CHELSEA: That’s interesting to hear. I wouldn't have… My experience of high school was very similar to your experience of high school and not only was it my experience, but it's also what I have seen reflected in—I'm not particularly partial to movies, or television that focus on high schoolers, but any movies, or television that I have seen that is focused on the high school age, or even the middle school age, that has essentially been the expectation for what it is like for students to be in school.
DAVE: Now I have to admit the students that I'm largely exposed to are a special group in that our first-year computer science, the intro class is a completely voluntary thing. It's not a requirement. And then the AP class is a volunteer thing again, an extracurricular, or not an extracurricular, but an elective.
CASEY: Elective.
DAVE: Yeah. So they're opting in twice. If they get involved in anything I'm doing extracurricularly with the competitions, or the events that I hold at my local library, they're opting in a third time. So those students are a rare group and they seem to be much more accepting of each other. I can't say that that's true in your typical English class for instance, but I do have geeks, jocks, nerds, everybody all in one room and they get along.
MAE: While we're on the topic of computer science education. Upcoming is the Computer Science Education Week, Dave and I understand you have a bit to tell us about.
DAVE: Yeah, this is how I actually got involved in this whole thing. I mentioned that I was volunteering at my son's elementary school and the first year I was just as overly enthusiastic parent who was kind of disappointed that they had a computer lab, but they only seem to teach 20th century office worker skills. I volunteered to try to teach something and “Well, we can install stuff on the computers. We don't have any curriculum.”
Well, the next year was the first annual Computer Science Education Week and there was this curriculum called the Hour of Code. The goal was to get every student in the country to have one hour of computer programming experience. I mentioned that to the technology resource teacher and she helped me get the principal involved in it and we ran the Computer Science Education Week with all the 3rd, 4th and 5th graders at the elementary school.
And then that got me involved at volunteering at the high school level and since then, we have been having our high school students every year go back to elementary schools and help teach the Computer Science Education Week. So we have high schoolers going back to the elementary schools that they went to helping their old teachers teach computer science. And – [overtalk]
MAE: Oh, I love that!
DAVE: It's amazing how much they accomplish in an hour. If you go take a look at code.org, or cseducationweek.org, or even hourofcode.org, there are lessons that take about an hour and need nothing more than a browser. My favorite is the one from the first year that just uses the game characters from Angry Birds and Plants vs. Zombies and you have to write a computer program that tells a zombie how to get through the maze to a flower.
So it starts out, you have to tell the zombie to move forward, and then move forward and turn right, and then move forward and if the path in front of you is blocked, turn left. Oh, but if the path to your left is blocked, turn right. And there's this whole – steps you through the algorithm to solve a maze and at the end of the class, you tell the students that just doesn't solve that maze, that can solve any maze and it blows their mind.
[laughter]
The schools are always looking for volunteers to help teach that stuff. So consider this a call to action for the audience, reach out to a local elementary school, a local middle school, even a high school, find the math teacher, or whatever teacher that's teaching some coding aspects, find out if they're doing an Hour of Code event, and volunteer to help. Because it is almost a stereotype that elementary school teachers walk into the classroom and are like, “Oh, don't ask me to program. I don't know anything about programming. I can't even figure out how to use the printer.”
That's not a great mindset to be teaching our elementary school kids because they eat this material up. They think it's fun. Let's get them encouraged with it. So I've been using other students to do that for years and it's to great success. I now have students that are arriving at the high school looking forward to this event because they remember it from when they were elementary school students.
CHELSEA: That's cool.
MAE: Yeah. I love that. I've done an Hour of Code before. We did a Scratch thing, but it was Star Wars themed.
DAVE: Yeah, I remember that one.
MAE: I wore my hair in buns. It was really fun.
DAVE: Yeah. The great thing is over the years, they've built out more and more curriculum. The problem with the first year is that advanced, like 5th and 6th graders, especially by the time they'd done it a couple of years, they were bored with it. Like, “We've done this before.” Oh, I have a great story about that I'll get to in a second. But then the 1st and 2nd graders would come and number one, sometimes they had trouble reading it. Number two, it's only at the end of the 2nd-grade year that they have the concept of they're looking top down on this screen, but they can't see it from the zombie’s eyes where the zombie has to move forward and then turn left and then move forward.
So the Star Wars curriculum has BB-8 that can move up, down, left, or right. So they take away the having to see it through the zombie’s eyes.
MAE: Right, yeah.
DAVE: And then at the kindergarten, 1st grade level, they have it with just up, down, left, and right arrows so you drag the arrows out. So now they don't even have to read. But then at the 5th-grade level, they have one based on Frozen where you're ice skating and you can do angles like 45 degrees, 30 degrees, 90 degrees. So there's a lot more motion available in that and almost spirograph like effects. So there's something for everybody there. It's just fantastic. It's stuff that's geared towards educational level, stuff that's geared towards gender, just all kinds of material there. You could almost get a computer science education for free off of code.org.
So I mentioned that I have two great stories about teaching 5th graders. The first year we did the Hour of Code when they complete the lesson, they can hit Show Code and it shows them the JavaScript code that would do what they just did in terms of move forward, turn left, all that stuff.
Well, I showed them the code I'd written for a game that played Connect 4. So we played Connect 4, I let the computer beat the whole class, and then I showed them the code. I was like, “Look, there's a lot more of it, but it's the same stuff you were just writing,” and we broke it down into one little and I showed them how six lines of code work and I said, “All the computer's doing is it looks –” there's only seven possible moves in Connect 4. So it looks at all possible seven moves and imagines what if it happened? Well, after that move, there's seven possible moves. So there's only 49 possible moves at that level. After that, there is only so many other moves and we keep – and I said, “So the computers just look seven moves ahead, sees who wins and loses, and decides I'm going to go that way down this whole tree.” And this 5th-grade girl said, “Oh, so computers aren't smart. They're just dumb really, really fast.”
MAE: Oh my gosh. I love that.
DAVE: And that quote, I use that quote all the time.
And then I had another student who came in a few years later and she was like, “I'm getting tired of this. I don't want to drag the buttons. I want to type the code like the big kids do.” So with one of the high school students in another one of the Hour of Code lessons, she was typing out JavaScript and we got a when she had to do move forward, move forward, move forward, she was like, “There should be an easier way to do this.” So she just tried writing “move forward” and in the empty parentheses she put the number 3 and it worked. She was like, “Awesome.” So. [chuckles]
MAE: Yes!
DAVE: And it's just great to see students like that that you're encouraging them to push the boundaries without fear.
CHELSEA: Well, and kudos to the developer who wrote the API that had move forward where you could put 3 in it.
DAVE: Right.
[laughter]
CHELSEA: I wish I had experience doing any – honestly, AWS integration anything.
[laughter]
If it were intuitive, I would cry with joy.
[laughter]
So at the level that I – I teach Masters students and at that point, I don't have as many fun things for them to program, but I make them program things like they write a testing framework, they modify a testing framework that I've written, and then they do a similar thing for a data analysis framework similar to pandas if you use Python, or something like that.
But the goal is very much what you were describing earlier with showing folks that Connect 4 code insofar as that I want them to understand that the libraries that they're using on a day-to-day basis aren't magic. There's not something happening in there that the fundamental concept would be unfamiliar to them if they were to hear about it. It's effectively maybe more complex and maybe more fiddly versions of things that they are writing and at some level, there's sort of this Pareto principle thing going on, where you can get 80% of the functionality of a lot of APIs with 20% of the code. Provided you're willing to make some assumptions, like people know how to use it and they're not going to put it in the wrong thing, and that kind of thing.
DAVE: Right.
CHELSEA: When you're introducing, like trying to make helpful error messages, that's way more code in most of these things than the happy path implementation is. So it's cool to see them implement those things and start to realize that a lot of the code that they use on a day-to-day basis, at least from the happy path perspective is not different from what they write themselves.
DAVE: Right.
CHELSEA: So you mentioned that you teach 1st and 2nd graders, 5th graders, 7th graders. Did I get that right?
DAVE: I've had done some stuff at the middle school and let me tell you, the middle school, my favorite thing to do there is to walk in as a guest lecturer with several teachers that I know. Because when you walk in for the class—and I tend to bring in wooden puzzles, or little encryption toys and stuff like that and I bring them in in this little suitcase that looks like the suitcase that guy in the Harry Potter movies that the animal pops out of? You walk into a classroom with something that looks like that and you have everybody's attention like the students are silent, waiting for you to open that thing and see what's in it. And teachers are always like, “I can't believe how attentive they were for you.”
But I can say that several years ago, pre-COVID, I ran a afterschool robotics club for middle school and where once a week we would spend an hour and a half building out this robot with the VEX Robotics team stuff. That was a little hard having to work with the same group of kids regularly on an afterschool extracurricular thing because there were several students who were there because they knew they loved robotics and you see them a few years later at the high school doing stuff with the robotics club. There were kids that were there because their mom can't pick them up until 4:30 and “You're going to do something after school that looks educational, you're going to do that and they didn't want to be there.”
The other coach and I are not formal teachers in the county. We're there as volunteer coaches. So these students. I don't know if they instinctually know that, or what, but there are disruptive students. That like 7th grade age where they're like, eh just so I've gotten to this point where like, if it's any long committal thing like that I have fun with them until 5th grade and then I'm like, “I'll see y'all in high school. You'll go have – I have some stuff to work out.”
[laughter]
But I do like to volunteer as a guest teacher in the classroom maybe four times a year with teachers that I know. That way you have a good rapport with the students. They remember you from elementary school. They're going to be happy to see you when they get the high school. Anyway, that's what my experience at the middle school levels become.
CASEY: Very cool. If someone listening wants to guest lecture at a school, what could that look like for them? If they call the front desk at the elementary school, who are they going to talk to, and then who, and how do they meet them?
DAVE: I have the best results reaching out to the teacher that I know is teaching the curriculum. And if you go to your school's website, there is probably going to be a list of all the faculty at the school and the subjects teach. Computer science topics are generally under the math curriculum. If you can't find exactly who's teaching it, talk to the department head, and they'll put you in touch with who's teaching it. Because that teacher is going to be the one that can say, “I have exactly the thing I can use you for.” The further I go up that chain, the harder it is as an entry point. But if you start grassroots, you can move up that chain.
So the whole reason I'm at the high school is that the first year I did this at the elementary level, we got some local press for it and the elementary school principal was like, “This is fantastic.” And then that high school principal was like, “I want to know more about that.” So that's how that happened, but I always have the best success just reaching out to a teacher and saying, “Hey, I have some stuff prepared. I'd love to volunteer as a guest in your classroom.”
It's even branched out from math teachers. I have a curriculum on computers in World War II that I did at the middle school level, when they were learning about World War II. My sons, who are now in 9th grade, I've talked to one of their world history teachers about talking about the development of math from a historical perspective. Like, I don't know if you've read the book, Zero: The Biography of a Dangerous Idea.
MAE: No.
DAVE: But that, oh, fantastic book. It's called Zero: The Biography of a Dangerous Idea and it's about the history of where the number zero comes from.
MAE: I have heard some of this, but I wasn't familiar with the book. Yeah.
DAVE: Yeah, because zero's kind of a contentious topic.
MAE: Yeah.
DAVE: Because counting is a natural thing when I'm counting my sheep in my farm. I have 5 sheep. I have 6 sheep. Oh, I'm giving you 2 sheep. You can almost even end up with negative numbers making sense because I gave you 3 sheep kind of thing. So you can – it's kind of weird that I have negative 3 sheep, but you owe me 3 sheep. Somebody can understand, but I have 0 sheep. Well, I also have 0 pigs. Why does that matter? So it was like a huge philosophical debate: is 0 a number we need to consider in math?
When 0 was introduced to cultures that used something like a Roman numeral based counting system, it didn't make sense. You think about counting in Roman numerals, you have the number 5. What do you do to make 6? You put a 1 in front of it, or a 1 after it. You put a 1 before it to make 4. Well, so if I have the number 5 and I put a 0 in front of it. 0 means nothing. But now you're telling me it's ten times as much. It's 50. What? But I put as 0 in front of it! So it didn't make a lot of sense to people where that was their mindset and it was a big cultural shift. And that book goes into that.
MAE: I must have talked to someone about this book because it was sheep examples and it was something also about that before numbers, people would take rocks and when the sheep went out, they would put a rock for each one and when the sheep came back in, they would then move that pile of rocks. So even – anyway, sheep counting [laughs] is a lot of base math apparently.
DAVE: [laughs] Right, right. So, and I have two great examples that I'm dying to use with this world history teacher who's currently on subjects of Mesopotamia and stuff. There is an artifact that is in this collection and it's labeled as Plimpton 322. This is a clay tablet that has numbers in, I can't remember the counting system, but it's based on a stick pressed into the tablet and the orientation of the stick represents what the number is.
After decoding this tablet, they realized that contains a bunch of Pythagorean triples, which if you remember the Pythagorean theorem, 3, 4, and 5 are a Pythagorean triple. So it's basically any three integers that can be the sides of a triangle. This tablet contains a bunch of Pythagorean triplets 1,500 years before Pythagoras was around and this is in Mesopotamia. That's like, where did that knowledge come from? That's just amazing that such a thing exists. So I have a bunch of references like that I'm using with this curriculum I'm working up to present to a world history class.
MAE: Love it.
CHELSEA: That seems like a great opportunity to drive home the idea that a lot of the things that we attribute to a singular person having invented, or discovered it, it probably wasn't necessarily that way. Even in the cases where we attribute one person, it was often a collaborative effort and even in the cases where we're attributing that one collaborative effort, a lot of ideas sort of materialize in several different places around the same time period.
DAVE: Right.
MAE: I know, it's so cool.
DAVE: You think Newton and Leibniz both came up with calculus at the same time, apparently pretty independently, but it's because the world was ready for such a thing to exist. We had all the foundational knowledge in place.
CASEY: I was just in Cancun last week for a wedding, which was really nice, and then we went on a trip. The Mayans apparently had zero and they represented it with an empty shell.
[chuckles]
MAE: Ah.
CASEY: Oh, this is a theme for me lately. Zero.
[laughter]
DAVE: Let me tell you something. It sounds like it would be a dry, boring book, but Zero: The Biography of a Dangerous Idea is definitely worth the read.
CHELSEA: I mean, and now we're back to the point in programming where people don't want to have Nolan programs, so.
DAVE: Right.
[laughter]
CHELSEA: There might be something to this we really need zero idea?
DAVE: Well, then there's the whole debate around imaginary numbers. That's a whole interesting branch of mathematics as well.
CASEY: This reminds me of a line I almost said earlier where, when you're learning programming, you go from caring about programming for the computer’s sake, like algorithmic efficiency, and then on the next level of complexity is programming for people who are way more complex. The developers developing after you, maybe you, and the people you're developing for. They're differently complex, but practically, in all the jobs I've worked in, the algorithmic complexity is not the most complex one that takes the most time, it’s the hardest for problems space for it.
DAVE: That's one of the things that I tell students about when they're learning Java and they ask me about other programming languages like, “Well, why do other programming languages exist?” And I say, “Well, it's not so much for the computer because the computer will run any old thing we tell it to.” The different languages exist because it's how humans use to express thoughts and – [overtalk]
CHELSEA: That's right.
DAVE: Often where it's documentation for other humans.
CHELSEA: People want to express their perspective and if their perspective differs from a programming language that they see out there, they write their own.
DAVE: Right.
MAE: [laughs] I explain programming to non-programmers often as, or in describing coming into the industry, I thought it was going to be way more math like and really, I found it to be creative writing. A lot of people think that other people's code is bad because it's not how their brain works, or how they would've arranged it. And so, it is this thing about, is your brain most like the other brains, or are you able to predict what the other brains will want you to have said. [laughs].
DAVE: Right.
CHELSEA: Right. And we end up spending a lot of time reformatting code over things like that.
MAE: Yeah.
CHELSEA: So I give this workshop it's about technical debt and what technical debt action is and what that term means because folks, everyone sort of knows what technical debt feels like, but then the way that we end up conceptualizing it is a little bit different to that.
One of the things that happens a lot of times, if you give people a free week to refactor and reduce tech debt in the code base, what you get is a fair number of code renovations where what happened was somebody didn't like the way somebody else wrote it so they wrote it their way. Right now, it does the same thing and right now, the maintenance load is the same as it was before. Best case scenario, it's the same as it was before. Worst case scenario, you erased a bunch of context the team had about the way it worked.
The fundamental difference is a preferential one, rather in a functional one, rather than a documentation one, or a context one and it is shockingly easy to fall victim to that. It is extremely easy to feel like you are reducing the maintenance load in the code base when you're not because your personal perspective aligns by better with the way you're trying to write it than the way the code is aligned at that time.
MAE: Yeah.
DAVE: Yeah. I have students that in the first few weeks of programming get really frustrated learning to program, learning their syntax is wrong, their semicolons in the wrong place and they blame themselves. I'm like, “Don't. This isn't you; the computer is the stupid one in this relationship. You have to be smart for both of you.” And it's kind of like writing poetry for an obsessive-compulsive English teacher who is expecting where every semicolon has to be in the right place.
MAE: [laughs] Oh. And to go back a moment, though, I do want to put in a plug because Chelsea recently can that workshop at RubyConf and when that comes out and is available, definitely check it out.
DAVE: Excellent.
CHELSEA: Oh yeah, I did. If you have a RubyConf ticket, by the way that recording is available as of today.
MAE: Ooh.
CHELSEA: Yeah. It'll be on YouTube at some point too. But I had a teacher who expressed a very similar thing that you did, Dave insofar is that if we were having trouble getting something, he was very, very quick and he said that he did this in his programming job as well. He would blame the UI typically and I find myself doing that a lot. In particular, when it comes to ops type stuff. [chuckles] if I'm messing with ops, I'm like, “It's not my fault that I don't understand why this dropdown only has one item in it,” and stuff like that.
It's funny that you – and I'll bring this back as well that you mentioned earlier elementary school teachers talking about how like, “Well, I can't be expected to know anything about code. I can barely operate the printer.” When you said that, I thought to myself, “I mean, I'm a professional software engineer and there are days that I can't operate that printer.”
DAVE: Yeah. That's a hardware problem. I'm a software – [ianudble 56:27]
CHELSEA: I know.
[laughter]
Like, I'm a mechanic, that don't mean I'm a good driver and it certainly doesn't mean that I can read the mind of a designer who I never met, who released something 20 years ago that now sits in a break room somewhere. I think it’s very different skillsets.
CASEY: And that designer probably didn't think it was great either; they had constraints.
MAE: Right. Totally.
CASEY: But there are people who will defend the design. Maybe they don't see the fuller picture here.
MAE: They didn't take Dave Bock's lesson of how to not get too attached to an idea.
CASEY: Ah! Love it.
CHELSEA: Actually, I did need to ask you that about that, Dave because you mentioned you teach a number of different age groups, you do a number of different guest lectures. You go and you volunteer at the local library. I imagine that for a lot of our listeners would love to be able to give back to their communities in addition to their full-time job. But like you, they got kids, they got things going on and there's logistical challenges associated with that.
I'm interested in hearing a little bit about how you manage maybe your time, but in my experience, limiting ingredient is really more energy than it is time. So I'm curious to as to how you approach that.
DAVE: Wow. It's not like I have more time in my day than anybody else. I just – [overtalk]
MAE: Especially with triplets.
DAVE: Right. It's just how I manage it. If anything, because of the triplets, I'm used to having to have a higher energy level. But first of all, for years, I didn't watch television at all. Not a single thing on TV at all. Like I missed probably a decade of cultural awareness and movies and everything. First of all, because I had kids, but also because I was volunteering in the classroom and that kind of stuff.
But I have to say that the curriculum that I'm building with my students, that effort back every year. Every year, I'm like, “Oh, you know what, that's a neat little puzzle. I tend to do stuff with a lot of little wooden puzzles and I'll be like, “Oh, that's a neat puzzle. I'm going to add that to the curriculum,” and “Oh, that's just like that puzzle.”
So I mentioned earlier, the 26 puzzle and the Aristotle’s Number puzzle, those are two puzzles I saw at completely different times, but similar gimmick, different scales. By the same token, if you've ever seen the Cracker Barrel triangle peg jumping thing.
MAE: Oh yeah.
DAVE: The peg solitaire. Well, that also exists in what they call English solitaire, which is marbles on a board and there's about 33 marbles doing the same thing, like a cross arrangement. Again, similar jumping mechanic, completely different size space problem. So I keep finding puzzles like that in pairs. I found a bunch of board games that are like this and each one illustrates some concept along computational thinking and every year, I have a fresh crop of new students so every time I add a puzzle to it, it just keeps glomming onto the complete set of curriculum I've developed. So it's not like I've spent tons of time developing this curriculum. I've spent a little bit of time over 8 years building it out and it's evergreen because there are always more students to learn.
So how do I manage my time? I could not tell you that I have any secret sauce. I can tell you that prior to COVID, since about 2007, I have been working remotely on and off and not having a commute really gave me time, back in my day, to do stuff. The job I have now, they treasure the time that I spend in the classroom.
In fact, my last several jobs have really supported me in this in the fact that I work from home, I'm 5 minutes from my high school, I can schedule a class on my calendar and it's just like a meeting. I can disappear for an hour and come back and it's just like I had a meeting in the middle of my day with anybody. So it really gives me that flexibility to volunteer at the school. In fact, for a year and a half, I had an hour and a half commute on a good day and for that year and a half, I was not in the school nearly as much because I couldn't get to it.
So I think being able to work remotely is a big draw of my time. Not spending time parked in front of the TV, which admittedly has changed. I found a few guilty pleasures in television shows lately.
CHELSEA: Ooh, what are you watching?
MAE: Yes!
DAVE: Oh my God. I am late to Ted Lasso.
MAE: I haven't seen yet!
[laughter]
CHELSEA: What!
[laughter]
MAE: Why have you not seen?!
DAVE: Oh, oh God. I’ve got to tell you. I'm not going to spoil anything because I want everybody to watch this show.
A friend of mine was raving about this show in terms of its postmodernism and he's off on a tangent describing that he predicted a show of this kind of non-ironic sentimentality and virtue ethics years ago because of the way the society was going.
When I first heard about this show, I was like, “Let me get this straight, a show about an overly positive, self-righteous character that is a soccer coach? Okay, I'm not a sports guy so I don't care about soccer and everything I've seen and heard about this guy, it sounds like it's Ned Flanders from the Simpsons. Why am I going to watch a show where Ned Flanders is the main character of that show?”
[laughter]
So I was dead set against a show forever and then somebody said to me—I was at a gathering of a bunch of friends recently and he said to me— “You're absolutely right. You need to watch it anyway.” So then I don't know, a month, or so ago, my wife and I were watching something. We were dead tired after a long day, sitting down for dinner. She wanted to watch something on TV and we were like, “Well, we could start the Foundation series. or we could watch the Dune movie,” and we're like, “No, both are too heavy to get into now.”
And Apple TV showed us a big flag thing for Ted Lasso and I was like, “Sure, I'll watch it right now. I don't feel like watching anything and I won't get committed to it.” 15 minutes into it, I'm watching it and I'm thinking, “Yeah, this isn't for me. Yeah, this is not the show I want to watch.” And then there was a line. I'm going to say the line—it doesn't give anything away. But this Ned Flander's type, after making somebody angry with his at first what comes across is toxic positivity turns to somebody else and says, “Wow. If he thinks he hates us now wait till we win him over?” And that line kind of touched me, like he's not just some random one-dimensional Saturday Night Live character failing up; he's doing this with intent and this is a decision to be this way.
MAE: Mm.
DAVE: And all of a sudden, the character had all this depth and with that one line I was hooked. And then in another episode, he was talking about his role as coach and a reporter was interviewing him—another one liner that doesn't give anything away. A reporter was interviewing him about the loss of a soccer game and he says, “I don't care if my team win wins, or loses,” and the reporter thought that was incredulous. He's like, “You don't care if they win, or lose?” And he's like, “It's not my job to care if they win, or lose. It's their job as the players to win, or lose. It's my job to make them the best players, the best people that they can beat today,” and I was like, “Wow.”
The show revolves around this character who is just an upstanding human being at every point, unironically, and how he influences the lives around him and influences them just through his existence to be better people and how all this chaos around him and they all become aligned. It's just such an awesome show. I really recommend it.
When we watch a TV show, my wife and I have a commitment that we don't binge watch it. I hate binge watching a show because later on I'm like, “Oh, I don't remember that thing.” So we're watching one episode night, or two and it gives me the space to think about that episode and it's just such a rich, rich thing to think about it. It's really something that makes you think about your philosophy of life.
CASEY: Oh, maybe I have to watch this now, don’t I?
MAE: I know! That’s how I feel. [laughs]
CASEY: It also sounds like – [overtalk]
DAVE: Sometime when you're brain dead and don't feel like watching anything, give the first episode a shot.
CHELSEA: Yes.
DAVE: Let me know what happens.
CASEY: It also sounds like the first contemporary male role model I might like.
CHELSEA: Oh, totally.
CASEY: My favorites for me are Dick Van Dyke, Bill Nye the science guy, Weird Al, and a lot of people from Star Trek, but there's none in the last 10 years. No one I can name who in media has been a good, positive male role model other than Ted Lasso, apparently.
DAVE: I really think you'll like this character. I can't imagine who wouldn't. You would have to be the most cynical puppy kicker to hate the show.
MAE: I definitely want to watch it. As someone that can be taken as a Pollyanna person about other people's lives [chuckles] and not my own, I have chosen a lot of things about being positive and honest, and it can get lost and be seen as naïve. So I really like what you've described.
I get extra positive by looking at the negative, like I can hold contradictions and human foibles and failures really, really well. So that doesn't make me now not want to deal with that person. So yeah, I'll be curious to see what Ted Lasso has to say about all kinds of things.
DAVE: Yeah, definitely recommend that show. This'll date me when I talk about how I haven't watched TV for a decade. The last characters that I felt this kind of passion about and they were the antiheroes was the – God, I can't remember the character's name now. But it was on the TV show, The Shield, which was basically a bunch of cops as antiheroes about how they had come to terms with, they could not just be forces of good in the world at sometimes they had to be the force of least evil and the mechanism that they had to do that and they were at times, real antiheroes.
Then the early days, I only watched the first two seasons of Dexter, the serial murderer with code. So real antihero kind of TV shows. I just have not watched a lot of TV and then to land on Ted Lasso is such a breath of fresh air. I can see why, especially during the height of the pandemic, that show resonated with a lot of people.
MAE: Oh my gosh. I have so many things to say to [chuckles] what you just said about the being least evil and a lot. Also Chelsea, you brought this up about how many things happen through – [overtalk]
DAVE: Vic Mackey. That's the name of the cop, Vic Mackey.
MAE: Oh, cool, cool, cool.
DAVE: Sorry.
MAE: No, no.
[laughter]
How many people contribute to whatever it is and a lot of the vexing problems, like the pharmaceutical industry, it gets really complicated when you start to see there is no one lever and a lot of people do feel, in those positions, that they are being the least evil.
So many more topics, but we might be closer to the end of our session. I don't know if anybody else has any other zingers they want to put in before we do our reflections?
CASEY: Yeah. I think we're out of zingers for now.
[laughter]
We could come up with more.
All right, let's do reflections.
I happened to have one already, I can go first. Usually, I take a second to think of one. From earlier in the episode, I noticed a couple examples we had about how do you motivate students to learn about algorithmic efficiency and we had two examples.
One is Chelsea has mobile apps need the faster algorithms and that makes sense. [laughs] If I knew mobile app development enough to teach it, I think I would start there, too. And then Dave had the great algorithm, like a simple wooden puzzle and then a complex wooden puzzle, and then moment in the middle where you pause, they're trying to run the simple naïve algorithm. That's so motivating. Help them feel the problem in the mobile app sense, help them see how slowly it would load before you make it refactored.
In my background in education, computer science, it was definitely algorithms first and I was always like, “Why, though?”
[laughter]
No one answered that at any point, really. [laughs] I was never that motivated to learn algorithms and I still didn't study them, but I might in these situations.
MAE: I have participated in Hour of Code and I did call my local school, but it kind of fell through and so, I really appreciate just getting reminded about coming more involved in my community. So thanks for bringing that, Dave.
CHELSEA: For my reflection, I tend to have a strong recency bias right after I'm thinking about things and so, the thing that I'm remembering the most right now is our discussion of the television shows.
But what I think I'll take away from that is the comment from your friend, Dave, around having predicted that something like this would have its time, which reminds me of our discussion earlier in the conversation about the world being ready for something being a larger factor in when something gets developed than a fictitious individual progenitor of that thing, the way that calculus was.
I find myself wondering right now, what in our field, in programming, in tech in general, what is the industry, is the world, are the people that we serve, what are they ready for that I expect will see not because some genius comes along, but because that's what our field needs and I don't know what it is, but I'll be thinking about that.
DAVE: Ooh. Wow, that's real food for thought there.
MAE: Mm hm.
CHELSEA: I try, I try.
DAVE: That's kind of like – [overtalk]
MAE: I knew Chelsea’s was going to be really good, which is why I went first. [laughs]
CHELSEA: Oh gosh.
DAVE: That's kind of the William Gibson quote of “The future is here—it's just not widely distributed yet.” I used that in another curriculum we'll talk about someday.
CASEY: I hope the answer to that is inclusion because that's a big thing – [overtalk]
MAE: Yes!
CASEY: And it's not being applied nearly enough.
DAVE: Yeah.
MAE: Totally.
CASEY: I hope that's what we get next. That's the next upgrade I'm looking for in teamwork OS, whatever.
DAVE: So I can tell you that I've been at the Computer Science Teachers Association conference the last 2 years that it's been virtual and inclusion is a big topic there, even dominating discussion about pedagogy and teaching algorithms. People are talking more about how do we increase representation in the classroom.
So my takeaway—and I actually did not realize it until the last second when Chelsea mentioned what I said was my superpower at the beginning was me sitting here talking about Ted Lasso is exactly an example of that. Because I was committed that I was not going to be interested in a show with Ned Flanders as a character and now here I am saying, “Everybody needs to watch this.” So that's a little example of I'm not wedded to that evaluation and I revisited it and moved on.
But before she said that, the thing I was considering about my takeaway is how much even after a long, tiring day at work when I'm sitting here thinking, “Oh, okay, now I have to do this interview. It's going to be an hour and a half and then I can take a break.” Whenever I talk about this stuff, it is invigorating and revitalizing. I am just so passionate about this stuff that it gives me so much energy. It recharges me. So I'm going to try to take that point in some useful direction.
CASEY: I want to comment on that last thing you said. I was thinking earlier, what gives you energy so you can volunteer more, Dave Bock? And then your answer was kind of volunteering gives you energy.
MAE: Mm hm.
CASEY: You didn't quite say that, but that's what I picked up from it. So anyone who wants to get the enough energy to volunteer may be powering through and just getting started and trying it once could be enough to get you started and if it energizes you in the end anyway. It might not. You could try it, though.
DAVE: Yeah. I never expected it to be this kind of fuel. I’ll have one last parting thought on that in that when I hold events at the library, it's often without any real agenda, except, “The end of the semester's coming up, come to the library and I'll help you with our end of the semester projects, or even if you just want to explore something else, I'll be there, to” – I'll have students that come with random ideas and we just sit there and just my presence can give them the encouragement to do something they'll be like, “I don't know, let's do that together.”
I can get so involved in an interesting problem that I can forget I'm working with a high school student and not some relatively new graduate peer of mine at work and I just begin to see a problem with beginner’s eyes. That is very invigorating. Maybe I’m a vampire stealing energy from our youth, I don’t know. [laughs]
CASEY: They’ll got plenty; they’ll share.
MAE: Yeah, yeah.
Special Guest: Dave Bock.
Sponsored By:
- Test Double: Software is broken, but it can be fixed. Test Double’s superpower is improving how the world builds software by building *both* great software and great teams. And you can help! Test Double is hiring empathetic senior software engineers and DevOps engineers. We work in Ruby, JavaScript, Elixir and a lot more. Test Double trusts developers with autonomy and flexibility at a remote, 100% employee-owned software consulting agency. Looking for more challenges? Enjoy lots of variety while working with the best teams in tech as a developer consultant at Test Double. Find out more and check out remote openings at link.testdouble.com/greater.