#278: Teach kids Python with real programming and fun games at Code Combat Transcript
00:00 If there's one message I've been pushing across all of the top Python episodes, it's that programming is a superpower. Rather than all of us abandoning what we're interested in and becoming CS majors, we can take our passion or our expertise, and 10 exit with a little programming skill. In that case, we should be teaching kids fluency in programming at a younger age. And yet, almost every platform or example meant to do so pulls its punches. We teach kids programming concepts, but not code itself. We use these blocks because text based programming, that's a bridge too far, but it's not. And that's why I'm excited about code combat. It's an online coding platform that uses real Python syntax to guide your hero visually through a dungeon full of challenges. Yet the editor and customize error messages means this is approachable for kids before they can even reliably type. On this episode, you'll meet Nick winter, one of the co founders of code combat. There's a lot of philosophy behind the tool and technology to make it kid friendly and real Python at the same time. Oh, and it's running Python in the browser. This is taught by thermae Episode 278, recorded July 19 2020.
01:20 Welcome to talk Python to me, a weekly podcast on Python, the language, the libraries, the ecosystem, and the personalities. This is your host, Michael Kennedy. Follow me on Twitter, where I'm at m Kennedy. Keep up with the show and listen to past episodes at talk python.fm and follow the show on Twitter via at talk Python. This episode is brought to you by linode. And us Have you tried to learn Python but got stuck or lost focus. We know how it feels to dry and Jim fact after fact, will loop construct after turn hair expression into your head. At best, it's boring at worst, it can turn you off programming altogether. That's why we built our course Python jumpstart by building 10 apps. This course guides you through carefully planned applications. It starts simple, but progresses to quite real apps. Best of all, you won't be learning dry facts. You'll be learning like the pros do by building real applications and learning in context. If you want to start building with Python, just visit talk python.fm slash course to get started. Nick, welcome to talk Python to me. Well, thanks for having me. Yeah, it's great to have you here. Your platform code combat, it's something I've been a fan of for a while ever since I came across it. So I'm looking forward to talking to you about it. Before we get into that, though, let's start the story. How did you get into programming, my dad was an engineer at IBM doing custom chip designs for a long time. And so he was he had the first big open source home automation project written in Perl. And you know, he would even have neighborhood kids around mentoring them in coding and all that sort of stuff. And I never tried it. And so that's not how I got into coding. You had this chance, but you didn't take advantage of it. I don't even know maybe I just thought that was a good dad thing. I don't know. But like, I never tried it. I was doing all this other stuff. My mom was more on the artistic side writer and I was trying all the writing really terrible poetry, all that kind of stuff. And so when I got to college I had no idea was going to do. And I tried everything. And chemistry class, maybe not so much fun poetry class, pretty fun. Try to coding class by luck. And I was like, Damn, this is so boring. And but that was like the first, you know, part of this semester, right? Because we're coding in Java. And you know, at this year, I didn't had like, I had like, billions of years of advanced mathematics class, it was like, Alright, we are going to do simple arithmetic in Java. And it's gonna be really hard. And I was like, why would I need to make the computer do something that I already know how to do since like, 20 years ago, but like, and we got to the end of that first semester, though. And although it was kind of boring, it was really easy for me not so for necessarily all my classmates just the way that it was taught typical failure rates in computer science programs. And we get to the end, and then there's this project, and the project is a rabbits and foxes simulation. And I was like, Okay, got coded up. It's kind of cool. I can see these colored squares on the screen. There's the red one, there's, wait a minute, could I make another one. And of course, this was a sample project, which almost every add on for you, so you get anything done. And I figured out I was so proud I put in zombies. And so now there's the black squares on green and blakeway. They're infecting them. There's undead rabbits and zombie kings. And I was like, wait a minute, you could just makes stuff with code. You can just do whatever you want is creative. Wait, oh, this is cool. I mean to that. So then I got into it. So yeah, this college class. Finally I got lucky with like the last project that first semester and then then it was and so we Yeah, had that whole computer science undergraduate thing in Java. And I was like, man, Java is kind of terrible. We got this scheme. We're doing a lot that was like this is great. And then we got into Python because actually had to start writing some real software. And that was where you kind of put together a lot of the high level areas.
05:00 And power that you would have from something like a scheme. But you don't have to be a genius hacker which at that point, I definitely was interested, like actually write something to put some UI on the screen and get people to use it. So that's awesome. And you didn't have to have like 50 closing parentheses. There, I remember doing a lot of closing parentheses. And it being real, real messy. scheme is such a crazy language scheme unless I took that as well. And colleges, like my CS credit, or whatever. And it kind of drove me crazy. But yeah, I feel like you're hearing your story that it's it's pretty common, that the way programming is taught in universities, especially at the levels, I think it's like, we're just going to teach you the facts, and you have to wait for months before you can actually do anything. And you're just going to have to have this delayed gratification, or you have to be motivated beyond the near term, right? Like, I'm going to spend a whole week doing loops. I don't really have anything to loop over. I don't care about looping, but we're doing loops. And then the next time we're doing functions, and we're doing types and learning interfaces, and like it's taught is just like a series of facts, like that strips out a lot of people because they don't get to have that experience you had at the end of the class until the very end. And by that time, a lot of people like Yeah, no, well, yeah. And it's even worse than not having anything to loop over. Because they do give you something to loop over. And it's math. It's like we're doing arithmetic here, or like, mental stuff, like let's split print some strings, but like the length of the string. And like that doesn't get you going. That's not what's getting most of these kids out of that. It's not what's getting like really matters to folks. And so it's sending the message. Hey, coding computer science, this is like math, but geekier. So you know, if you're not a math person, stay away. That is wrong to me. Yeah, I agree. Because there's a lot of creative aspects. There's a lot of amazing things that you can build. I think it's a little bit less. So now, with all the mobile apps and like, applications have really infused society or come across, like deeply. They're all over society now. And they're somewhat beautiful. A lot of times 10 years ago, that wasn't even the case, right? Well, but the thing that you're starting off with is rarely going to be a beautiful mobile app that you care about, especially if you're in a formal learning environment, right? Maybe it's worse, maybe it's you look at Instagram, that mobile app, you're like, I want that they're like, no, what, what you're gonna do is you're gonna implement the quicksort algorithm in scheme by hand over these numbers, why would I do this? I would never do this. For some of us. It kind of gets you going. I like that part of it. But you know, I didn't know that. I would like that. And I never thought like, hey, let me give this a try. Yeah, I think ultimately, people who are really into do get to where they like that, but I feel like you've got to get to the, hey, this stuff is awesome, sort of place. And then you can start to appreciate and dig into those things. Mm hmm. So if we think then what happened next? So I was in college, and I was learning all this coding stuff. And I was also learning math, and I was learning Chinese. And I was reading Paul Graham essays. And Paul Graham essays have a lot of great stuff in there about your high level languages, but they also have this entrepreneurship stuff, which I had never heard of, I would come in for like the the scheme talk and the Lisp doc. And he's like, he's got one of these reasons. You shouldn't have a job. You weren't meant to have a boss, you should just start your own startup and do your own thing. And smart young people should just start their own startups. And I was like, Man, that sounds great. I don't want a job. I'll just start my own startup. So I went to my roommate, and I was like, Hey, we got to start on startups. You program says, Who is what? No, I'm doing my econometrics homework. So I get my wall street job. And so stop bothering. And I'm like, No, no, no, I pestered him until he's finally fine. If you can think of something that's a good idea that like as a business, then we can maybe give it a shot. Until then, Wall Street, econometrics going. And so I was pondering and pondering, pondering it, and had all sorts of really stupid ideas. And I went to China, as I was learning Chinese for a few weeks. And I had this really crazy experience with reverse culture shock. And I was really sick. And I was like, four in the morning. And I saw this other guy, who was named basically the same as me and the only other like Chinese and computer science student in my same year, and like, randomly met him in Beijing. And I had no idea was going to be there like Beijing city, like 20 million. Yeah. And so for him, we're getting up to go to the Chinese McDonald's on the way out to the airport. I was like, What is going on? I see him. He's writing Chinese characters on his Nintendo DS, practicing it like the stroke level. So he's got this handwriting recognition. I'm like, Man, that's so cool. I need to learn Chinese characters like that. He's like, what? No, I'm playing trauma surgery. I'm like a Japanese surgeon in combat, like saving patients. And I thought you were practicing Chinese. Oh, wait a minute. I do want to practice Chinese like that. So I yeah, and that was the
10:00 The first kind of Python program, right? We got into it there because I was like, hey, I need to write some software that makes it so that you can write characters in Chinese at the stroke level. And like, practice that way, because takes a lot of learning Chinese characters really learn Chinese. And that's like the hard parts. It's all that for like, hey, that's got to be a business there. People pay for that, right? I pay for that, well, I don't have any money. But I would, I would use it. And so you can see we're thinking much more from the technology aspect that time than the business aspect. But we say, hey, there's a problem, we can solve it. And, you know, we reach for the real practical language here, we're not pulling this off this the shelf where we're going into Python, and I hardly knew it. So the first Python program that I wrote basically, was this character editor that would like start to form the data layer for this Chinese language learning now. And with that, I was able to convince my roommates to kind of jump in not go and work in Wall Street, which is great, because that was 2008. And my roommate was actually about time to go then lost that job. Yeah, he would have had a good two months run there, maybe. But yeah, yeah, yeah. So we then were just some guys hacking in our house and working on this thing, see if we can get it going. And, you know, even though we were really kind of terrible coders at that time, but you know, Python was flexible enough that we didn't get bogged down in architecture, we wrote that we had, you know, at that time, there was no iPhones, it was like Wacom tablets, and, you know, handwriting recognition, learn some Chinese hack on some code. And, you know, that took off. So we made the, you know, the back end we did in Google App Engine with Python, and Django and we kind of got it going, we got profitable, we made the number one out for foreigners to learn to write Chinese characters and off to the races. So the first Python program I wrote ended up, you know, pretty good, man. That's pretty awesome. That sounds like a useful app. And I think it captures a little bit of what you've done with code combat as well, in the sense of, Oh, I don't want to just sit down and learn this rote memory practice type of thing, but I want to learn it in the context of play. Mm hmm. If we think of kind of the transition from Scrivener, which is the Chinese character running up to combat, it was the same founding team. And we had, we've been running it for five years. And we said, Hey, well, you know, we've made enough money to not need to work unless retire. And I made it about nine days. I was like, Guys, I'm so depressed, we got to do another one. And they're like, Okay, what should we do? We had some really stupid ideas out there to where like, invisibility cloaks that actually work, let's see if we could, and they were like, No, no, what do we know? Guys? We know how to make edtech teach hard things. Okay, because we take this language learning approach to learning Chinese characters, obvious, it's a language to do that. And then we thought, okay, coding, that's something we cared a lot about my other co founder, you know, he had also learned in college, we both Wish we learned earlier. And we're like, Okay, well, Diablo CS classes could have worked a lot better if we kind of built the fluency first is supposed to kind of intensive learning, we'll do the extensive learning where it's easy, just right at that zone of proximal development, you're going to go for hours in flow state, as opposed to go half an hour, and you know, rage kick your, your segfault computer out the window or something, but and so we're like, Alright, well, if you can build the converse, if you can make more like language learning, then like math, where you're having a conversation with the computer, then I mean, language learning, if you have a kid, and you have a native speaker, and they have a one on one conversation, and the native speaker can bring it down to the kids level. Like, obviously, that kid is going to learn that language. It's not a question of if they're like, a language person, like people think of themselves as math people are not math people, like, there'll be absurd to think I'm not a Spanish person, I can't I can't learn Spanish. And that means something else, right? I'm not from Spain. But so we were thinking, Okay, if you use these methodologies, where you have just like native speaker conversation with the learner, and you can bring it down to the learners level, then that should work. Right. If computer science, the hard part of that is actually the coding part, as opposed to the science part, where you're, all these other things are pretty easy to explain in lectures, or there's not all that much science and what most people do with it, either. Yeah, it's kind of the craftsmanship and being able to express your thoughts to the computer. Well, if we, we need a native speaker, who's the native speaker of coding, well, it's the computer already, like, you don't need a human for that. But the computer only speaks computer language. So you get the beginner coming in there and they're saying, you know, they're trying to print out their hello world, but you know, they're like, putting some extra spaces in there. Whatever they do, of course, they're gonna make mistakes. Normally that syntax error unexpected token, and they're like, Yeah, what does this mean? They need someone to explain, right? I forgot the comma, but it knows what I mean. Right? Yeah. No, it doesn't know what you mean. He has zero forgiveness. Yeah, no forgiveness. And just because all of the code engines out there I mean, I love the Python interpreter but like it like everything else was designed for professionals.
15:00 No software engineers to use by professional software engineers who have this curse of knowledge. And they're like, Oh, yeah, this makes sense, without ever thinking like, what if it didn't make sense? What should you say? And so not at all suitable for beginners, but that's every text based code language engine out there that I know of right? error messages, when arcane. And that's a huge problem learning to code because you need someone to interpret. So if you did something as simple as seemingly simple as make all the error messages make sense, then that'd be a huge step towards having that conversation flow. So for example, encode engine, and co comm as code engine, we have written a lot of code so that you know, no matter where in the stack the air is, whether this is a syntax error, or linting error, it's runtime error, it's maybe not even error, which is just a logic error and could be valid. We happen. No, it isn't for this level that you're trying to do, then we'll say a beginner friendly error message. So it will say don't put a space, or that should be a capital R not a lowercase r. Did you spell right? You said, Ron, instead of down? You should probably fix that. Yeah. And everything else is like syntax error, unexpected token or you know, undefined method. Like, those are not words. So when we came out with this language learning perspective, then you have the native speaker, which is the computer, get it to speak the beginners language. And then you people are just off to the races, like every mistake they make is a teaching opportunity, they solve it in 10 seconds that it takes them to read the error message and edit the code. And that is so much faster, is that conversation? So if our insight for teaching coding was, you have that conversational mode, as opposed to that intensive kind of abstract and key fee instruction kind of mode? And then you have to make it mean something like you were saying to learn? And why do you know for targeting kids, especially here, what kids care about, they want to make in play games, you want to make websites and apps, and those are the things that matter. And so if you can get them learning to code and making that stuff quickly, then that has meaning not just for your Kiki boy who sees themselves as you know, coder Sunday, which is a huge minority of the population. It's more like, basically everyone because 97% of kids play video games. So like, what was I doing? Instead of learning all this coding stuff from my dad? Well, I was just playing video games all the time. And so if I had had a video game that taught me to code, maybe we could, we could get in on that a little earlier. And same thing for condors. Right? So we're like, Can you make it so that you're just playing a game? And not like gamified? Where you just get badges and points? Because was our first business sweater, you know, you would get the users would say, hey, it's so great. It's like a game. And we know it's a hardcore learning. So what do you mean, it's not like even on like, there's, you know, you go fast, there's animations, and then you get points. So it No, no, there's no points? Do you mean points? No points? Well, the number of characters you know, it's kind of like points to the graph, because I know a real game would have this, this, this, this, that's great. When are we gonna get those features, we said, this is a tiny market already. Number one, we're not going to build that. Wait a minute, we can build that for this other market, which is much more starting to learn about business and markets here.
18:12 This portion of talk Python to me is brought to you by linode. Whether you're working on a personal project or managing your enterprises infrastructure, linode has the pricing support and scale that you need to take your project to the next level, with 11 data centers worldwide, including their newest data center in Sydney, Australia, enterprise grade hardware, s3 compatible storage, and the next generation network linode delivers the performance that you expect at a price that you don't get started on the note today with a $20 credit and you get access to native SSD storage, a 40 gigabit network industry leading processors, their revamped Cloud Manager cloud not linode.com root access to your server along with their newest API and a Python COI just visit talk python.fm slash linode when creating a new linode account, and you'll automatically get $20 credit for your next project. Oh, and one last thing they're hiring go to lynda.com slash careers to find out more, let them know that we sent you
35:00 Fifth Grader could totally do that, who maybe just touch types without getting frustrated. Because really, the solve a puzzle, you're probably doing eight, nine lines of code on a long one. And you've helpful characters per line, right? It's not that much typing, but they still get that real experience. And that's, that's what I think is super special about what you guys have built compared to all the other stuff that that looks fun, or it's very approachable, like the block blocky type languages. But as you know, it has that big Crossing the Chasm sort of thing to go there to like procreate like textual text based languages, yeah, the amount of typing that you need will increase, and the amount of difficulty of each level increases as you get further through the game. So whereas you know, your middle schooler can probably do most of that, and we have like 600, and some levels, maybe they can get through the first 400, it really depends on them to do the later ones they'll probably need to work through with a teacher, a coach, just because all this stuff actually does get kind of complicated. you're implementing some graph search algorithm like, Yeah, but you're 12. So maybe let's talk about the graph search algorithm instead of just, you know, sitting down in front of the computer and bang that out there. But the really young kids can do the easy levels that you see where you're like, let's move right, let's move up. What's the tech the yogurt, let's use the potion. Let's do a while loop. A while loops, variables, function calls, not defining function, but function calls, XY coordinates, all those things any of these kids can get with the right kind of setup. And then when you get into if statements, then you're thinking like, Okay, well, this might be a good stopping point for some 567 year olds, others can totally get it. I just saw a recorded video class and one of our teachers did with this, I think he's eight in Hong Kong. And the guy's like, almost all the way through the mountain. He's like commanding his armies. He's he's doing different ways of looping over indexes. I don't think he quite got to the modular arithmetic, like, you know, some of these kids are capable of so so so so much, and they get super into it.
37:03 Talk Python to me, it's partially supported by our training courses. How does your team keep their Python skills sharp? How do you make sure new hires Get Started fast and learn the pythonic? way? If the answer is a series of boring videos that don't inspire, or a subscription service you pay way too much for and use way too little? Listen up. I talk Python training, we have enterprise tiers for all of our courses, get just the one course you need for your team with full reporting, and monitoring, or ditch that unused subscription for our course bundles, which include all the courses and you pay about the same price as a subscription. Once For details, visit training, talk python.fm slash business or just email sales at talk python.fm.
37:49 And other kids, like, hey, we'll just go and do as much as you ready for now and maybe come back to this in a couple of years, some of this abstract thinking gets tougher, but my three year old, I had him start doing it. And you know, at that point, it's like 20 seconds to find the archy. But then he types are and you can move to the right, and who actually meant to move to the left. But like, you know, two minutes later, he's fixed it. And he press the delete key and deleted everything anyway, despite all our protections, but of course, I wrote the program. So I'm like, Okay, let's press the reset button over here. But like, he's gotten through several dozen levels. He's five now. So you can see how fast he goes through it. But he gets super into it. So it's not nearly when you're learning to code. It doesn't matter if you're 515 25. Everybody's starting at the beginning. And there's so few good software pieces out there to help you with that, that
38:40 it's one of the best ways, I think, to get started for anyone. So that motivation from the gamebase format is extra helpful at these young ages, but doesn't hurt anywhere. Yeah, no, it's pretty cool. Maybe we could talk through the different worlds. So I got to figure out how to get back to it. Yeah, so you start off in kidsguard dungeon, this is the hardest piece to design because you they know almost nothing. And so you have to build up every piece of it from scratch. And in a normal learning environment, that'd be pretty hard to design because it's just throwing the book at them. But in this one, we can vary the game scenario two. So even if you need to do five or six or seven levels in a row, where you're going from just moving right, up, down, left, so like maybe you do that, but there's an optional argument for how many times to move. And then you've introduced arguments. Now you can introduce an attack method where you can then put a string in there and like you very slowly pace it out. But it keeps fresh because throughout you're getting new items, you're getting new game scenarios, you meet new enemies, and different art all the time. So like they're really thinking the ham explained this game. And it does take a bunch of levels to get these basics in place. But you get through that and the first dungeon which people you know, some kids are doing this in a couple hours. They've got they can write code like move hero dot move down here. Don't move down here. Build x y fence 34
40:00 Or 20. And then they have three different coordinate pairs where they build their fence and they'll say, well, true move, right. And so that moves they throw down, there's a bunch of ogres coming out of there building fences to block off the attack. And then they move until they get to the end of the dungeon and get the gem. And that's the last level of the dungeon. That one doesn't have a variable in it, but they also have variables in there. So they can move up enemy equals hero dot find your enemy attack the enemy. They don't have any statements yet. So as we get into the forest, and it opens up, and we should have done this from the beginning, where the dungeon is still kind of more appealing to the boys. Because Yeah, let me get in this tank dungeon, it's kind of dark was hack smokers apart. It's not as violent as you know, you would think from the name and the first setting, but we sure could have made some different design decisions there. So then you get to the forest. And there's a lot of that, but there's a lot of like, okay, let's grow our horses, let's build other things. Let's defend the village. Let's you know, go and talk to the villagers. And so there you're introducing if statements and Boolean logic, you get your pet, you got your pet earlier, you didn't know how to do anything with it. Now you can write event handlers and functions so that your pet can be doing stuff for you. And you're Of course, increasing your kind of normal fighting capabilities, you get your first and multiplayer arenas where you run your Python AI hero. So use all your heroes capacities that you developed and you're either trying to get more gold than the others or you're trying to just kill them or defeat them. And you know, from there, you would move on to the desert. And here we're doing more with numerical arithmetic, I mean, this whole time you've been getting into the XY coordinates. Now you can add them subtract them, you can do break and continue statements, arrays, for example, arrays start to happen in there, you start to get object A lot of it too in the desert. Because once you start to get a raise, you can do a lot more interesting tactics. So your you know, arrays with this other stuff was to implement algorithms of, you know, finding the closest enemy finding the weakest any finding the closest weakest enemy, finding the coins, finding only the right type of coins, finding the best ones, you're like optimizing all this stuff. And that's really interesting for when you're kind of finding some of these battles, then once you get to the mountains, and we're introducing, while loops over indexes of the arrays and four loops over the arrays, and you're starting to summon troops, and you can command them to do things you're getting into basic graphics, because you're, you know, moving in different patterns to draw the kind of the flowers that go mind in this flower ring. There's all sorts of like all through this time, you're constantly doing a ton of if else, Elsa lF kind of statements, because you need to activate all the special powers of your hero, whether that's to you know, use your bash ability, or shield or cast, your magic spells are going visible. And the kids really love getting the new capabilities like that. Yeah, my daughter was blown away when she got a new pet. And then she got two pets, and she couldn't decide which pet was her favorite and which you would take with her. And it was now it was it was great. Yeah. And so then you're, as you move on through the mountain, and here's where you know, the basis of all the code, you need to do really, really well on some of these tournament arenas that will run, then the the glacier will happen. And the glacier is kind of like Alright, let's introduce the vectors. And now you're doing vector arithmetic. So operating with these various like linear algebra transforms only to you. It's not the linear algebra transform. It's like, okay, vector dot rotate. And let me think about it. This is where it starts to get a little tricky. We're introducing kind of the Boolean logic and, you know, counting and other bases and some of these graph search algorithms. There's one where you just have to code up your team to play soccer for you. And like, nice, that's a lot of geometry and trigonometry there. But some kids get that far by themselves, most of them will need to work through that with a teacher at school. And just to give people a sense, like the first engine, there's 43, puzzles, puzzle programs, you got to write, the force has 121, the desert has 97, and so on. So there's a lot of little problems that the kids can go solve and work on. And they're pretty bite sized. So it's quite cool. The target goes from three minutes per level in the dungeon up to like, once you reach the glacier, we're like, at least he should take you like half an hour. So there's a lot of content in there. There's also a lot of hidden content that shows up if you the system determines you might need a little bit more help. Or if you go back, and then you unlock secret stuff in the earlier worlds, because everyone is learning at different rates, they're going to need different amounts of practice on the same concepts. So if you're doing levels, particularly slowly, with particularly difficulty, the system might say, Okay, here's the next level, but it's actually a practice level. Some other students might not have gotten that level if they didn't need it. Oh, interesting. Yeah, that's clever. So they can slow it down if you need to. We don't have a way to really speed it up. But then again, learning this thing is already going pretty fast. Yeah, for sure. Awesome. Well, I think it's a really cool world you've created for these kids and basically beginners in general, but it definitely seems like it's gonna connect with the kids. I know it did with mine. So let's talk about some of the internals. Yes, you talked about the different languages. We write Python in the
53:56 they've got like a component gallery of buttons and text boxes, you drag them over. And then all of them, those have events, you double click it, and it switches over to see the code. But that's all Python code that runs in the browser on sculpt. Oh, that's awesome. Yeah. So it's pretty, pretty awesome. There's also breath on out there to yet another break on it. Yep. Did you look at Python and consider it alongside sculpt? It wasn't scars along when we kind of put our stuff together. But, you know, I think the either of them could potentially have worked. We just needed a parser layer from it. I can't remember parser if brythonic use them as our ASP format or something else. Right. I think this is great. Well done. I'm building it that way. So let's just talk briefly about the business side of things. I think it's always interesting to see people building businesses on Python and bringing these tools together and whatnot. So I guess first of all, we haven't talked about this yet. For people who don't know like, is this something I pay for combat free? What's the story? Yeah, so we are an open source project and you know, goes back to my roots of
55:00 My dad having that Mr. House home automation project, which it seemed like back in the day, that was like they needed a school. And when we started building this business, we weren't thinking about open source, but we knew we wanted to do a for profit business, because that's how you can get the resources to really make great software. And, you know, there's obviously gonna be, we can market for people learning how to code. So we built this thing built, this thing is free for a long time and said, Hey, we're gonna start charging for this thing. But that was kind of still in the mind, like, there's gonna be a lot of people who can't afford however much you're gonna charge the social to be able to learn to code. And especially if your game is multiplayer, you kind of want those players anyway. So not just to provide network effects for playing the game, but also for sharing the game. So the initial model we did is a $10, a month subscription, but freemium. So you only have to pay for that if you want the extra levels, extra heroes, extra gems, some of this game content stuff, but it's not like you get the first 20 levels for free. And then you have to pay, it's more like you get the core progression of levels from the beginning all the way to your crazy graph algorithms in the end. And then it's extra practice levels that are kind of the branches of the tree that you pay for. So if you want more help with that, use more content, you want to cool hero, as opposed to the basic hero, then you can subscribe. And so most players, you got a couple hundred thousand monthly active players, most of those are playing for free, we kind of made a mistake, because when we started to take off as a business, we had all these players, we said, okay, well, the main market for this is going to be in the schools. And in the schools, you have this huge need for teachers to be able to deploy some computer science curriculum that kids will actually do, even if the teacher is not there over their shoulder all the time. And especially if the teacher is not a pro coder, which, you know, if you're a pro coder, and you're working in teaching, I salute you because it's a really hard job, you probably know where you can make elsewhere. And it's more than twice what you can make as a teacher. So not a lot of super experienced coders in teaching. And all of these teachers getting deputized to teach computer science. The math teacher has to teach it the English teacher, the choir teacher has to teach it like yeah, help, right? So they reached out, we said, Hey, you know, we can help you run this with the students. Let me see we do both the teacher dashboard. And our main product is now that classroom version. And so when we made a bunch more content for that, we actually forgot to set it as paid on our on our home version. And so there's a couple hundred free levels, like you could just do so much there. And it's not the main way we make money. So I'm cool with that. We're not trying to optimize that to within an inch of its life in terms of conversion funnels, or anything like that. So yeah, that's great, we make a little bit of money from that business. But it also means you can just go play for free, you don't have to sign up, try it out. And if you wanted that extra help, or extra content, you can get that if now the new thing is if you want extra help, you can pay for private lessons from one of our online coding teachers do the work an hour or two hours a week with your kid. Or you can do group classes with up to four other students to force you to settle. And so those are some ways it works. We've got some different pricing models in China where we run our business too. But
01:03:47 so, yeah, thanks for the time. This has been really fun. Yeah. It's been great to talk to you about it. And congrats on the project. I think it's really opened up like proper coding for a whole nother level. And I'm really happy to see it. Yeah, yeah. Yeah, you're right. All right. Take it easy. All right, bye.
01:04:03 This has been another episode of talk Python. To me. Our guest in this episode was Nick winter, and it's been brought to you by linode. In us over at talk Python training. Start your next Python project on the nodes state of the art cloud service, just visit talk python.fm slash linode. Li in Eau de, you'll automatically get a $20 credit when you create a new account. Want to level up your Python. If you're just getting started, try my Python jumpstart by building 10 apps course. Or if you're looking for something more advanced, check out our new async course the digs into all the different types of async programming you can do in Python. And of course, if you're interested in more than one of these, be sure to check out our everything bundle. It's like a subscription that never expires. Be sure to subscribe to the show, open your favorite pod catcher and search for Python we should be right at the top. You can also find the iTunes feed at slash iTunes. The Google Play feed is slash play in the direct RSS feed net slash RSS on top Python
01:05:00 FM. This is your host, Michael Kennedy. Thanks so much for listening. I really appreciate it. Now get out there and write some Python code