Episode 43: David Amos Sean Tibor: [00:00:16] Hello and welcome to teaching Python. This is episode 43 writing content for asynchronous learning with David Amos from real Python. This week is part one of two where we're focusing on written content. Next week we're going to look at video content to help our students that are in a distributed or remote learning setting where they may not be able to ask you questions directly or interact with you on video or in the classroom face to face. So I'm joined by my lovely cohost, Kelly parade is, my name's Sean Tibor. I'm a coder who teaches. Kelly Paredes: [00:00:49] I'm Kelly Schuster for it is, and I think this is going to be a fun podcast today. Sean Tibor: [00:00:53] We're a little bit giggly. I think we're coming off of spring break and we have, we have our, our good friend David Amos joining us from real Python and PI coders weekly. Welcome David. David Amos: [00:01:02] Hi, thanks for having me. Sean Tibor: [00:01:03] Well, we're really excited to have you here. I know both Kelly and I attribute much of our success in learning Python over the last year and a half or two years to the work that you've done at real Python and PI coders weekly. and I know that you haven't written every word that has come from, from either of those sources, but we know that you've had a hand in a lot of it, and we've really appreciated the, both the style and the approach to learning that you've taken in both of those, positions to help people like ourselves. We're in a little bit of Python and learn it a little bit more effectively. David Amos: [00:01:33] That's great. That's really great to hear. Sean Tibor: [00:01:37] so we're going to start the same way we do every week, which is with the wins of the week, and we're going to, make our guests go first. So, David, you're up, the one of the weakest, something good that's happened inside or outside of the classroom. And I guess since we're distance learning, either we're defining the world as our classroom now, or none of it's the classroom. We're all locked out of it. So, go ahead, David. David Amos: [00:01:58] Yeah. well my oldest daughter, she's 12, in sixth grade. And, this week we started putting together a little like robot mermaid, using, the, circuit playground express from eight of fruit. and so we, I was kind of helping her, well, I, I did all the cutting out of cardboard with the executor knife, but she picked out the. A stensul, and how she's going to decorate it and thought through, how to code it. And so we haven't actually put it together yet, but she got really excited. and we, we started coding it, as well. and she did most of that work and had a lot of fun learning about, variables and thinking through that logical process. And it was just a blast to see her have fun doing that. Kelly Paredes: [00:02:40] You'll have to, share that link to us. And I'm sure Shawn's daughter will love to see that mermaid with the circuit Python. That's a good little project. And maybe Anthony would probably do it too with his daughters. David Amos: [00:02:53] I was going to say, the whole thing is going to have like a sparkly, like our hair's going to sparkle with some lights and the tail is going gonna move back and forth. so we're, we're excited to put that together. Kelly Paredes: [00:03:02] do they have like fiber optics or something or how's it working with the hair? David Amos: [00:03:06] we have little Neo pixels. so we're going to poke a little hole in the keyboard and the keyboard in the cardboard, and I can see where I'm scatterbrained as well, in the cardboard and poke the little Neo pixel through so it shines through is like, like a diamond sparkling or something. So, yeah. Sean Tibor: [00:03:23] It should be a lot of fun. so Kelly, you're up next. Kelly Paredes: [00:03:26] Okay, well, you know, we're on spring break, and I have to be honest, I haven't done anything with Python at all the entire week, but I had a list of about 10 things that I wanted to do, and I've done it. And one of the things was to, to put up the cushiony spots for. The kids and I just sit outside and read with a cover so we don't get burnt. And yesterday we had such a great afternoon. We sat outside and read for about two hours. My kids, they're nine and six. Granted, the six year old was drawing a little bit, but my sons, they were reading and it was just a nice, fun afternoon. So that was a huge win for me, that my kid sat still for about two hours. Sean Tibor: [00:04:06] Well, that sounds, that sounds really nice. Well, I had one of those milestone dad moments last week. that made me really happy to see my daughter learned how to ride a bike without training wheels, about a David Amos: [00:04:15] Oh, awesome. Sean Tibor: [00:04:17] it only happened because we were all at home and we needed stuff to do. So I said, it's time. We're gonna, we're gonna get her on the bike. And, you know, the thing that made me the happiest, just the look on her face, that feeling of accomplishment, that she had something that was scary for her for so long that was, gave her a lot of nervousness and uncertainty and her persistence and resilience in getting back up and getting back on the bike. And every time she fell down to get back up and try it again. And then when she got it, her face was just radiant. It was, it was amazing how. how happy she was. And then, you know, she's a little bit older. She's almost seven. so her balance was good enough that she's been, on the bike. Pretty much every day since then and had me on the bike with her. So we've written a probably 10 or 15 miles now in the last week, just, like almost every day on the bike. So it was a good dad moment. I felt really proud of her and then I realized that, you know, with a little bit more time I could probably get her a little brother on a bike also. but I'm going to wait a little bit. I don't want to take away her accomplishment for a little while, and let her just savor and enjoy the, the daddy daughter time. Kelly Paredes: [00:05:21] It's amazing what this, time, this, you know, social distancing time has done for families and I think for teachers to, and to get to be with their kids and to instruct their kids and to do the things that we love. It's just nice. I know that in my normal working hour, I would get up at four 30 in the morning. Just so I could go to the gym just so I could work a little bit, and then we wouldn't get home till about five 36 and just to be able to have that time, that we all took for granted. That's amazing. Well done. Sean Tibor: [00:05:51] it's a really great point, Kelly. I think it's an important time to be reflective and to think about, you know, what we're doing with our lives, what we're doing professionally, personally, the things that matter to us and, and for each person to come up with their own kind of idea of what this time means to them. So we're gonna start a new segment this week called the fail of the week. This is something that we were introduced to by Elena Aguilar last week. And really the point of this is to recognize the failures and reflect on them as well. It helps you grow as a person to think about the places where you failed, but also how you deal with it. So this part, we're going to focus more on recognizing the failure and have a little bit of fun with it. And spent a little bit less time reflecting on it, just so we can move on with our main topic, but I will, I'll go first. I'm, I'm actually gonna start with a. A hardware fail that I had. So I was trying to make some three D printed face masks for some doctor friends of mine or face shields, not the the breathing masks, but they're just a like a plastic shield. And I was trying to print on transparency, film the pattern that you need to cut to make it fit on the face mask. And I kept getting these paper jams in my printer because the transparency film as it was going through, we get stuck or jammed or whatever. And so I was trying to clear one of these. Jams from the printer and I mistook the transparency film that was, that I thought was stuck in the printer. It was actually the transfer belt, the part that like actually transfer the toner onto your. Onto your paper. And so I was like, Oh, I can't get this out. I'm going to have to like cut it out of their site, sliced through the transfer belt. And as soon as I pulled it out, I'm like, Oh no, I cut the wrong thing. So I ended up breaking my printer for about a week at a time when it's really hard to get parts shipped quickly. but I got something off of eBay and got it back in and fixed it. and got it back up and running, but it took about a week to get it in, and it was just one of those moments where I knew as soon as I made that cut that I had done the wrong thing and failed on it. So luckily, not too expensive of a mistake to fix, but when I would've preferred to avoid. Kelly Paredes: [00:07:48] yeah, that's an Epic one. Sean Tibor: [00:07:50] Yeah. Kelly Paredes: [00:07:51] All right. My turn. Sean Tibor: [00:07:52] Yeah. Go ahead, Kelly Paredes: [00:07:53] So last Friday, Epic fail. under pressure. You know, being a new coder, I always kind of, I don't know, coding in class is a little bit easier. I felt I make a mistake. It's not a big deal. I tell the kids, you know, don't worry, I'll get there. And I'll either look in a book row, cook quick, or look online and the kids can't see that I'm looking online while I'm coding. But on Friday, I was trying to free code kids asked me to code something and we were recording on zoom and I was just like, Oh no, that's not how you do. and I froze and I couldn't remember, and it was such an Epic fail, but I was just like, Hey, it's okay. I'll post it later for you guys. Don't watch the recording. It was a waste of your time. Just move on. And so as soon as I hung up, then I stopped recording and I was like, Oh yeah, I remember that's how you` do it. That's why it wasn't working. And it was something. So it's easy, but Hey, that was a fail. We can't remember everything. David Amos: [00:08:46] It always works that way. You're, you remember later, like, Oh, of course. That's how you do it. Sean Tibor: [00:08:54] All right, David, you're, you're up. David Amos: [00:08:56] yup. My fail of the week is, we were, I was having an as somewhat important, video conference, a couple of days ago. And, everything had gone really well until about an hour in, my four year old came in and started. Basically throwing a temper tantrum in the background during this call. And, you know, it's not, I guess it's not so much a failure. I mean, four year olds are going to do it. It's going to happen. but, I didn't, I hadn't really thought through like, how am I going to handle that? when that happens and what am I going to do? And so it was a really kind of awkward and difficult situation to make it through, while she's screaming in the background, and I'm trying to talk to three other people on, on an important topic. So, I, I, I would say I still haven't come up with a great solution for that. and I do take comfort in knowing that I think parents all over the world have, you know, five years in, under six years and under are all kind of going through that same experience and trying to figure out how to, how to manage all this. Kelly Paredes: [00:09:56] Absolutely. I would bet some people with teenagers are also dealing with stuff like that. I think it's any parent right now. A funny, well, that wasn't paint. That was painless. All right. I'm with the show. Sean Tibor: [00:10:11] I don't want the show. Okay, so let's do, let's do an actual introduction of David Amos. I'm not sure that everyone's familiar with the work that you've done, but I know that I've seen your name on a lot of different articles that I've read over the past year and a half. A lot of things that have helped me learn and grow. but you know, David, I'm just going to do a brief intro and then maybe give you an opportunity to talk a little bit about how you got into Python and how you got into this role that you're in now. Is the content technical lead at real Python and one of the curators of PI coders weekly. So, so it sounds like you started with, applied mathematics and computer science, as your starting point in, in college. and then over time, you know, moved towards a, a PhD, but then. From there went into, more of the technical side of things out of academia. And you've been writing now for, for real Python and for PI coders for a couple of years now. David Amos: [00:10:59] Yes, yeah, about two years. Sean Tibor: [00:11:01] And so, some of the, tell us a little bit about some of the projects that you work on in Python, like some of the code that you write or some of the things that you're working on outside of your, your technical writing role. just so we can kind of get a feel for the things that you're interested in. David Amos: [00:11:14] so I'm still really interested in mathematics. that's been a passion of mine for, quite awhile, for over 10 years now. which is why I was. Hoping to get a PhD in it at one point. the project that, it's not very active. I don't have a lot of time to work on it, but I have a Python project, that I call grin PI, which is graph and variants in Python. It's really, Heady, I guess. but it was related to research that I was doing, in college and in graduate school, for calculating properties of these things called graphs. and that's something that I really enjoy. It's, solving a lot of like linear optimization problems using different packages in Python. and, that's, that's something I work on occasionally outside of work. but, beyond that, I think, you know, currently I've gotten really into, programming hardware with, with Python and just tinkering with, the eight of fruit stuff and playing around with that. I haven't completed any big projects yet. but, now that we're at home and I've got my kids with me, it's something where we're starting to do together, which is a lot of fun. Kelly Paredes: [00:12:17] did you get into it, into the circuit Python from your free circuit Python from PI con? David Amos: [00:12:22] I did. Yeah. Yeah. That was kind of what kicked it all off. Kelly Paredes: [00:12:25] I think a lot of people got hooked on the circuit Python after that conference. It's a fun little toy. I know Sean loves it. I have a love hate relationship with hardware, so. Sean Tibor: [00:12:37] Nice. And, but you know, one of the things that I really like too though, David, is, , your writing is not focused on all of the, are not just focused on all the advanced topics, right? Like the math stuff. A lot of the work that you've done has been focused on kind of the introductory and intermediate level Python stuff that seems to be focused on helping people kind of either get started or take their coding to the next level. So, how did you get into that kind of writing? You know, we'll go over the last couple of years, like, where did that start? David Amos: [00:13:06] well, you know, I think. I, I say that I sort of accidentally became an author. it was never something I aspired to become or, get involved with. I've enjoyed writing. for a while I, when I was in college, I had to do a lot of writing and I enjoyed it and found that I had, some of a talent for it. At least according to some of my professors. but, I was doing a lot of writing for mathematics, and one of the things that really bothered me with the books that we were reading and the articles that I had to read in mathematics was it was really hard to, it was always written from like, this. Like pedestal where, you know, they were making a lot of assumptions about what you knew or what you were capable of coming up with. quickly. like I remember, reading, a paragraph in this book that I was, reading for a project I was working on in graduate school and it had a. A sentence. That's something like, you know, it showed you some equation and said, and clearly this follows from this and that, that this clearly to the, this follows from, this took me three hours to figure out. And it was like, that is not clear at all. Like maybe it is if you know, if you're an expert, but this was not clear. And. So I started just noticing that there was this trend in academic writing to be really, just I guess academic, if that, I don't know if that's the right the right word, but, It, it really bothered me and I felt like we could do a much better job of writing, even on tech, very technical and advanced subjects in a more approachable way. and so I started thinking about how to do that and what I wrote, I have, some papers that were published in academic journals and, we were writing a lot of stuff in graduate school was you had to. You know, we were doing math, but you weren't just turning in equations. You were turning in papers that were written with, with proofs and everything. and so I just started kind of adopting this style of, I'm just going to explain, put a lot of detail in and be gentle on the readers to try to. Bring them into that and, people really liked it. so, I th I thought that was kind of neat to be able to sort of bring that and kind of get people thinking in that manner about writing, after I left academia, which, is a long and involved in story that we don't really have to get into. So after I left academia, I got a job, with a company that was building, building and designing audio visual systems for large corporations. And I kind of fell back on my computer science, a minor on the, at that point to get a job, programming in, these, these systems. And one of the things that the owner needed kind of randomly at one point was, Hey, I'm really busy and I've got to put together this proposal for our client. Would you mind writing this project proposal for me? I say, yeah, sure, I'll give it a shot. So I put together this proposal and he loved it. And the, the client, I guess was like, wow, this is amazing. Like, I understand what everything is going, you know, this is going on here. And so I started. I took on that, that role of writing these proposals for clients. and you have to kind of, you know, we're designing a very technical system for someone who knows nothing about it and is relying on this company to tell them what they need and why they need it and why it makes sense and why they should spend, you know, so much money on this thing. So, that was really kind of, I think where it started, where you're trying to take these high level technical concepts and explain to somebody why they matter. To someone that knows nothing about them and is not interested in knowing any, anything about them other than why they should spend the money on it. so that was like a really interesting exercise. So after, after a few years at that job, I, I, I spent a few more years working, different tech jobs for different companies around, around Houston. and I'm not really sure how it happened. I think. At one point I was trying to find some information about something in Python. I was doing a lot of data analysis, data engineering type work for a company. and I, I came across, I must, I don't remember this explicitly. I must've come across one of Dan Baders articles on his. website debater.org and signed up for his, email list. I have no recollection of actually doing this. but I do know that I was getting his newsletters, so I must have, must have done it. And at some point I found, an email in my inbox that, from Dan saying, Hey, I'm hiring. And, I opened it up and he said he had recently acquired real python.com and was looking for authors. and I missed writing at that point. I hadn't done it in a while, so I just submitted an application, send him some, I think I sent him writing samples of like, some of the academic papers I've written, cause it was really all, I couldn't share any of like, you know, project proposals or anything. So, so I, I sent him that and he got back to me within a couple of days, said, Hey, I want to give you a shot. Let's, You know, pick a topic and write something on it. and he had a Trello board of like some, some approved topics that he was interested in having people write on. And the first one I picked was, how did you speech recognition, with Python? And that's kind of where the, my whole journey at real Python started. So, I don't know, I wasn't really expecting to even join the team or even hear back from Dan when I got that email. But, here I am two years later working for him full time. So Kelly Paredes: [00:18:25] That's fabulous. I often see those emails from Dan and I always think to myself, well, if only I had the time or the ability to write so clearly, as you guys do, it's a, it's a great accomplishment to, to put out, cause there's a, it's a long list of information that comes out on those tutorials and we really appreciate them. Sean Tibor: [00:18:44] Thanks for the backstory and the context for how you came to this. there's a lot that we recognize and appreciate about that journey and about that approach and philosophy to writing. . I'm going to share something. that I found that I really crystallized a lot of this for me and it was around this five levels of remote work. So it was in a medium article and it talks about how, there are five levels of remote work in this article and why organizations are probably at level two. So the five levels, like level one is non deliberate action level two is recreating the office online. Level three is adapting to the medium. Level of four is asynchronous communication, and then level five is Nirvana. So I am not sure exactly if anybody's ever made it to level five, but it sounds nice, right? but for, with my corporate background and the work that I did in business, I was working remote for a number of years, at least three to four days a week out of the office. And then a couple of days in the office and I, there was a lot here that resonated with me. And one of the things that this article talks about specifically is the importance of written communication. And the level two type organizations are the ones that are trying to recreate the office online. So these are the ones that you see that are having zoom meetings where two people are talking and 20 people are listening, right? Or where they're, they're having, you know, the water cooler zooms or they're, you know, not really sending out emails so much as they're sending out just the same sort of stuff they've always done operating as though we're all just distributed. And the office is, Somewhere else and we just all have to be remote at the moment. When they talk about the importance of written communication, that gets into this whole idea of asynchronous communication that people should be working when it's most appropriate for them to do so. And that meetings and time spent live. It should be focused on having conversations or we're just two or three people need to actually have a conversation and make a decision, and that those meetings should be short and infrequent. So what I really liked about this was this importance of written communication, because that's something that I've always . I appreciated it and valued. And as it as we're teaching now, we're looking to impart some of this knowledge about or help our students learn how to use written communication to their benefit. So Kelly, maybe you can talk a little bit about this, cause you spent a lot of time on reading comprehension and helping students read, but there is a difference between reading for pleasure and reading for regurgitation and reading for comprehension and re application. Right. Kelly Paredes: [00:21:22] Yeah. I was sitting here, I was thinking, well, both of you were talking, and I'm trying to picture as a teacher when we write things, when we develop our worksheets or tests, or maybe, you know, a science teacher would develop a lab. Those items are so isolated. We usually introduce those items with explanation, to the students. We give them a little bit of background about what we want to do with the worksheet, but we don't really write a book or something that the kids can pick up and read from front to back. So last year I started looking at certain things about kids learning how to read online, because a lot of our philosophy that Sean and I believe is that the kids can actually. Learn Python by themselves. We're just like good teachers who facilitate the opportunity for them to learn, and we struggled a lot. We struggle a lot with the kids actually going to a real Python article or not even a real Python because they didn't have access to a lot of them, but so an article for kids or a book and the kids don't really understand how. We're an understanding now they're getting better, but weren't understanding how to read from top to bottom, left to right. And it was mostly because the information was so thick and so dense, and typically it was above their level of understanding. And so we played around with a lot, and I used to write some articles and and reduce them, but I've never written an a whole curriculum for students. As in I gave him a curriculum to read, so it's been an interesting topic that's been going through my head for about the three weeks that we've been teaching online. How do we do it? How do we get it all in writing and make it asynchronous? No. Sean Tibor: [00:23:11] . so David, one of the things we wanted to talk to you about, the conversation that we really were excited to have with you is about writing for learning. So how do you write things in a way that people can understand them? How do you write in this way that's asynchronous so that if someone's reading it. Tomorrow, a month from now, a year from now, that they can still get the information out of it. They can learn something new and novel and be able to use it and apply it. So, you know what, what we have in mind here for this conversation is really just some ways that we can start to think about this a little bit differently than we do in the classroom or when we're in our normal, positions as, as teachers or as educators. And start to look at this along the lines of how can we make better asynchronous communication. That people can use when we're distributed or when, and maybe we, even when we returned to school and we give students more opportunities to think and learn asynchronously rather than just the time that they spend in our classroom. So we've come up with a couple of questions maybe that can help structure this a little bit. and, and Kelly, I'll let you kind of lead this part off. but the idea was, is really just how can we become better writers or more effective writers as teachers that help people learn? Kelly Paredes: [00:24:21] So like I always do, I go to the internet to seek my advice and I found a really great book. I want out of all the many that I was reading, but it's called humanizing online teaching. And I was talking to a parent this morning across six feet distance, so social distancing. and I was saying, I think I miss the whole connection with the kids when I'm online, but from what my understanding is, and what I get from Rio Python is when I read some of the articles, I feel like the author is there. Kind of holding my hand, helping me to understand, small concepts. I would, and there's a chapter in this book that's called, let's talk effectively, communicating with your online students. And there's a bunch of things that I listed. but one of the takeaways that I wanted to start with as good teaching is good teaching. You know, it may require more thought and a little bit more work on the front end when you're teaching online, but at the end of the day, good teaching is good teaching. So we'll start with that. I don't know. David Amos: [00:25:28] so I've never been a, a professional teacher, but I did, when I was in graduate school, I was a teaching assistant. And so I taught in a classroom. I was teaching. I taught the first two semesters of a, I shouldn't say I taught, I was the assistant teacher, but I taught a lab and like a group problem solving session, for, calculus for engineers, the first two semesters for freshmen at Texas a and M. And you know, I think, yeah, there's a lot of, similarity between what it takes to be a good teacher, whether you're doing that in front of a class or you're doing that on a zoom call or you're doing that in a written format. But for me, the big difference between say, writing or standing at the front of a classroom and teaching is that there are zero visual cues for your audience to go off of, is students. Aren't looking at you. So, hand gestures can't, you can't use those to, articulate something. you can't quickly draw a diagram to help explain something. I mean, I guess you create like a diagram electronically and include that as a, as a picture, but, and, and you don't have that face to face interaction where student can raise their hand and interrupt you and ask a question real quick and you can help, help clarify. So, I think. With writing. The real difference is that you have to write preemptively to try to anticipate what, what the pain points are going to be, what questions students are gonna have. and that can be one of the most difficult parts of it. You really have to try to put yourself in the mind of someone who's just seeing this stuff for the very first time. and, that, that can be a real challenge. Kelly Paredes: [00:27:09] Yeah. You said something earlier about, and I really like this. I wrote it down. a lot of S explanation and be gentle on the readers. I mean, I teach sixth graders, they're 11 and 12, and they're seeing Python for the first time. We just, they've been coding for four days. So as I'm trying to take apart, you know, four loops. Or while loops or conditional statements, I'm, I'm really trying to think about how am I writing this for an 1112 year old? And it's definitely, I use my facial expressions and my, my sarcasm and my coding along with them as a default sometimes. And it's, it's been, that's a good advice to kind of think about what they don't or won't know. David Amos: [00:27:55] Yeah, it's, it's an interesting exercise to sort of see if you can rid yourself of those, biases you've, you've built up over the years of just doing something. you know, when you've been coding for 10 years, it's difficult sometimes to remember what, how painful something was the very first time you saw it. and you know, I think when you're in a class. Full of kids or young adults or adults even. You kind of get to see that pain every day. So it, it, it's visual for you, but when you're writing and you're not in front of them, it's, it takes a lot of, I guess just, you know, you have to be an empathic and just really spend a lot of time just coming up with the scenarios. And what if, if you didn't. No, something. What kinds of questions would you be going through your mind? and so, you know, for me, some of the things I do is if I'm too close to something, to where it's difficult for me to sort of step back and think of that, I can try to frame it in a different way, or maybe like if this were a different topic, but somehow similar. Maybe that makes it easier for me to try to kind of come up with some of those, those things that, that I would be what would be going through my mind while I was looking at this. So, but it's a, it's definitely something that just takes a lot of practice and a lot of thought. And I don't know that you ever truly master it as much as you just kind of slowly get better over it. You're better at it over the years. Sean Tibor: [00:29:21] Now do you get to, do you get to test your content with people who haven't seen it before? Like do you get to put it out there and say like, Hey, try this out. Give me feedback. Let me know what makes sense, what doesn't, like, how do you, kind of get that initial review from someone who doesn't know the topic as well as you do? David Amos: [00:29:37] Yeah, that's, that's a really good question. So at real Python, we do, now this is, I realize not everyone, if you're writing for a class, you know, if for you guys, maybe it works because you have each other you can bounce ideas off of. But, but it real Python, we do an author. Presents an outline for the topic that they want to write on, and that outline gets reviewed, by someone on the team and they say, I think the structure makes sense or doesn't make sense. maybe it would make more sense to talk about some concept before the other, or they just kind of look at the structural, and this is before any, they've written a word of the actual article. It's, it's purely an outline. and I will say that is something that I've been doing. For a long time. this idea of writing an outline before you actually write an article, is, is actually the way that I write it. Everything starts as an outline. and then the outline. The sections of the outlines slowly start turning into paragraphs, and it just kind of grows that way. But, going back to the, the review. Yep. The outline gets reviewed. and then from there, the author writes their article, writes their, their, We don't like to call it the draft, because what we try to encourage writers to do is, give us what they consider, like their best effort. Like this is, I would be comfortable having this published, as is. and then once they're at that point, they submit it for a technical review. And I remember that's kind of where I step in. I've meeting the team of technical reviewers at real Python. and someone looks at the, all the technical aspects, is everything correct? It's kind of a fact check to make sure we're saying things that are true, and not inadvertently lying to anyone about something which, which can happen. I mean, sometimes you make an assumption about the way something works, because the information isn't easy to find or readily available. But, but someone with a little bit more knowledge might, might know that or just have better look Googling that for you, which can happen. So we've, we look at it from a technical perspective and, go through a whole feedback process there. you know, bouncing ideas off each other, asking questions, why did you do something this way? Does it make more sense to do it this way? and some of that is similar to like a code review that would go on at like a, like a software company. but some of it also is, is not. It's, it's really just, helping them take. Make sure they're presenting those technical aspects in a, in a manner that's easy to digest and easy to consume. after that, it goes to a didactic review. Phase where, someone takes a look at it, from, the perspective of how well does this work as a piece of educational writing. are we, phrasing things properly? Are we making good use of visual AIDS like tables and diagrams and things like that? and there's, some feedback that goes on there. Author makes edits. And then from there it gets a, like a, like a proofreading before it goes into, into publication. But yeah, there's a lot. I mean, you go through three rounds of feedback before an article actually gets published there. and I think that is something that has been real important to our success, at real Python and making sure that, the articles are kind of, consistently, high quality. But as an author, it's also really important to have someone do that. And you know, you don't have to go. We have, you know, a very formal process at real Python. if you're writing for a different audience, you don't have to have that. Much of a formal, formal process. and I, I do want to say as well, when, when we're looking at these from a technical perspective, the person that's doing that technical review is not always a technical expert on that topic. Oftentimes they're less of an expert than the person that's actually writing the article. which is beneficial because it allows them to. You might brush up against some of those questions that you wouldn't think of as, as an expert. so, that's always, I think, kind of key to giving it to someone who, is closer to the beginners, or closer to the level you expect your audience to be. and reading that for you. Sean Tibor: [00:33:42] Gotcha. And then, you know, without sharing any, any secrets or anything, but how do you. How do you know once it's published that you have an effective piece of content, something that is helping people learn? do you have metrics or things that you can look at? Are you looking at the comments that people leave or emails or questions that you're getting, you know, how do you know that it's working once you've got it published. David Amos: [00:34:02] Yeah, that's, you know, we, we do have like some analytics, like Google analytics stuff. I don't know how much that really tells us about how effective something is from a learning perspective. Maybe from like an SEO perspective, it's kinda, you know, helpful there. But, from a learning perspective, we do have comments at the, at the bottom of each article, people can leave feedback for us. and we get notified of those comments in a, in a Slack channel that we use. I think that's. Primarily the main, feedback mechanism on that. and people do leave comments for us when we have articles that have, you know, 150 comments on them, 200 comments on them. and so, that's where most of that interaction happens. when I first started writing for real Python and I had never really had something out that was that visible. I mean, at that point, most of the people that had been reading stuff that I had written were like, you know, the 10 other mathematicians in the world that cared about something that I had written. So now, you know, you have stuff being read by thousands of people, each week. And, people. I did not expect how open people would be about, both the good and the bad. I mean, a lot of people just leave you by like, wow, I really liked this article. Thank you so much. I kind of expected mostly negative feedback cause I felt like people that enjoyed it would probably just really like, wow, that was good. And then move on and, and not say anything. But, we've got, we get a lot of, we get a good mixture of both, positive. And, Actually, we don't get a lot of negative feedback. We get some, you know, like constructive criticism. I would say, the, the, just the, you know, the actual negative comments are pretty rare, which, which is good. the criticism is not, and that's, you know, people find typos or, or say, wow, I didn't understand this section at all. that wasn't clear. And, sometimes we can go back and fix that. Sean Tibor: [00:35:50] it seems like there's a lot of like, strengths of the medium here, right? That, the fact that we're, the fact that we're publishing online, we can, you know, we can see here's something that needs to be changed. We can go change it. I am publish it, and it's not like we're, we're have a print edition of a book or something like that where, you know, once it goes to press, it's out. This gives you the opportunity to update it, especially as like a lot of the underlying libraries and things change that you might be relying on. Right. So our articles in the technical space become obsolete over time too. So I think David Amos: [00:36:22] Sometimes very quickly. Yes. Sean Tibor: [00:36:26] depending on the area right. Kelly Paredes: [00:36:28] Before we go onto, cause I want to touch back on the medium too, but I kind of, my teacher brain is, I wrote down notes as you were talking, kind of thinking how a teacher would process almost like the real Python people process things. But I really liked the idea of making an outline. A lot of us have this curriculum and we think that we assume that these topics are our outline or our teaching moments, but they're not. And, I like that idea of outlining, taking the small chunks as a computer science teacher just to go, how am I going to teach? And I go back to the basics cause I teach the basics. How am I going to teach conditional statements and make that outline of where I want them to go right now I want my kids at in three weeks to code an ice cream social invite. What does that entail and how do I prep them? So I liked that the revision. I think. We turn out information as teachers so quickly. That's one thing where we fail. I think I do at least have of really taking the time to revise. I read over my work, but sometimes it's like a glare and I miss these, those huge mistakes. And you don't really have somebody to revise. Sometimes Sean reads stuff. I know when I had to write an article, I send it to my English teacher and they make it look partier. But during this online situation, everyone's so overwhelmed, we don't really have that opportunity so. David Amos: [00:37:50] Yeah. Yeah. I mean, touching on, on the revision, again, real quick, something that, that I've done since college. and it took me a while to sort of figure out that I had to do this. but you know, I think when I started college, enrolled really in high school, so. When I wrote, I was kind of a last minute writer and you know, if I had an assignment, a paper I had to turn in for English class, you know, just like get it done and then okay, it's done. Turn it in. And I wouldn't really go back and look at it. but over the years, one of the things I've started doing is making sure that before I have to turn something in, finish it with enough time where I can sleep on it. At least one night, I prefer three or four and not look at it for several days, and then I can come back and reread it. because at that point you, you know, your mind has shifted to totally other things. You've, you've had time to sort of forget the things that you, that you wrote. and you'll come back and things will just jump out at you. Like, Oh, that sounds awkward, or that's not what I meant to say. So that is a, I guess a technique that I think is, for me has been really important and making sure that, when I'd finally turn something in or present something to somebody, it's, it's at the level, or it has the quality that I, you know, envisioned it having when I, when I finished writing it. But it probably didn't because I was too close to it. Kelly Paredes: [00:39:18] That's a, that's a really good point. I was thinking also when you guys were going into the fact checked, I know a lot of times as teachers, we go in. Steal, borrow, things offline. And I can imagine a lot of computer science teachers are out there scrambling and trying to find code and put it in for the kids. And I guess the fact checked is actually seeing if it works on the application that you're using. For example, Sean and I were like, let's go do PI arcade, or not PRK, but our arcade library with our students last quarter. well their version of mu wasn't working. And then we're scrambling and a whole week of learning. And that was our, we took ownership of that to the kids to not stress them out. But, we assumed that our mu, which was working perfectly in class, you know, we had a little bit of issues here and there. It wasn't working for the kids in our on our last quarter. So fact tracking, really code reviewing and doing the code before you put that out for teachers. And then the last thing you said is. The didactic of it and how well does it work? Unfortunately, we get 20 million emails from kids, or can we zoom? I don't understand what you're talking about. So luckily we get a lot of great feedback, but in my point to the teachers would be, instead of just forgetting about that assignment, go back. And fix where the kids are questioning or or confused and try to clarify it because what you right now could be very useful, like Sean was saying later on or next year or another resource for the kids. So that was what I got out of your real Python techniques. Thanks. David Amos: [00:40:55] Yeah. The revision is really important because you know, the idea of perfection is. know, I don't think it ever, it actually exists. It's like, for me, I've always thought of it as some sort of, again, going back to like my mathematician brain as this limit that you can never actually reach, but it's this goal that you're trying to, to get there. and. You just have to iterate on it. And, that's something that, I've learned, from Dan at, at real Python a lot is this idea of, kind of this release early and released often kind of mentality, where, you know. It needs, you want to have some baseline quality, but it's better to get something out and get it in front of people so you can get that feedback. And then when, once you get that feedback, then you have to act on it and improve it. so you kind of, there's kind of this continual cycle of, of revision that goes on, with, with this stuff. and, you know, for our articles, it's, it's not. Super frequent at Roe Python, but I think for a teacher, for material it could be, I mean, I know it's hard to find time and it is time consuming to go back and and make those revisions, but if you could just collect that feedback and then, you know, every couple of weeks, go back and, and just pick away at some of it and see if you can, you can improve it, then that's a, that's a big step in the right direction. Sean Tibor: [00:42:18] I think that, you can, if you can make it part of the process, right, so that it's part of your teaching process. It's a step that you, you add to it so that each time you do it, it's not a huge amount of effort, but it happens regularly enough that it, the effect becomes cumulative. Right? So for example, one of the things that that I just started doing this past week was I have the same students asking me the same questions about some of the problem sets that we have in our self paced learning platform. And so I'm getting the same questions over and over again, and I know where they are. So why should I, you know, why should I do this as a live lesson? My improvement, or my iteration is to do this as a screencast. So the same guidance that I give to students each time is now a screencast. And then from that point, it's going to turn into something written that anticipates better, that they're going to come into that difficulty. So that process of going from. I'm seeing the same thing a few times. I'm now going to refactor this into a screencast, and then I'm going to refactor it again into written content. is something that I think fits very well with, you know, a writing process and teaching process and software development. Right. David Amos: [00:43:24] Absolutely. Kelly Paredes: [00:43:24] So was one of the things I know a lot of our teachers and including myself, were, were doing these screencast and, and I like to just code along. I've been having zooms every day because to be honest, it's easier to have the kids code along with me, but I think like I lose. The momentum, I could easily move them along faster if I have some written communication. But you said something about the zero visual cues, and I think that's why I always default to the two zoom meetings or screencasts and that personality that comes from me and teaching. And you know, the, the fun moments, all the things that I think are fun and how do I get that out on writing? And I noticed that. You guys have a tendency and it's with all your, their writers. There's some, there's a lot of personality with each author. Do you guys have. Like tips on how to get personality out. I mean, I read the articles and they're not boring articles, and I guess that's why we love you guys so much. I mean, what was it, sort and sorted, who's gonna read an article about sort and of I did. I thought it was good. I don't even know who wrote it, but, how do you get personality in writing. David Amos: [00:44:39] that's, that's a good question. It's, it's tough. I, I sometimes wonder if. My writing lacks personality. so I'm glad that you think that it does, that it has personality and that the authors that reply them to something that has helped me though with that is, a technique that not really sure. When I started doing it, I, I th I want to say a professor. I had a, I had a really good professor of writing, in college that had been a technical writer for, Texas instruments actually. and. One of the things that he told us to do is to read your writing aloud to yourself. or something you can also do is if you have like a, a text to speech on your computer, you can actually have your computer read it back to you. but hearing it aloud and not just in your head, I think goes a long way to help you. Noticing where you could sort of inject some personality or, you know, seeing where things sound kind of awkward or boring, or just, you know, be a joke, falls flat where it didn't in your head or, you know, stuff like that. So, I think that's a good, a good way to start to do that. and get practice with that or give it to, you know, a partner, a spouse or someone and have them read it to you. Kelly Paredes: [00:45:56] I never give it to Sean cause he, he always, he always like marks up my, my writing all the time. David Amos: [00:46:05] But yeah, that hearing, hearing your writing read aloud, I think is, a pretty key, at least it has been for me. and that aspect of, of putting in that personality cause, yeah, just hearing it, it's like listening to an audio book, right? I mean, That's, you know, you can, you can see whether or not that stuff, I mean, there is some interpretation that happens there, like who's reading it? Are they reading it? Monitor and in a monotone voice, are they adding a, but I think what it gives you is some indication of whether or not the way things are worded sort of nudges the, the reader to sort of add that intonation or that influxion while they're reading it. So, Kelly Paredes: [00:46:44] And I also want to touch base on like the whole, going back to where Sean was going to the medium, the way that it goes, how we produce the information. One of the things that real Python has is just like a larger font. some headers, the video clips, It's hard as a teacher, any tips on just how you guys do it with your article layouts and stuff that you want to provide. David Amos: [00:47:10] I think a lot of that kind of comes through the, the revision process as more and more people look at it and put their eyes on it, we started . Notice better ways to lay things out. but I, I will say one of the things I've really learned working with the editors at, at real Python is, you know. Lists of things can, are a good way to present, topics. And there's a, a technique with that that I've kind of been experimenting with recently. I guess this is really kind of given away some sort of secret sauce, but it's, I mean, it's not really anyone could come up with this, but, if you have like a bolted list of, of items, that you're, you're, you're trying to present, I mean, first of all. If it's only two things, you could probably just do that in line and not separate it out into a list. But as you know, you have three or more things in the list that you're listing out for someone. you can put them in a bolted list. and that. That spaces out each word vertically and makes it easier to sort of concentrate on that one thing and not sort of buried in a sea of other words that you're trying to have to kind of parse, visually. and then on top of that, you can bold the key term in a list and then add some additional, like a, a paragraph in that list item a. And that is a really. Kind of neat way to present this, like, like if you're trying to describe something, there's like, you know, five steps to this thing and you're gonna have a bullet list of each of these five steps and you can have, you know, the list of them. And, and one thing I try to avoid is the whole like, step one being what's bolded, right? And then describe what that is. Step two, that's sort of a good mental breakdown of how it works. But visually. It does step one doesn't tell you anything, like, give the step a name. and like what it is like, you know, installing necessary, packages, you know, or setting up your editor or whatever that first step is, name it, and then, make that bold and then, you know, followed by like a colon or something, and then a paragraph of what that is. so I guess. The reason I'm bringing up this example is it, it touches on some things that, that I've really been trying to focus on in my writing is you want to. You kind of want to assume that readers are lazy and they don't really want to read what you've written. And so you need to make it easy for them to just kind of scan the page and still be able to get the key points that they are supposed to get from that. and then give them the option to go back and look at that in more depth if they, if they want to. because I think. I don't, I think it's just kind of natural. I mean, I think even middle-schoolers are going to do this when they're presented with written content. If they can't easily scan it and see. What the key points are, then it's just going to be, it's going to look like a, just a wall of text and they're going to be demotivated to actually read that. And so I don't, and I think it's just the way our brains and our eyes work. We just kind of want to, we want to be able to scan over a page and see if we can just kind of glean that as stuff. So if you can, present it in a way so that the, like the way you, you make. The way you, you write your headings, the titles that you give sections. don't write, just, you know, section one or section two, section a, section B. Like that's really not helpful. You know, give each section a name where if you could, if all you did was read the section titles in your, in your document, it would already start to tell the story that you're trying to tell there. And that. Like if that's all they looked at, they would be like, yeah, I know what that's about. And then they could kind of go back and fill in the gaps with the, with what they need. So hope. Sean Tibor: [00:50:58] you can, you can really see that come through in a lot of the articles, like I was just skimming over. I was just scanning through this sort versus sorted article, just to be able to maybe come up with a few guidelines or, or general rules. But one thing that struck me about this is that there's no place in the article where there's more than. Five paragraphs of text without some sort of list that breaks it up or some sort of code sample or diagram in there that you know, that what's the reader breathe a little bit, right? Like the text has to breathe. You have to catch your breath. You can't just, you know, have this, this long running, set of texts without some opportunity for a break visually. and so you can really see that come through because then you know, your or your content is better organized. It's easier to scan. It's easy for people to find the information that is most relevant for them. and to your point to be able to dig into it deeper. So I think that that's one of the things that, that comes through really nicely with well-written content, especially content that's designed to be consumed online. Is to have this, kind of giving the reader frequent breaks and mixing in the content. and you know, even the, the paragraphs that are here, none of them are more than two or three sentences at most. Right? David Amos: [00:52:09] Yeah. Sean Tibor: [00:52:12] and easy, easy to access. The other thing I was gonna add that I thought was really good also, and this is something that's really great for online content, is just having the right number of hyperlinks and and intentional hyperlinks. So for example, if there's information that people need to know, prerequisites, it might be useful for. Digesting this article and understanding it, it's, it's called out at the beginning to say, you, you know, you need to know about, listen to bowls and sets and here's the link to the articles about those, right? Or some resource if you need to come up to speed. It gives them that gentle way of saying, here's some resources for you to get started so that you're ready for this article. Kelly Paredes: [00:52:50] Yeah. I wanted to go back real quick because I always do this to Sean when whenever you guys talk or whenever he talks about a teaching. I always like to name it for what it is, because all of our listeners, if they're an English teacher right now, David, they're probably going, of course guys, it's called skim scan and deep learning. That's what you do for everything, and I could just hear, I heard this from my English colleague and she was the one that we really took and we were teaching this technique. I'm teaching literally, you have to teach the kids. How to first skim to see what you're going to be up against. Am I going to be reading a five page article or you know, what are the, what is it about? Look for the main idea, scan it, and then really go back and for deep reading. And I love that point. So I had to do that again for you guys. It's a teaching technique guys. Well done. Sean Tibor: [00:53:37] And, and it's also, it's also a really good SEO that that teaching technique is also really good for your SEO. We're, we're at this kind of great stage in online content and search engine optimization where good content gets rewarded. Obviously there's ways that you can try to scam it and everything like that. But the, the most durable content is the stuff that's just well-written, well consumed content that, people actually stay with and read in depth. That's the stuff that's getting rewarded. So to, to marry up. You know that effective content for teaching is also effective. Content for SEO is a really cool thing right now. Kelly Paredes: [00:54:13] So I don't know. We're getting along in the, in the podcast and I didn't know, we just wanted to list out a couple of, I had made a list of things, and I always do this to Sean and also, and he always does this to me, but out of that list of things, is there anything that you really love that's a good advice for teachers or that are switching to online content? David Amos: [00:54:33] Yeah. There are a couple of things. I've got it pulled up here. Let me. Yeah. On this list, there's, an item you put on there. Kelly called, says multiple exposures, and, that's something that, I mean, I think it's, it's kind of obvious. The more you expose your clothes to something, the better it's going to stick. And I hope that's what you intended with that phrase, these multiple exposures. But there's, a pattern that, Joanna J Blonsky, who's the executive editor at real Python, taught me and, other writers in our, for real Python. And that's this, this pattern of, I dunno, it really has a name. I kinda call it like a three pronged attack. and that is. Tell the reader what they're going to see. Then show it to them. Then tell them what they just saw Done poorly. It's super repetitive and boring. but done well, where you, I mean, if you, if you literally just say like, I'm going to show you how to do this, and then you, you know, have a code example, and then you say, and that shows you how to do this. Well, that, that's not really what that pattern is. Trying to get you to do, but it's to think about, how you're gonna phrase that introduction to introduce a topic to them and then show them the code example or the diagram or whatever it is you're presenting, and then give a, some more, you know, written explanation about what it is that they just looked at or call out. Like what the, what the key, learning with what the key, Thing they were supposed to get out of it, was, the key objective there. So, that technique I think is really powerful in just that the, you know, the first time they look at it and they read through, that just helps it stick in their memory a little bit better. And then of course, each time they go and look at it again, it's multiplying by three each time. Right? You're getting three exposures in that one pattern. So that's, that's really useful. this less is more, is another thing that's actually pretty, pretty dear to me. before I was, a coder or a mathematician or a writer, I was a musician and that's, starting at a young age, playing piano and, and taking lessons and all through, in fact, when I started college, that was What I intended to study was, was music. and one of my favorite artists is, an artist named miles Davis, a jazz trumpet player. And, I read his autobiography, which is not super student friendly by the way, so I wouldn't suggest recommending it to any middle schoolers, but, but there was something that stuck with me out of that, that I think. Carries over to a lot of things in life and general on that was, he always said that the notes that you don't play are just as if not more important than the notes that you do play. And that was something that I always enjoyed about his music was he really used space effectively. And I think that in communication. And in writing, you know, in, in verbal communication and in teaching a class, you use space maybe by, you know, pausing for a bit and giving the students a chance to kind of absorb and think about something. And then, you know, maybe raise their hand and ask her a question. instead of just talking the entire time, right. Let me just shut your mouth and let the students. Do their thing, in writing, I think it, it goes back to what we were talking about with, you know, these visual breaks and, and giving the reader a chance to sort of not have to look at the text for a moment. and some of that is even, you know, down to the way it's presented, like the amount of space between paragraphs, the amount of space between, one section to the next heading and things like that. So this concept of space, being, important, I think is, Is, is something that you can use to your advantage to improve how things are presented. but also striking a right balance between, you know, presenting. You don't want to present like each, each sentence should be literally one thought. If you're packing multiple thoughts into a single sentence like this is, it's not. Easy to read and people are going to stop reading it and ignore it and either move on or, so yeah, the idea that that less is more is, is really important. And I think, you know, counter to that is that more is usually less too. so I'm trying to pack more into a small space is a, is not doing any, it's not, you don't get any advantage out of that. It's not doing anyone any good. Sean Tibor: [00:59:07] both of those points are really, really valuable. and that's one of the things that I try to focus on in my revision processes. How much can I remove? how can I, how much can I take away and still keep this core idea or this core thought? And I think people tend to underestimate it. simplicity is hard. It's not something that it's, it's easy to write stuff that's complex and convoluted and difficult to understand. It's hard to write things that are clear and intentional and simple to grasp. So. That that revision process is like, it's one more plug for it that having that opportunity to go through here, your, your point during revision is usually not to add to what you've written, it's to change it or remove things. Kelly Paredes: [00:59:49] but there's like a fine line though, right. When you're doing that simplicity, it's that, that difference between surficial and like really getting into a topic that deep learning. And I struggle with that and I sometimes get very verbose and, and even my brain sometimes jumps around in these, these conversations and it happens in my writing and I, that's something that is definitely going to be a struggle for me personally as I write more online content for the kids. Is that superficial topic? Here's this, but really here's how do you learn it deeply. David Amos: [01:00:23] This kind of goes back to, mentioning miles Davis. how does this apply? Right? But, there was a fellow musician that he played with John Coltrane, his saxophone player there was sort of known for these long and, complex, solos that, you know, he just played lots of notes really fast and he asked, this comes back from the autobiography of miles Davis. He has miles. How do I. How do I do short solos? I just, I can't seem to end my solos and miles his response. This is beautiful. I love it. Is just that take the horn out of your mouth. And you know, there's kind of this like Zen aspect to that, right? I mean, it's, it's really hard to put into practice, but I think as a writer it's, it's, it's a similar concept. I mean, if you find yourself just, you're just constantly like. You know, you really verbose, then just stop. I don't know. Kelly Paredes: [01:01:21] I'll try that. I'll try that with talking first and then we'll move on to my writing. Go ahead. Sean Tibor: [01:01:26] I think it's, it's a, it's a, it's a really good way of, of looking at it. Cause I think our, as especially as teachers, is as writers, you have this. I'm striving for completion, right? Like I'm going to teach the complete topic and, and really completion doesn't mean, doesn't need to mean that everything about the subject has to be taught is that maybe you're being, you're being comprehensive in your scope. I'm covering it from end to end, but I'm not going to teach you everything in here. So, that, that idea of. It's okay to leave them wanting more. In fact, it's better if they want a little bit more and give them the pathway to that, right? Like so if you liked this, this article, here's some more resources for you. Here's part two, right? Here's the next thing. So with that, we're going to go to part two next week, which is going to be more about video communication. and we're, and if you want to, honestly, if you want to read more of what David and the team at real Python are doing, there's so much great content. You guys have been just, have put together such a great process for writing and publishing, that we're always. Looking at what you're publishing next, what we're, what we want to read, and my backlog of stuff that, Oh, I can't wait to read that one to get a few more minutes. It keeps growing and growing and it's always been such a pleasure. And again, as I mentioned at the top of the show, I, I think so much of our learning. you know, learning Python and learning the way that we have then taught it to our students has come from the work that you've done at real Python and from PI coders weekly. So thank you again, David, for all of the stuff that you've put together, all of the work that you've put into, you know, the, the technical accuracy, the didactic accuracy, like all of the things that just make it, a joy to learn Python with you guys. David Amos: [01:03:08] Oh, thank you so much. That really is, it means a lot to hear that from you guys. Thank you. can I make a quick plug Sean Tibor: [01:03:15] Yeah. Yeah, go for it. David Amos: [01:03:17] if, if any one listening out there wants to, try to write for real Python and see if, you're, I want to, you know, practice what we're talking about and go through this revision process. Then we do have a call for, for authors, and it's at realpython.com/write-for-us, right dash for dash us. So. Kelly Paredes: [01:03:38] you also put a plug in for your new book? You guys book David Amos: [01:03:41] I guess so. Yeah. Why not? Yeah. I've been, I've been working on a beginning Python book for a better part of like a year and a half now. and we're just about done with it. It's, it's available early access, it's called Python basics. A practical introduction to Python three, and that you can go ahead and download and read, purchase and read the early access version. but we're wrapping that up and, we'll actually be, finalizing that over the next couple of months here. but that has been, yeah, that's been a massive effort, to put that together. But it's, I th. Not that I'm biased, but I think it's a, it's a great, introduction. It goes through all the basics and even all, all the way up through a, like an introduction to object oriented programming. but one of the things that I really like about it is it's, it, there's these two parts. There's a teaching you the language, and then, once we've covered the fundamentals of the language and everything, then, the last half of the book or so is, is, putting everything into . Practice, and then you learn how to work with PDFs and, and, weren't learn how to scrape webpages, and, and do a bunch of projects, how to build a graphical user interface. So, it kinda goes beyond really beyond the basics in some ways. Kelly Paredes: [01:04:54] well, we're looking forward to, we've, we're waiting for that. So exciting. Sean Tibor: [01:05:00] All right. Well, I guess the, that'll wrap us up for this week. If you want to follow us on Twitter, our handle is teaching Python. You can send us feedback through our website@teachingpython.fm and there's also a link to our Patrion there. So if you'd like to support the show, you're more than welcome to do that through our website. We always appreciate every single one of our contributors. so for teaching Python, this is Shawn Kelly Paredes: [01:05:21] Mrs. Kelly. Sean Tibor: [01:05:22] signing off.