Episode 63: Community Teaching With Python Sean Tibor: [00:00:00] Hello and welcome to Teaching Python. This is episode 63 community teaching with discord. My name's Sean Tibor. I'm a coder who teaches. Kelly Paredes: [00:00:25] And my name's Kelly Schuster-Paredes. And I'm a teacher that codes! I'm changing it to that. Sean Tibor: [00:00:30] I see. I see. This week, Kelly, we're joined by a new and very good friend of ours. Leon Santoy from Python discord, Leon. Welcome to the show. Leon Sandøy: [00:00:39] Thank you, Sean. Thanks for having me Sean Tibor: [00:00:41] we're really excited to talk with you because the things that have been going on at Python discord have been breathtaking over the past year or so. Uh, the pace of growth and more importantly, the fact that it's scaled so nicely and kept that warm and welcoming community feel as you've grown with. So many members has been something that, I know it takes a lot of people to make that all happen, but you guys are making it really good and really nice along the way. So we're excited to hear more about how you've done that over the past few years. Leon Sandøy: [00:01:10] Yeah. Thank you for Kelly Paredes: [00:01:12] Just to put this out there, I'm excited because Sean has managed to force me to get onto an yet another platform. So, you know, terminal now discord. And I'm like, what the heck? But I'm learning, I'd be new beyond discord. Wins of the Week [00:01:26] Sean Tibor: [00:01:26] You get more back than you put in. That's the key. We'll start at the same place we do every week, which is the wins of the week. And we like to make our guests go first. So Leon, you're going to be up first for wins of the week. It's something good that's happened inside or outside of the classroom, or I guess in this case, inside or outside of a discord help channel, right?Leon - Chess [00:01:46] Leon Sandøy: [00:01:46] Right. Actually for me, my win of the week happened at home. I have a four year old boy who I spend a great deal of time trying to teach, and in various ways, the way that you do and the thing we've been trying to learn recently, over the past few weeks, I've been teaching him how to play chess. , we've been taking, 10, 15, 20 minute sessions after his kindergartens up where we just sit down on a board and I'm like, here, you can have one knight. I have three pawns. Try to take my pawns. And he learns how it moves and he solves these little puzzles or tactics or whatever you want to call them. This went on for a while. I found a great app, , where he could learn even more on his tablet and it led up to yesterday. , we played an actual game. I had a slight handicap. I took out my queen and a couple of my pieces, but we played like a full game. He had all his pieces and he checkmated me, which I think is amazing. I don't think he really intended to do it, but he found the move and it, was checkmate. There was nothing I could do. I felt I've never been so proud. He was beaming. And , I felt like that was a pretty big win , as a teacher as well. Yeah. Kelly Paredes: [00:02:57] That's incredible chess. Huh? I can see Sean already. He's processing this. He's thinking what he's going to do to it. Sean Tibor: [00:03:03] I have a, five-year-old son and he's really interested in chess also, but I have no idea what I'm doing because I think the last time I was playing anything was when I was about his age or maybe a little bit older. So I'm taking notes , okay, one knight three pawns , playing tactics and everything, just to simplify it. I think it's a great approach. I can definitely imagine how wonderful that is to have that feeling. Nobody likes to lose a game, but that is the best way to lose a Leon Sandøy: [00:03:30] Oh yeah, that's the best loss I've ever seen. and I got us parent to parent. You should check out this app called kingdom of chess, and have your kid dad and try that out because it's like an actual game. It's not just chess. It's sort of an overworld where you move around, but you have to use chess pieces and they have to move with legal moves as they go around exploring the world. It's a great way to learn how to. How to behave leon-sand-y_1_03-10-2021_203545: [00:03:52] and move around. Yeah. Sean Tibor: [00:03:53] That's great. We'll put that in the show notes, for anybody who's interested in that so they can check it out too. That's so cool. All right, Kelly, you're Kelly - Generalized Python Rubric [00:04:00] Kelly Paredes: [00:04:00] up? Okay. So I don't think you remember this, but my win of the week, and like I said earlier before, as , I think I said this before, we're talking to her on the show. I don't remember already so long going on, but it's going to possibly be my fail of the week next, next week. But if we made our own generic Python rubric for some projects, , I'm pretty proud of it. I've been wanting to put together something that seems, capable for both seventh and eighth grade students, something that pulls in all the concepts that we spiraled through over the three years. It's called a one-line rubric that allows a below and exceed expectations. And it's just, it's the simple, the simplicity of it that I think I'm starting to like about this rubric already, just looking at it and the fact that the student has to identify where they exceed. And in all reality, they could probably exceed in almost everything on it and just letting them feel that win of coding through PEP8 thank you, Leon. We showed your video, functions, code design. Use of comments and doc strings using conditionals and validations datatypes loops and all these little things that we've been doing for the past two, three years and put it on a rubric and kind of proud of it. We'll see if it works well when we judge our game design and stuff against it. So we'll see. Sean Tibor: [00:05:25] Thanks. Nice. I'm using it in my classes too. And I think the nice thing about as the kids understand what everything on that rubric means, so they know where they stand with it and they can also, , evaluate themselves fairly and say I'm doing really well on these areas and these areas, I don't know as well. I can start to work towards, shoring up things that maybe I need to know a little bit better, but I can also build on the things that are working great and make those even stronger. So I really like using this with the students to be able to help them , assess themselves, Kelly Paredes: [00:05:55] cross our fingers. Yeah. We'll let you know. Sean - Launching Teaching Python Shop [00:05:59] Sean Tibor: [00:05:59] Nice. For me, the best thing this week has been the fact that we have launched our online store with merchandise, for the show, it's something we've been talking about for a while, and we always wanted to have stuff to show off the show that we have been putting so much of ourselves into, and also something that just, you know, for those of us who are teaching or, um, coding and who are trying to help others learn to be better coders in whatever fashion, just some things that are fun. And, show off a little bit of the hard work that we've all been putting into to making this happen. So we've got, t-shirts, we've got hoodies, we've got coffee mugs, lots of fun stuff that we're really excited to get out there and let you guys check out. And for friends of the show, we've got a 15% discount code to get started. So it's a little bit of a commercial and a win, but like we've been working really hard to get this thing out. So I'm really pleased with how it's coming together , and with what potential we have in the Kelly Paredes: [00:06:55] future. Yeah. And just to let you know, I've already bought a whole bunch of stuff for myself, especially the one on my credit card. It's on Sean's credit card. So it doesn't matter. I'm like, Ooh, I need those flip flops because you know, bring a little South Florida to you guys. Leon Sandøy: [00:07:10] Yeah, I'm my own biggest customer as well. Sean Tibor: [00:07:15] Yeah. We'll have to get you , a couple of good , teaching Python, t-shirts Kelly Paredes: [00:07:19] there, uh, you know, That's sweater. Sean Tibor: [00:07:22] Jumper. Yeah. In Norway, I think a hoodie might be more appropriate at this time of year. Leon Sandøy: [00:07:27] Yeah. I mean, it's pretty cold. Kelly Paredes: [00:07:31] Excellent. Fails of the Week [00:07:31] Sean Tibor: [00:07:31] All right. So fails of the week, we'll go around again and , we don't make it go first on the fail to Leon. We'll go in reverse order. Sean - FastAPI Database Fails [00:07:37] So my fail of the week, , was just a couple of things that weren't going right in the code. And I was having a lot of trouble figuring it out, and it was mainly stuff with fast API and just, I think I was trying to jump ahead too far. I had my certain level of knowledge and I was trying to do something that was beyond what I understood and it just kept not working and not working and not working. And I kept banging my head against the wall. And I finally just went back to something that I knew really well, which is I can just do this directly in the database with SQL alchemy. I don't have to try to do it, with all the validation and everything. Cause I'm only changing one thing. It's going to be a really small, straightforward change. I'm just going to go back to something that I know. I figured it out and made it happen. , it was satisfying when I got it. Right. But it was a lot of fails to get there. And the big fail was just not recognizing soon enough that I was trying too hard to do something relatively. Yeah. Kelly - Imposter Syndrome and Bullet [00:08:32] Kelly Paredes: [00:08:32] you're going to go with me. Okay. Well, has been a while since I've felt this imposter syndrome yesterday, I covered Sean's class, they're doing their demonstration of learning and it's a very hard project. We're not going to lie to any teachers out there, especially the newbies when you're doing a demonstration of learning and you're allowing the students to , go to that next level. Most of the time, you don't know the stuff that they're learning and this poor student was. I'm trying to get a library. And it was just, it was the bullet library. I've seen it. I've seen Shawn use it a lot in this class. doesn't work on co-lab it wasn't working on Mu because Mu's third party packages was not accepting it and it wasn't accepting on mine. My VS Code has been totally unconnected cause I'm learning git, and so I was trying to put it in mind, but it was stuck in a different folder and I was, I didn't know how to change it back cause I haven't finished my Colt Steele Github course yet. So I was trying to help him on PyCharm and I couldn't remember PyCharm and I just was like, I can't. And I got flustered and it was very frustrating. And suddenly I just said, listen, you're going to have to talk to Mr. Tibor. Here's a book to a different brand. I can't get bullet, but it's one of those things where you just have to admit to the students. I listen , we're at a little bit of a impasse. We're just going to have to take a breather, step away, walk away. I started thinking, gosh, I'll never be able to teach this right now. And it's one of those things that we go through all the time and I'm back in there and trying to figure out my terminal again. So just happened. Sorry. Leon Sandøy: [00:10:07] No, but I think stuff like that, like being able to admit when you're stuck to your students is really important because it humanizes the process. They understand that everyone gets stuck. It doesn't matter if you're a rockstar programmer, you're going to get stuck. You're going to get blocked and you have to just find good ways to unblock leon-sand-y_1_03-10-2021_203545: [00:10:24] yourself. Sean Tibor: [00:10:25] It's natural for students to compare themselves to their instructors, the teacher makes it look so easy or it's so intuitive where they just can type it 80 words a minute and I can't keep up. , every coder must be like that. And when they see that you have that issue, I think that makes it okay. they see the version of us that has been coding for a long time. That's what's right in front of them. They don't see the version of us that was just like them when we were all learning and it was really hard and we didn't get it and we had to figure it out. Being able to show them that view to your point, Leon is critical for students to feel like that's something they can do also. Leon - Exuberent Changes to CD [00:11:00] Leon Sandøy: [00:11:00] Yeah, precisely, for me, my fail of the week, it started as something of a wind and I was making this continuous delivery system, which is essentially, it automatically deploys changes to the server as they occur. So you change something in your version control and it just goes out there. And you don't have to keep doing releases and deployments. I was writing this and Python, of course, and I got a really good working prototype. I got a deployed to our test server. It was working. I was excited, but I hadn't let anyone know that I had made this change. And it turns out that change broke a whole bunch of stuff that was relying on the old system. So people were confused. People didn't understand why their stuff started failing in mysterious ways. And so I guess the lesson is just that I should have been very careful to inform people of these changes ahead of time. Maybe document ahead of time, get the documentation out there before I started actually pushing it out. If only they had that information, they would have been pleased. Sean Tibor: [00:12:06] Sometimes our excitement gets in the way, right? We get excited because we've got this change. That's going to be great. And we know it's going to be great. , we may be skip over a step that we shouldn't have, and that's all we needed to do. Leon Sandøy: [00:12:17] Well, like I never would have pushed it to a production environment, but I thought, well, there's just a test environment. It doesn't matter. It's okay if the test environment breaks. I didn't expect that all these people were relying on the testing environment to work in a specific way or else it upset their habits and the way that they code it. And some of the scripts as well. Sean Tibor: [00:12:35] That's a tough one, but hopefully just roll it back a little bit for now and then it'll be ready for later. Right? Leon Sandøy: [00:12:41] Yes, just called a meeting, got them in there, teach everyone how it works and then everything's solved. Kelly Paredes: [00:12:48] Those are like good skills though, that I think people need to keep in mind because a lot of us who are new to coder coding don't really understand the issues of a developer. We talk about the durable skills and communication and calling a meeting and walking through changes and communicating what's going on before you make the changes. Those are just great reminders to all of us teachers that these are skills that we can help teach. And even though we teach it, it still happens and it's okay. Leon Sandøy: [00:13:19] Hmm. Yeah. These, developer soft skills are almost more important than the coding itself. Sometimes I think I certainly, when we interview people, we look for those soft skills maybe first and foremost. And then, when you find an individual has really strong grasp of the soft skills involved in being a developer, not often. Is a reflection , of how strong a coder they are as well. The two things are very closely connected. Kelly Paredes: [00:13:46] Here a grade. Yeah. Main Topic - Community Teaching With Python Discord [00:13:49] Sean Tibor: [00:13:49] Yep. For sure. For sure. Well, can we jump in, let's talk about Python discord. First maybe what start with discord for anyone who isn't familiar with it. , we all have our systems and things that we use all the time, but there are some aspects of discord and the way that it was created and set up that lends itself very nicely or leads into why this was a great choice for a community around Python on discord.What is Discord? [00:14:12] So Leon, if you could give us a little bit of background on what discord is and how it was a choice for you when it came to running a community like this. Leon Sandøy: [00:14:20] Discord started as a competitor platforms like TeamSpeak and mumble, where it was like a voice platform where people could play games together. The generally that they'd be playing some online game, they'd be chatting together. It was that kind of a focus. They leaned really heavily on that gamer aesthetic. Even through the point of calling, it's not a server, it's a Guild, , like very heavily game themed names for things. Then they've developed a really strong platform that it looks a little like Slack. Except that , as opposed to Slack, Slack really designed for these closed small environments, like a team for a business and you're supposed to let in the people who you want in that community, you build it around those. Discord is wide open. Discovery of communities is very easy to do. It's designed to grow big. These communities can scale to hundreds of thousands of users and they still maintain their . So as discord grew as a platform, people started using it for a lot of other things other than gaming the sort of pivoted and rebranded themselves as a place to talk a place for your community. And you got gotta swim club. Go on discord. It's super easy to set up a server. You just click a button, you've got a server. You don't have to host anything. It doesn't cost anything. You can get your friends together, talking in the place. You can set up your channels and there's voice chat, there's video. You can embed all sorts of things, videos, GIFs whatever. So it's very, very easy to use. Tech community started really taking to this place and there are some tech communities that started springing up. The react community really went all in on discord. There's a lot of rust people who went to discord. so we felt like it was a natural place to be. It's also something about the demographic starting at, as a gaming place. It had a lot of young users and, definitely as a Python community there's a lot of young learners. , it's a first programming language for a lot of people. Everyone knows it's a good first language. Kelly Paredes: [00:16:26] it's so funny. Cause you're putting everything into Context for me. I love this when things start making sense. So our kids, last year or two years ago, our robotics kids were like, we set up a discord and I said, what, no, we're Google docs. We're doing this discord, , whatever that discord thing. And then my sixth graders , when we talked and showed the video of you, Mr. Tibor was like, yeah, he's got discord, Python, what? And all of these kids who already have like avatar. And I said, Oh my God, I'm so old. I don't know where any of this stuff has, but I'm not a gamer. So that's my default. So it puts it into context. Why it is a definitely a younger generation that is also on it. And that's due to the, all the gaming. Sean Tibor: [00:17:08] It also is really indicative of the trends that are happening across generations. Things like. Documents and files and email tend to be pretty heavy and asynchronous you send it off and then you have to wait for someone to reply. Whereas these are more instantaneous, there's more organic and fluid conversations that pop up. , it translates really well across desktop and mobile. It works while you're playing a game or you're writing code you, it has all of these different features that are maybe like the next evolution of communications online.How are you using Python with Discord? [00:17:42] And I think it makes it really interesting now to then use that in the way that you have chosen, not just to create a community site, but to have teaching and education as a main focus of the community with Python discord. So how are you using discord with Python? I know that there's some really cool stuff that you're doing with your help channels, with different events that you're doing, and there's a whole breadth here. Leon Sandøy: [00:18:04] There are a few aspects. I mean, that's a big question. So I could talk for hours about that, but, high level overview for first of all, discord has a great API and there is a Python module called discord.py that allows you to interact with that API in a simple and asynchronous way. It's a beautiful module in my opinion, and uses a lot of cleverness in order to allow you to write very little code in order to achieve quite a lot and to keep track of things and to be able to scale to huge servers like ours or to a number of communities. And that allows us. To create these bots that can live in the community and perform, housekeeping tasks and we can use them for moderation. We can use them as tools that we offer a feature to our community members. They can use our bot to evaluate Python code and see what it evaluates to. They can do all sorts of crazy stuff like that. They can find documentation with a command they can search for answers on the web. All this stuff is exposed through commands and inside of the community. And I mean, we have so many programmers, so many talented developers on our staff and in the greater, member biomass, which means that we get lots of, pull requests from contributors who want to be part of building this community. So from the start, we've had a lot of programming basically coming in for free, and making the community stronger. It's not that often that you can find a community that you can sit down and literally write some code to improve it. That's a unique feature of why Python discord works so well. So that's one aspect of it. Using Discord for Education [00:19:41]We've taken to focusing on education partially because we believe that it needs to exist, that we, as a community are serving an important function in the ecosystem. And partly just because that's what people come to us for, whether we like it or not, people are going to come for help. And so we want to be accommodating and give those people what they need. And most of the people who come to us, they are. Often people who are stuck on their first really difficult problem, they've maybe just started learning Python and they need some, some guidance in order to get past that roadblock that they're on. We have definitely everything we need in order to help them pass that blockage and get them writing some more code. Kelly Paredes: [00:20:28] I love this and I'm getting my teacher side keeps coming back trying to explain to another teacher why our students are the way they are. So for example, one of my students may have a question they're working on their homework, of course, at 1130, 1230 at night, because that's when they do it, they send me an email and of course I'm asleep at 8:15, I'm not answering them. There's frustration comes and there's maybe two or three or four emails from the student. Who's like, I'm really stuck. I'm really stuck. I can't, , I need this answer and they can turn to, stack overflow, but that's also slow sometimes for them or they don't understand it and they don't have this personalized. And then they have discord where someone in Norway or Spain or Europe is up at the same time, we're in the morning and ready to help them. And it's that instantaneous gratification of, I know where to go for the answer. I just need somebody to be awake and to help me and that, so cool. So cool. Leon Sandøy: [00:21:29] Yeah. And more than just being able to find the answer often they can get that sort of one-on-one mentoring experience they come in and people are so. Engaged that they'll not just tell them what they need to do to move on. They'll try to understand the context of why they're asking, why are you stuck? Well, fundamentally you're stuck because you don't really understand how classes work. And so instead of giving them the answer, they sit down and give them a crash course in how classes work. Especially inside of this code that they're writing, how that affects, , the output that they're seeing and the exceptions that are being raised. I think it's a really beautiful thing that we see. So many of these people connecting on this deep level where they really get this personalized help, otherwise you would have had to pay , quite a bit of money to have someone sit down with you like that and teach you one-to-one in the middle of the night or right in the weekend. Like you say, 24 seven right now, if you walk into our community, there'll be 20, 30 of these sessions going on. Right now. And every one of them is , someone connecting with someone else in order to learn more about their situation.The Niceness of Python, on Discord [00:22:40] Sean Tibor: [00:22:40] It's interesting. It is a reflection or an extension of the broader Python community. If you look around at people within Python, it's genuinely a nice community. There are nice people in Python that want to help each other and help anyone who asks for help. This. Discord area is a way where you can make those connections, right? So it doesn't help you if there's a nice person in Norway and you have no way to talk to them . But if you're on discord and that person is, in the same chat channel, as you , they can help you and they can show you how to do it. And by making that connection, these wonderful teaching moments can happen. Leon Sandøy: [00:23:17] That's been our secret sauce actually is essentially. Ensuring that the people who do help out in the community are the kind of people who have those core values that we have, we've established from day one. Me and Joe Banks, who is one of the co-owners, we've agreed that the community has to hold very dear these core values of empathy. Stupid questions are welcome. We want to hold your hand, trying to be wholesome and understanding and warm, from day one. Yeah. And we've been very fiercely defending those ideals and ensuring that everyone on our staff shares those ideals, but it's been really easy because of what you said. Python has a very inclusive , and a nice community full of people who all they share those values with us. So the kind of people who gravitate towards us as staff members, there are typically library maintainers, teachers, there's professional Python developers, and so on. And these are generally very wholesome and nice people who have everything in common with the rest of my stuff.How do you get help? [00:24:25] Kelly Paredes: [00:24:25] Quick question for some of us who are still learning discord. So when they go into these rooms, they have an option of chatting live or chatting by text. And just what happens when you have a question? So my students go in there and they have a specific question on how to make this class work or something. Leon Sandøy: [00:24:44] So we offer three options for receiving help. The first is we have a number of topical channels. If your question is specifically related to say making games, then we have a game development channel where some of the maintainers and some of the experts in the field are often there. So you might meet the. Are there core developers for the Kivy framework in there or something like that. That's one place you can go if you have a very domain specific question, then there's, voice channels you can connect to after you've sent a certain minimum of messages in the community so that we know that you're not up to no good. And then you can join the voice and you can have a voice conversation with someone who might be able to help you with what you're doing. But the most important pathway into getting help is, the system we built on top of discord, which allows you to claim a help channel of your own. So you just go into one of the help channels that are under the available category. You type your question, and now you own that channel and someone will be along to help you with your question. Nobody else is allowed to ask for help there until you're done with your session. We give you your own little corner where you can sit with a mentor essentially and ask and talk. And if it takes six hours, then that channel is yours for six hours.How did you know it was working? [00:26:05] Sean Tibor: [00:26:05] when did you know that this was working? Was there a moment where you're like, wow, this is really taking off or, wow. We're onto something here. Leon Sandøy: [00:26:12] When the community was smaller, I was able to look at everything that was posted there, every message I personally oversaw that everything was following my idea of how the community should behave. I was moderating people who didn't belong there. And then there was a point where we got so large that there was just absolutely no way that I could continue to do that. It would have taken all the time out of my day to to monitor everything that happened. And I had to let go almost like, when your kid first goes out to visit a friend's house and you can't be there with him. And you've been there, every moment of his life up until that moment. And then you just have to let go and just trust that person doesn't go out and do something stupid, that's how the community was with me. Like I had to let go of it and just trust that it was able to follow, along , the path that we'd laid out for it. At that point, I guess I felt like I learned to trust the community. And I knew that it was heading in the right direction. I knew that the people were behaving the right way and that my staff, that I could trust them to maintain the culture that we had built for it. That was just such a powerful trajectory. I was sure that was going to lead somewhere very interesting. And it did. Sean Tibor: [00:27:24] Did that hold up as you started to go through the massive growth that you've had in 2020 with the pandemic, was that something that you are able to , keep that level of trust and knowledge that the community would survive and thrive under that? Leon Sandøy: [00:27:37] absolutely, but it took a lot of work. 2020 was our, I mean, we quintupled in size in 2020. It was ridiculous. We were partnered with the subreddit /r/python. So we had lots of people from there. Come in, we started working with the Python Software Foundation more closely. We got listed on python.org itself and then discord strengthened our partnership with them and put us on the front page of their discovery thing so that people who are just looking for any community to join would see us. Very very easily. And we started getting this massive influx of users. And I do think that the pandemic was a big driver for people to come to communities like ours. I'm sure all communities similar to ours had a boom of users coming in because I think a lot of people during the pandemic realize that, Oh, this is a good time for them to learn something new. And maybe change careers, maybe just wake up a new hobby. We're perfect for that. Sean Tibor: [00:28:36] Then it's also paired with the fact that maybe if they were learning this under , pre pandemic conditions that, they know that Jenny at work is one of our Python developers, and I could ask her questions maybe try not to annoy her, or Bob in my class knows Python and I could ask him some questions, but when everyone's at home, who do you ask? Being able to have that community to go to is also really critical to be able to get that help and support that you need to get started. Under the pandemic, our choices have been limited. It's mainly whatever you can find online, not necessarily where you can go physically. Kelly Paredes: [00:29:09] Yeah. I'm thinking back to this whole revamping education side, And this ability to learn anywhere, we've had an opportunity with this global pandemic to really press our lifelong learning skills. And this ability to go to a platform, ask a professional who, , I tell my kids, there are a lot of really, really smart Python coders out there. So many, let me show you this video. This is so-and-so. This is where I learned. And I went on your discord and I looked at some of your people and and Sean says, Oh, that's, so-and-so I'm like, Oh my God, he's on here too. I took his course. So this is like this change changing of, abilities just , to learn at your own time. And that. I say this too many times. I thank COVID for this reinforcement of learning at your own time, learning from people around the world and having things like discord out there. Leon Sandøy: [00:30:11] Yeah, education is changing and the COVID 19 was maybe the catalyst, but it probably would have happened anyway. Many things are happening faster than they otherwise would have that it's accelerating certain technologies. But , that's here to stay. And this asynchronous way of learning, is our new normal that your students are going to seek out that knowledge , much more efficiently than they were able to before. And that the services that exist out there, like our community are going to be stronger and better equipped to deal with the people who come there and to offer something, , more powerful than we were before all of this happened. So I really think that there's a permanent change. There that's happened for the better, absolutely. For the better. Kelly Paredes: [00:30:57] I shouldn't tell all my ideas out there, but I take a lot of MOOCs online learning courses, a lot of Coursera, Udemy, I've signed up for so many of them. And to have that paired along with a mentor that I can go into a help desk with and say, listen, I've just learned this from , Al Sweigart's automate the boring stuff. Of course I wasn't responding to my Twitter, which we know he does because he's very active, but pretend he didn't. I can go into, , Discord and get some clarification on that. What a beautiful package that we've provided and paved. And I say, we, as educators around the world have provided for people who want to learn so kudos to you guys.Redefining what it means to be a teacher [00:31:40] Sean Tibor: [00:31:40] It's also redefining what it means to be a teacher, you can be a great teacher in discord and never have stepped foot in a classroom, you can be someone who's skilled at explaining concepts or helping students understand or acquire knowledge and know that right balance between I'm telling them enough and I'm not. Telling them too much, or I'm sharing just the right amount of information. And I like the way that you've also set this up, where you have these helpers that get promoted. Anyone can come in and help someone else. But then the people who are demonstrating that right culture, the warmth, the skill, the understanding can be promoted to be official helpers, and then they maybe can be promoted further than that to be more senior staff that can help, set more direction or demonstrate more leadership. It means that more people are getting the opportunity to teach and you don't have to necessarily be in a classroom to be a good teacher. And you can actually be sitting at home in your pajamas with a nice cup of tea, teaching people how to code. Leon Sandøy: [00:32:37] I think that's really interesting. I really believe in the Feynman , idea that the best way to learn is to teach that you don't really understand anything until you've taught it. That's why I've chosen to spend so much time educating and in this communal way. It makes me a much better developer. But we encourage people to take part in that teaching process really early. So even people come in, they might be 13, 14 years old. They've just learned this thing themselves. And then the next day they might be teaching it to someone else. And I really think that helps them grow, , as developers as well. That's one aspect. What's unique about our platform versus say traditional education is that our educators have a chance to listen in, to be a fly on the wall in these hundreds of teaching sessions that are going on every day and see how other people teach and learn from them and make their observations , and become stronger educator because they see other people answering the same questions in a different way, or setting it into a different perspective. I think that's a really unique thing with these huge communities. And I don't know how often you get to see other teachers teach and in your jobs, but, probably not dozens of times a day from different educators. Sean Tibor: [00:33:52] It's true. That was one of the things that helped me the most as I was becoming a teacher, was to watch other people teach. And I love listening to Kelly, teach a class because I always pick up at least a few things that I wouldn't have come up with that on my own. And this gives me new insights and new perspectives that I can use in my own teaching. That's another really strong benefit here. you can go in and get that observation, in a really unobtrusive way. You're not distracting someone by just sitting there and watching the chat stream as it flows by. Kelly Paredes: [00:34:22] Yep. as a learner, I have to admit, I actually knew an answer. And I said to Sean, I said, I know, I know an answer to someone's questions. And he's like, well, did you answer it? And then time, I finally curated my perfect response. Someone had already answered it, but I sent it anyways. So it was this affirmation and it was about the daytime module. And I was just like, yes, I know the answer to this one. I can help somebody. I think it's a good affirmation for people who are learning to just follow along. We talk about desirable difficulties. It's one thing to know it or to say, Oh, I know what that means. It's another one to be able to code it on your own. But like you said, to be able to explain it to somebody else you know it, and then to actually communicate it and put it out there on the web or whatever, it's powerful. Student Question - What was the hardest thing for you to learn in Python? [00:35:13]Sean Tibor: [00:35:13] One thing is that we have to find a way to sneak this in here because we have one that's mine. That's my question. I'll let you do it, but I think it is important that we don't lose sight of what it is to be a learner that we're always learning ourselves. So even though we're teaching a lot, but we always have that empathy for our learners, by putting, being able to put ourselves in their shoes and know what it feels like. Kelly Paredes: [00:35:33] Sean told me about you. And then, we saw your lovely website, which all the sixth graders loved and you've been old. You had a Santa hat on, you were bald, you had the Hoke, mustache. They were playing with that. And they absolutely loved it. And one of our students who is on discord, he found you on there on the Python discord. And he was so excited when we told him that we're interviewing you this week. He wanted to ask you and he said, can you ask him what is his most difficult concept was to learn, Python? Cause I said that you were a new Python learner, relatively new what? 20. So he wanted to know what was the hardest thing. Leon Sandøy: [00:36:16] My first language wasn't Python and my first huge, stop was when I was learning C++, and I had to understand how a class works. That works the same in Python as well, but this was the thing that really bothered me for a long time. And I had to sit down with someone and have them explain it to me in five different ways before it clicked. Once it clicked, it wasn't that complicated, but there's something about like certain things they just need to click. And you need to hear the explanation in different angles, from different people for Python. I think my thing was decorators. When I encountered decorators, they were just, they were black magic to me and I, could use, I use decorators. I use them in and frameworks like flask, but I didn't understand them. I didn't know what was happening. I found a really good resource on it through Python discord. Someone linked me to a real Python article on decorators, a primmer on decorators, which I highly recommend. We should put that in the show notes as well. Cause it's excellent. And real Python generally to make really high quality articles. I highly recommend you check that out as well. That just completely made everything transparent. I understood how they work fundamentally and was able to start writing them myself and using them as a tool for checking. If someone had access to use a function, these kinds of things. And once I'd implemented a few of my own, then it was fine but there's a very tall barrier there that you have to cross, and it really helps to just have something explained and 10 different ways, Kelly Paredes: [00:37:52] Liam will appreciate that. Although he won't know what a decorator is, but I'm sure he'll pass us up. I'll send you the article. I found it. You'll have to keep an eye out for them. I'll tell you later who he is, so make sure he's behaving. Leon Sandøy: [00:38:05] If he wants to know about decorators, just have him come talk to me and I'll teach myself. Kelly Paredes: [00:38:09] He's hooked. He's one of my kids that I often quote in my tweets, he's the one that said, Oh, I feel so scummy. What did he say? He said something like the fact that he wanted to use functions cause he was doing too many Fords or something or no, he was brute forcing some code and he's like, Oh, I feel so scummy. I shouldn't have to brute force this, I should know how to do this. And I was like, Oh my gosh, I love you so cute. So How has being a musician made you a better programmer? [00:38:36] Sean Tibor: [00:38:36] switching gears for a second, you and I first connected over the PEP8 song, I think because I had posted on Twitter and said how amazing it was. For those of you who haven't seen it, we will definitely put it in the show notes, but it's a song all about PEP8 and the magic of it. We've used it in the classroom with our students quite a bit now because they may not understand everything that's in there, but it has enough of those little prompts and hooks and things that have questions about that. We can have a really great conversation about coding style and why it's important and why we write code for other people to read, not necessarily for the computer to run. I understand from some of the other interviews that you've done, that you have quite the musical background. In fact, you wanted to be a musician for quite some time and still are a musician, before you became a programmer, you were a musician first. We've been fascinated by people like Nick Tollervoy that wrote the music editor and comes from music education background, and folks who have really strong musical abilities and then are also great programmers. Is there anything about being a musician that helps you be a better programmer? Leon Sandøy: [00:39:38] Absolutely. I think that music and programming are much closer than people think. That a lot of people think of programming as this sort of dry technical discipline that involves a lot of like calculation and logics and maths, maybe. But, that's not true at all. It might be in some certain academic applications of programming, but most programmers are just implementing ideas. And I would say that programming is more like painting or music than it is like heavy maths. I've never really used that much maths in my 12 years of writing code professionally. Because a lot of that stuff's abstracted away, especially in Python and I don't have to worry too much about the low-level stuff. I'm working at a high level. I'm implementing ideas and combining them in interesting ways and adding my own flare to it and my own color. I think there's a lot of personality in code and it's the same for music. Of course. Another thing about music is that , if you want to get good at music, you make a lot of it and then you share it with a lot of people and then they rip it apart. Sometimes they're not even trying to. But they just can't help themselves. They say something that maybe was well-meaning and it's a, it's like a stab to the heart. They touched on something that you were worried about and anxious about, and then it feels terrible, but then you do it a hundred times and it starts, you start to build up this armor, and critical feedback feels more and more like they're doing you a favor and less like a stab to the heart. And after a while, you just get really good at listening to people provide some constructive or sometimes not even particularly constructive feedback about your project and just seeing it as like this pure learning experience. That's just genuinely helpful and wonderful. And I think I brought that with me into code as well. I love code reviews. It's my favorite. When someone does , a thorough. Brutal code review on one of my, pieces of code and teaches me all the ways that I could have done this better. There's nothing better. I love it. I just sit there and I pour over it and I try to bring with me as much of that as possible into future implementations. The Bravery of Making Things [00:41:46] Sean Tibor: [00:41:46] that's interesting. I never really thought about it until it made this connection until you were describing it this way, but there is definitely a lot of bravery in making things there's not a lot of courage and just consuming. It's when you make something, when you create something and you put it out for other people to see and to criticize and to rip apart, whether it's code or music or art, there's bravery in that you have to be courageous to be able to put it out there and have other people potentially pull it apart. But it's something that if you can learn how to do that it's what can help catapult you to the next level of being able to make things that much better or that much more creative or more interesting. It's hard for some people to do that, especially the first time. One of the reasons why having places like Python discord is really important where it has that support and the environment where people can take that first step of making something and , being brave and know that they're being cared for when they put it out there. Math Ability != Coding Ability [00:42:54] Kelly Paredes: [00:42:54] I had like three things. I had to write them down real quick. But while you were talking, I was like, Oh yes. Oh yes. First and foremost, the thing about code and math and you have to have these certain skills, we need more developers and more people out there in the community to shout louder to our college counselors or our people that are telling these kids in high school that you can't take this computer science class because your math grades are bad. This person is also that creative person that's been playing band and going away to concerts and playing instruments all their life . These eighth graders are these kids that can code beautifully, but maybe they're not as strong math students. We need to have more developers and more people out there in the business world telling the schools that just because their math grades are not as strong as they should be in order to get in computer science, that, that doesn't really matter that there are other skills that make you a good developer or a good coder.Code has Personality [00:43:53] That was one point I wanted to make on your comment. And the other thing about this personality, we were just talking about that today. I can read to students card games say they're designing a card game. They're both designing, say blackjack or go fish. I love reading their code because I can just see their personality come out between the naming of the variables, the way that they write it. I can see their logic and the thinking, and Things that I didn't even think about doing, cause I've been trying to do it very Python and they've done something in a different way. I just love that . I do concur that those creative people have a way of solving problems in a very unique way. That gives that personality and that things that we sometimes tend to forget when we get older, that there's a different way to solve a problem and you need to let that happen. The Importance of Critical Feedback [00:44:47] And then the third point was that idea of that critical friend, that person that, you were talking about who can really code review. It's such a great, it's so nice to have that mentor, that person who can tell you the truth. And that's Sean and I, we, we there's nothing that way we tell each other way too many critical. You shouldn't have done that and it, but it's nice and I don't take it offensively and it makes us a better person, a better coder, a better teacher. And so that's a good points, The only way it works is when you know that it's coming from a place of concern, it's not a place of malice. It's not a place of, I want to put you down. It's a place of, let me help you be better. , let me give you that feedback that you need to hear, and I'm going to be here to help you see it through Leon Sandøy: [00:45:33] Yeah, precisely. And I think that's actually one of the things that we've had to fight really hard to establish that truth in Python discord, because there are a lot of programming communities where. I'll tell you what you did wrong, but they'll do it in such a way that you'll never want to code again. And that sort of toxicity is at least when I was younger, it was rampant in technical communities. IRC was notorious for having this read the manual and don't ask stupid questions, attitude. We're trying to be the opposite of that. We don't want to be that community. We want to be a place where you can tell one person what they did wrong, but you have to do it in a nice and warm way or else we just don't want you in the community. Even if you're a super smart coder, that's not what we're into. We're looking for people who can ensure that not only do they understand what they did wrong, but they want to keep learning. They want to get better. And you're not gonna achieve that by being snide or arrogant. So that's been really tough, but that's one of the things that we've really managed to nail down. That's our culture has become so good at this and once you get that rolling, we have enough people with that attitude, it maintains itself. We don't have to actively fight for that culture. That culture is self-policing. All of our members are interested in maintaining that culture. So whenever someone comes in and they don't have that attitude, they don't last very long. How do People Get Involved? [00:47:00] Sean Tibor: [00:47:00] How do people get involved? If we have, a bunch of teachers that are listening to the podcast , and haven't really used discord before, how do they get started and how can they help the community along either by becoming a helper or, contributing to Python discord? What are some ways that they can do that? Leon Sandøy: [00:47:16] Well, we're always looking for people to get involved in our community. Of course, we have a whole system for that. It's actually A complicated hierarchy where we've got these helper set the bottom. they're involved in any manner of ways that you could be a strong graphic designer and you can come and make , icons for certain events or help out branding the next code jam that we're going to do something like that. Maybe , you're a video editor while we release content on YouTube. So we need people for that too. Most people of course, are educators in some way or other. They love to help out that they think that it makes them better developers that helps the people in the community. It's a great opportunity for them to network with the ecosystem because we have a lot of really smart people, especially on the staff who you can come and get to know by being part of what we're doing. So how do you do that? Essentially, the helpers are talent Scouts, so we're always looking , for talented educators, contributors of any kind. Even code contributors to our bot or whatever it is that you want to do, if you're in any way contributing to us, you're probably on our radar. And at some point that just triggers a conversation with, one of the admins or with me personally about would you like to become more involved in the community and how do you see that working out? What kind of role would you like to play? There are a lot of things beyond the helper role as well. For those who are particularly motivated, we have project leads that run entire projects like we've got someone involved right now in making this new YouTube series is going to be called hidden gems. The project lead is my friend Gustavo, and he's going to be putting out episodes where we highlight one of these like lesser known features of the standard library, short like three minute feature about something you may not know about. That's part of the standard Python library, and then we've got domain leads. So for instance Janine has the event lead role in our community. So her role is to work with events like PI week to set up advent of code and December, October fests in October, it's quite a bit of work to be event lead. And you report to the admins who have to keep track of all of this stuff. Then there's tons of moderators who help keep the community clean and then enforce our culture. That's just a job, but at that point are meetings every week. It's pretty hard to get that high up in that you have to like really spend all your free time on Python, discord. And most of us do. There's all sorts of avenues to get involved and all you really got to do to sign up is just go to a Python, discord.org and click the button. And then you're a part it's a download. You can get it on your phone, on any operating system. It's very easy to join. Sean Tibor: [00:50:04] Yeah, my wife has started asking me, what are you looking at all the time? Why are you on there? I'll laugh out loud at something and she'll ask me what happened. And I have to explain for five minutes about how we got to that joke and why it's funny. It has definitely just in the past few weeks that I've been more involved has really become a pretty cool thing and a nice part of my life now. So I'm pretty excited about doing more with it. Kelly Paredes: [00:50:29] I'm still a little bit of a Voyeur but, getting there I'm like, Oh my God, how do you keep up? He's like, just start from the bottom, scroll up. I'm like, Oh my gosh, I get stuck in reading and reading and reading. And I'm like, Oh goodness, Sean Tibor: [00:50:43] I Kelly Paredes: [00:50:43] don't dip. I'm like, I have to jump in. I'm in the deep end. Always. We talked about that. I always just jump in. , so we'll see how I contribute to that. I'm excited. Leon Sandøy: [00:50:52] It's a bottomless. Well, you can't just try to dive in. You have to just pick something that you want. There are all these, like micro-communities within the community, , to pick something you're interested in and then try to get involved in that particular thing. Sean Tibor: [00:51:03] Well, , we've gone longer than I was expecting, and it's easy to see why. It's been a great conversation with you, Leon, , and we're really glad that you volunteered to come on and talk with us about Python discord. Any educator should find a way to use it, whether to help yourself grow your teaching abilities, to get help yourself. Wrapup and Announcements [00:51:21]It's definitely a great place to go and just hang out and be with like-minded people around the Python community. So thank you for joining us as terms of announcements, as I mentioned during the one of the week, we do have the new teaching Python store that's launching this week and for our listeners, we're giving a 15% discount code. So I'll have that in the show notes for everyone as well. It's going to be at shop.teachingpython.fm and we're really excited about it. If you have feedback for us, new ideas for shirts or apparel or feedback about what's working, and what's not we'd love to hear it. It's our first time launching a store like this. It's kind of nerve wracking and yet we're having a blast putting it together. So keep an eye out for that. We are on Twitter at @teachingpython. We also have our website teachingpython.fm. If you'd like to reach out to us there. Kelly and I are both on discord now, so you can find us on the Python discord server, drop us a line anytime. I have some ideas too. I'd love to add , some things to the bot that you can get the latest teaching Python episode link quite with a bot command. So you may see more of my, ideas showing up in the discord server. I'm a little Kelly Paredes: [00:52:29] bummed. I didn't come up with a really cool avatar name. Mine's just my Twitter feed or Twitter name, so whatever, but I wanted some sort of cool name. I saw everyone else's cool name. Okay. Lemmosaur was taken. So lemme soar. Sean Tibor: [00:52:43] So Leon, thank you for joining us and people can find you on Python Discord. You're definitely on there more often than not when I've been Leon Sandøy: [00:52:51] absolutely. I'm pretty easy to find there. Sean Tibor: [00:52:53] It's been amazing how welcoming you are for a quick chat or a DM, just to catch up and say hello. Don't everyone to hit them all at once, but there are plenty of other wonderful people in the Python discord community to chat with as well. So for teaching Python, this is Sean. Kelly Paredes: [00:53:06] This is Kelly signing off.