Episode 52 Sean Tibor: [00:00:00] hello and welcome to teaching Python. This is episode 52 teaching the full stack with Alli spittle. My name is Sean Tibor. I'm a coder who teaches. Kelly Paredes: [00:00:25] and my name's Kelly Schuster pres and I'm a teacher who codes Sean Tibor: [00:00:29] welcome, Allie. It's great to have you. We've been trying to coordinate this, I think for a couple of weeks. honestly, I've been secretly wanting to have you on the show for probably a year and a half. Ever since I heard that you were a teacher of Python, not just a, , so many of the other things that you do, like a. Cohost of the ladybug podcast. You're a senior developer advocate at AWS. your blog is widely read and amazing and talks about a lot of the challenges that you've faced and overcome in the tech industry. And so it's been , a long time goal of mine to have you on the show and hear about how you teach and what you think about while you're teaching and advocating for developers. Ali Spittel: [00:01:08] Thank you so much. I'm really excited about this conversation. Kelly Paredes: [00:01:12] Sean was telling me about it, I started reading about you and I was like, wow, pretty cool. So it's very exciting to finally meet you. Sean Tibor: [00:01:20] this week, we're going to be talking about teaching the full stack and Al you've got a lot of experience in a number of different ways, looking at, full stack as a developer, as a teacher. And what we'd like to do this week is talk about how we can help our students learn the full stack. But before we get into that, we'd like to start in the same place we do every week, which is the win of the week. Something good that's happened to us inside or outside of the classroom and allie because you're our guests We're going to make you go first Ali Spittel: [00:01:46] Oh, awesome. So I. Went through a really hard place with creating content for awhile, where it's just putting things out there. It was really difficult and I was overwhelmed with my day job, but I've been able to build it back up to be consistent recently. And so that for me has been a big wetter and I've been playing with different content formats too, of Twitch and YouTube. And so that's been fun too. That's my big one right now. Sean Tibor: [00:02:11] that's very cool. I saw your posts recently about the amplify, , product over at AWS. And so I've been wanting to get into that cause it looks like it's really interesting, cool stuff to play with. Ali Spittel: [00:02:22] that's awesome. I work full time on amplify Sean Tibor: [00:02:24] really fun. I know how hard that can be to get back into content creation mode. I think Kelly said to me earlier this week, we've been making a blog post push this week to actually get some content posted to our blog. And she said, why don't you write about this project? It'll be really easy. And six hours later, I'm like, okay, I think I've got the wiring diagram done. And it's really hard to get good content out. Ali Spittel: [00:02:43] It's so much work, so much goes into it. Kelly Paredes: [00:02:46] Yeah, it's been crazy, but I read on your one blog post about Grammarly, , pro and I was like, yeah, score. And they went beta on the, on Google drive. So it's been really cool exploring that as a tool for both teachers and for bloggers. So it's been really cool. Ali Spittel: [00:03:03] it's so nice. I need it. I misspell everything or have like weird grammar things. My big thing with blog posts is that I always trail off like mid-sentence and then forget to come back and fill in that sentence. So I have a bunch of blog posts with just like half of a sentence somewhere in there. So Kelly Paredes: [00:03:20] well where mine's six sentences , in a one sentence paragraph. So it's nice. Sean Tibor: [00:03:26] I have a feeling grammar, always like that thing where you, you're like, I'm a pretty good writer. I know how to complete sentences. I've got good structure and everything. And then grammar was like, ah, actually, I've got some thoughts, Kelly Paredes: [00:03:37] I'm hoping that it's definitely going to keep improving on this kind of AI. I'm assuming an AI learning path with my writing style. So maybe we can hit them up for sponsors. Ali Spittel: [00:03:47] Yeah, I think they sponsored some podcasts, at Kelly Paredes: [00:03:51] Oh, there you go, Sean. Sean Tibor: [00:03:53] all right. I'll get working on that. All right. Kelly, it's your turn one of the week. Kelly Paredes: [00:03:58] Ah, so I had to, but I'm not going to talk about my blog that I did post. I want to make my one of the week for the demonstration of learning projects with my sixth graders, I was overwhelmed with. The amount of code that these sixth graders wrote after nine weeks of learning using the pie bites, newbie bites. I couldn't believe it. I had kids that were we're using turtle beyond the means of, I think some of our former eighth graders, I had kids making Madlibs with lists and list methods and turning them into function so that they can change the story title. Or the type of adjectives in there. And then I had a student make an app about, a study guide. She had history, English, math, foreign language, and she was using. A loop with inputs and lists to upend that, and just seeing sixth graders develop the basic concepts. I was overwhelmed. I couldn't believe, I think I need a total of the amount of lines that one class had. I had each student about 260 lines of code. I couldn't even imagine writing that many lines of code after coding for nine weeks. So I was just happy, very happy. It's a good year, a good quarter. Sean Tibor: [00:05:14] Yeah, one of your students kept interrupting me . I was sitting there working in my back corner of the room, trying to get some stuff out and she kept interrupting me cause she's look, I made this snow globe with a circuit Python and a board and it'll light up. And then she's and then tell me about this home assistant thing. Cause I really want to automate the lights in my room and , can I use an led strip for that? I'm like, okay, I think Kelly's doing something right here. this is really working well, Kelly Paredes: [00:05:37] I ponder off on you. I know she's gonna read your little prodigy with a hardware stuff, so you could have her. She's going to be amazing. Sean Tibor: [00:05:43] done. I'm happy to. So for me, along the same lines, I had my eighth grade projects this week that were coming together and I really went as hands off as I could with the students, figure it out. I'm here to help if you really get stuck, but I want you to work through the problems and try to research it. And apply all the skills that you've learned over the last three years. And this is a bit melancholic for me because the. The students that I have in eighth grade were the ones that I started teaching with as sixth graders, two years ago. And so they're coming through now , and finishing up some of these final projects and culminating a lot of the knowledge that they've acquired. And so I've seen all kinds of cool things this week. Like one of my students tied into the home assistant, , server and made it play YouTube videos when the door opened and closed another student who I hadn't even really been like. Too much in contact with, because they were distanced learning and quiet and shy and everything came back and said, I made a fractal tree generator with Python turtle. So it's just like sitting there, drawing this tree and it's got all the branches and everything, and he's just like letting it run and it's doing different colors. It had this synth wave vibe to it. It was just really fun to see. The students come together and put together a project that they really got excited about and into, and the depth of the dive into the topic was really impressive to see. Kelly Paredes: [00:07:03] And the variety. I thought the variety Sean Tibor: [00:07:05] I really like it Ali Spittel: [00:07:07] You're making me miss have actual students. Kelly Paredes: [00:07:10] You can always come in and guest teach. We have both online and physical students. So if you ever want to virtual teach, we're all welcome for guest speakers. Ali Spittel: [00:07:20] Oh, that'd be so fun. Sean Tibor: [00:07:22] we'll definitely have to make something happen. We get a new group of students every nine weeks. So in about six weeks, I think they'll be ready for you so we can schedule it. Ali Spittel: [00:07:30] That'd be so much fun. I would love that. Sean Tibor: [00:07:32] so the next area we go into is the fail of the week. Just something that didn't work as planned and what you did to fix it or what the fix in progress looks like. Kelly, would you like to go first for this one? Kelly Paredes: [00:07:42] Sure. I, like every good teacher, we constantly, go through our content and think about how we can improve and seeing how this is probably the what 26th iteration of our content. I it's amazing to me that I still see places where I fail. We were talking about, our choice boards and I think I was just slamming the kids the first quarter. So I, I think it was too much, Over a long period of time. So one of my Epic fails was, bringing down the nine choice boards over a two week span, and we're going to push them down to four boxes over a two day span to have smaller chunks of learning happen, quicker assessment. So at that was a kind of a fail as the kids were just overwhelmed with the length in the, depths of what we were expecting from them. They did it, but it was very stressful for some. So Sean Tibor: [00:08:36] Yeah. I think that definitely happened at all different grade levels. We saw that the students really I don't know, maybe it was too much at once. And so we're going to chunk it into smaller pieces because I think they really got behind in some cases and didn't know how to get themselves out of that position. Kelly Paredes: [00:08:50] Yeah. So Sean, you're going to do, are you going to make Allie go Epic fit? Let her choose. Sean Tibor: [00:08:56] I'll let you choose Allie. Ali Spittel: [00:08:58] Oh, I can go. Sean Tibor: [00:08:59] Go for it. Ali Spittel: [00:09:00] Oh, my goodness. Mine recently has been video editing. Like I just can't figure it out. It's so, so difficult. And so I completely butchered one of my YouTube videos and the made the audio into Moto accidentally. And so I'm trying to figure it out and trying to try to learn and get better at that. So it's just a new scale. Sean Tibor: [00:09:21] Yeah. Isn't that the hardest part about learning? Something like that? Is it just that the feeling that you're constantly failing until it's like it clicks and okay, now I get it. Ali Spittel: [00:09:29] That's so real. Sean Tibor: [00:09:31] it's and I think that's the hardest thing to teach our students too. Is that if it feels hard and that you're struggling and that you're failing, it means you're probably doing something worthwhile. you're learning something real, so good. I'm glad that you're you're making that progress. that'll be really cool, to have more and more skills in that space, because that's something that I've always wanted to do. And I haven't been able to really wrap my head around it. To be able to get better video editing. And I've got a brother who went to film school, like he knows how to do all this stuff. And I'm like, I'm totally, don't get it. Ali Spittel: [00:09:58] Oh my goodness. It's so tricky. Sean Tibor: [00:10:01] Well, there's, there is definitely a lot to learn and it makes it, really amazing when you see someone who knows it really well and they can make it look effortless because it's I have no idea how they do that. Kelly Paredes: [00:10:11] remind me Allie too. and we'll put it in our show notes. If I can find them, there is a guy that I follow. I think his name is Ertegun, on Twitter and he teaches. Movie editing and just has, I don't know, it's probably not what you're want, but some of the cool effects that he does with, things maybe later on, if you want to get tricky with your YouTube videos, where you can follow him, he's a teacher somewhere. So I'll try to remember where his Twitter feed is. Ali Spittel: [00:10:36] Oh, wow. Definitely need to check that out. Sean Tibor: [00:10:38] That'd be cool. So, so my fail this week has actually nothing to do with teaching. As part of my, one of my side gigs. I still do some consulting work for clients around, technical marketing automation and things like that. And so I had, supporting this client that. It basically is running pretty well, but occasionally they have support issues come through. And yesterday I found an email from them that was two weeks old, that hadn't been flagged , as important by Google. And it was like, Hey, this thing's not working. Can you take a look at it? And I'm like, Oh no, it's in two weeks. this has been wrong for two weeks. So I had to make a quick call and say, I'm so sorry. I found this I'm working on it. I will get back to you. But just that communications fail of I didn't see the important flag on it. And so I missed the email for a long period of time, just kicking myself for that one. But, they were understanding and, I'm fixing it and it's going to be fine, but it was just one of those, everything turned to slow motion and I went, Oh, no, Kelly Paredes: [00:11:32] Thank goodness for the three day weekend. Alright. Sean Tibor: [00:11:37] All right. So let's, let's dive right into our main topic, but first, Allie, for those of you who don't know you or who haven't seen you online, maybe just a brief overview of what you do, how you teach, , you have a proliferation of things that you do when I was going over your bio. There's a lot. , if you would just highlight a few things that people may know you from or where to find you. we can get started with our topic. Ali Spittel: [00:12:00] Yeah. So I. Actually started off the first time that I taught code was also in middle school. So I was an education minor in college. My school didn't have an education major. So I did my shadow semester and was in a math classroom for seventh graders and was able to teach them some basic code things. But then from there went into. Being a software engineer for a couple of years, and then transitioned back to teaching full time at a coding boot camp. And I was there for about three years. And by the end, I was the faculty lead for the program in New York city. So I got to do a lot of like selecting of curriculum and guidance there, but it was really an awesome program because is it tight? Mid career people, how to code and to do so in a career capacity. So going from, for some people hello, world to professional developer in 12 weeks, and that was different for everybody in the program, but a really awesome thing to see. So definitely a different setting than teaching kids, but also a really interesting one and really, really cool to see as well. And then most recently I've been transitioning into developer advocacy. That's a hard word to pronounce it's early. Yeah, the wording. so that allows me to teach in a different way. So I don't necessarily have students anymore, but I am teaching my community how to use our. products best and then bringing feedback that they have on the products back into the internal team. And so I think it's really cool because it's a different. Way to teach. So it's mostly asynchronous content, but I still do get to have one on one conversations with people and make an impact on products as a result. So that's a little bit about what I do now and my history with teaching and also that I get to do so, through my blog and podcasts and all that too. So it's a little bit asynchronous now, but I definitely miss having full time students. Sean Tibor: [00:14:11] well, we'll let you borrow ours anytime you want. Very cool. Very cool. So one of the things that we, talked about before the show, and as we were leading up to this was the role that you've had as a developer and as an advocate and as a teacher, right? Involves more than just Python. so Kelly and I teach Python and occasionally we dabble in a few other things with our students, depending on what they want to do. but we really focus because we have nine weeks on just getting some basic computer science concepts together, teaching some, more durable skills, like persistence, perseverance, problem solving, things like that. but. We don't really go beyond Python in our course, we don't really have time to, and it hasn't really been our focus, but a lot of the work that you've done as a cross, what is called the full stack. So we wanted to talk about that for teachers and how teachers could start potentially using that with their students or how they could acquire the skills that they need for it. So maybe we should start with what is the full stack, and I'm assuming we're not talking about pancakes. I know that's the obvious joke, but it is early in the morning. And I guess I'm a little bit hungry. Ali Spittel: [00:15:17] Yeah. So I think what the full stack is means something different slightly to different audiences and different people. But for us, it meant being able to build the front end. So what the user interacts with and the website or whatever that shows up in the browser that people. Click on and type into and all that. And then also be able to work on the data layer. So the business logic that goes into conditionally display data or saving that data so that the next user can use it as well. And then the last piece is the deployment process. So making it so that you can actually get that code on a server and the. Entire web can use it instead of just people on one machine. Kelly Paredes: [00:16:04] So You'll have to, I'm going to go through this whole lens as a new resource. And so I'm going to always go back. So my knowledge of, and this is where at, so it still baffles me. So baffles me. So back in, I don't know, 2005, I had to do Dreamweaver, Adobe Dreamweaver, and I had to teach the kids, had to build their own portfolio with HTML. And we made our little websites and we package them up and then I would just would send to somebody. So that whole idea, that concept of, combining Python, putting it out there in the internet, it's still poof, it happens, I'm like what's magic. And I always tell the kids, well, some magic, some really smart people, made this code that helps it do this. So. Can you work through, I mean, it sounds silly, but what is the basic in the layers of the full stack, some of the basic programs or languages that happen in each stack, break it down for me a little bit. Ali Spittel: [00:17:06] Yeah, for sure. So you said each TML and CSS, and I would say that's the very top layer of the application, but absolutely necessary. Piece of any website is going to be HTML and CSS, HTML being the content and CSS being the stylized. So how the website looks. And then on top of that, you could add a little bit of JavaScript to make it interactive so that when somebody clicks on a button, something happens or there's a fun effect or something along those lines on the page. But. Even a higher abstraction from that now is that instead of using HTML to build websites, you can actually just use Java script from scratch. And so you may hear of JavaScript frameworks, like reactor view, and those essentially do that. They allow you to write your user interface all in one, the interactivity and the content all in one place, instead of breaking it down into that HTML, CSS, JavaScript construct. So. We teach all of that for the front end or we taught, I guess I no longer do this anymore. so that's the front end. That's the F first piece of the full sack. And then the backend, there's a lot of different options here. So. And you can use Java script and a lot of people use node, no JS. And that allows you to just work in the same language throughout your whole entire application, which is nice. So you don't need to context switch, but what I've done a lot in my career is use Python for that backend instead. So that data interaction layer of selecting what data is sent to the front end and also what data is stored and persisted for the next person to use the site. So. with Python, there are two main web frameworks that you may use flask and Django. Flask is really lightweight. So you can write a couple of functions and from there, get a kind of backend from that, and it will allow you to host different, each TML files as well, so that you can have multiple web pages instead of just one. And then Django is like a little bit more in depth, so it has a lot more built into it. But with that also becomes a lot more complex, right. So if you're building a really large web app or something along those lines, Django would be amazing for that. And then the last piece of this is the database. So where is the data actually stored? My favorite one is PostgreSQL, but there's also like Mongo DB or my SQL or any number of other ones. And then the last piece of this is actually getting it online so that anybody can use it because until then, it's just a file on your computer or a script that you can run. And so there are different deployment services, potentially. The easiest one to get started on is like something like Heroku. Which does a lot for you. And then do you want to get closer and closer to servers or tools like AWS, which you have to do a little bit more configuration for depending on the product or service that you use. And then. There's even just like having your own server computer box in your office and using that to host your site. So there's different layers of deployment. and then there are also more modern solutions as well, like serverless, which you wouldn't need to use something like flask or Django at all. You just write a Python function and then deploy that and be able to use that kind of thing. Is your light backend. Kelly Paredes: [00:20:40] I S I visualize a, what do we call them in our classrooms that we have, like a poster of all this information. I need to draw this out. An anchor chart Ali Spittel: [00:20:50] diagram. Kelly Paredes: [00:20:51] whole time you're talking. I'm like, Oh, that was what Michael Kennedy. I know all the, I know every single one of those applications and words that you were using all from the podcasts and listening to Michael Kenny. Thank you. That was really well done. Ali Spittel: [00:21:05] No, that's the hardest part with podcasting is that there aren't visuals. And so I wish I'm just like, Oh, I wish I had a picture for this, but Kelly Paredes: [00:21:14] It happens in my mind. So, Sean Tibor: [00:21:16] I mean, we should figure out like a live whiteboard or something that we could have during this, and just like whiteboard and talk through it. Kelly Paredes: [00:21:21] Well, I don't have my piece of paper that I normally sketch out, so I'll have to go back and relisten to our podcast and sketch it out and we'll put it up on the show notes. I promise I got to do lists on there. Cool. Sean Tibor: [00:21:32] the thing that strikes me about this is that there is. Possibly so much to learn, to be able to pull this all together, right? Like that there's a lot of complexity and there's a lot of different areas of knowledge that you need to have. Is this something where you have to have all of that in your own head? Or does this mean you're doing it all yourself? Are there ways to make this better? Is it, and are there technology solutions, are there people solutions, are you often working in a team? Like how in practice has this work? Do you have to have it all in your head or how do you solve for them? Ali Spittel: [00:22:01] Yeah, I think there's a couple different answers there. So first is when you're working as a professional software. And so that's going to depend on your team. Sometimes you're going to have to be full stack, especially for me working at startups for a lot of my careers. I have to wear a lot of hats and. Be the person writing all the code. but in a lot of larger development teams, you could just write the front end or just write HTML and CSS, or just write a piece of the Java script or just write part of the backend. So that's professionally and as far as teaching goes, For the most part, I was teaching the full stack myself. And so this was the development stack that I had been using professionally. And so I'm pretty comfortable with it, but I learned so much from teaching it the first couple of times of all. The misconceptions that I had filled up and all the gaps that I had in my knowledge, I was mostly a self-taught software developer. I didn't go through a bootcamp or, I have a full CS degree or anything like that. I had mostly put all these pieces together by myself and so teaching it, I had to learn so, so, so much. And then I think from the learning perspective, there's so many different paths that you can take as well. I was talking more as an adult learner, like there's computer science degrees, there's boot camps, and then there's self-teaching and normally boot camps are going to be full stack. At least most of them are. And the reason for that is that you can build full applications with the full stack. And that's really great to have on your portfolio. that being said professionally, most of the graduates go on to be front end developers because that's where we spend a little bit more time. And, it seems like companies are like more willing to hire boot camp grads into front end development positions, which is the whole rabbit hole in and of itself. But then when you're self-teaching I don't necessarily think that you need to teach yourself full stack, but I do think that it's good context to have of knowing a little bit of front end and a little bit of backend so that you can at least talk to those other developers when you, have your job. Was that, did that answer your question at Sean Tibor: [00:24:10] Yeah. I've seen it at least in my experience, like you might start with a project in mind, Oh, I want to make this thing. And I know this area really well. And so I have to grow my knowledge, expands out, like almost a mold or something. Right. Like it just grows outward. And suddenly you're like, okay, now I actually know more than I thought about this area. And so, for teachers, I think we find that. A student will come to us and say, I want to do this project. And I ended up designing a little later. We can plan for them and saying, okay, well, you know these things already, you need to go research this. You need to go learn about this, and that will give you enough knowledge to be able to pull this together. And so we're just trying to teach them that ability to learn just enough information, to be able to push their goals and find the next steps for okay. If you wanted to make it better, here's what else you would need to go learn? Kelly Paredes: [00:24:58] Yeah. And I'm like thinking, Sorry, as you guys were both talking, I'm thinking back to design technology. Cause I taught design technology for about 10 years and I kept thinking form function. Like where do you start? Is it when you're presented with say a project? sometimes you kind of cycle back through of what it looks in the front end, what it's doing for the user, or how do you know where to start or do you just go dabble, and pushed together? Ali Spittel: [00:25:25] no, I think it depends on. The assignment, I think more than anything, like most of the time, if you're doing something professional, you're going to be working on a big team. And so you don't have to do every single piece of the puzzle. You're assigned the little pieces of the puzzle. And so you're building one feature. And from there, you can decide whether to do the functionality first or the display first and then make it right. Functional. So usually you're given bite sized pieces, but when you are working on individual projects, it does become a lot more overwhelming. and with that, I think having. A plan and feature prioritization of this is what is most important. I need to get these things done, but these other three things would be amazing to have. It's just, those are my bonuses. If I get to them, that's something that we would have to teach a lot at the bootcamp because our students had projects that they had to work on and how to prioritize. Features and how to make paths for themselves and how to decide between different things to build and, plan for that. So, we had the make like, bronze, silver, gold, and platinum levels to all their features. And so the bronze ones were things that they absolutely needed. The silver ones were things that would be. Pretty necessary to have, but if they didn't have them, they would still pass the project. And then gold and platinum ones would be the really shiny, amazing ones that would be great to have on there, but they probably wouldn't have time for Kelly Paredes: [00:26:58] I keep thinking scrum the whole way through here's this path work, here's this framework. And one of our, my, our friends has really taken on scrum and I keep, she keeps trying to get me to go down that path. And that would be a really cool course. For us to teach is just how to do that full stack. Even just the layout, the framework needed to build a project. It's very fun. Ali Spittel: [00:27:22] yeah. Kelly Paredes: [00:27:23] It's very cool. Cool. Sean Tibor: [00:27:24] I think for middle school students, they could absolutely handle something that is, a smaller, to start with. Right. So start with something that has maybe just, two or three key features would be an amazing project for them, especially over the course of a few weeks. And then, but teaching them that process of implementing something, adding to it, following this roadmap or path that they've created for themselves. and then, maybe as you are teaching high school students or college level or something like that. That really, you're just looking at the pace of that and the depth or the breadth of what they can accomplish. Right? So instead of two or three things, maybe a high school student might do five or six and the college student might do 10 to 12 and, just keep growing the size of it as the student's capabilities increase. Kelly Paredes: [00:28:07] I was going back in thinking about a project and stuff. I think Sean's got a lot of different expertise and I keep my expertise segmented. For example, I did the HTML and then I worked a lot in a file maker. I got rid of all of that information. I put it aside when I was learning Python. Cause I was like, I can't handle, but I was just thinking about, as we start a project, say, you're starting with someone or you're working with an adult learner or a student learner and they've come to you with either this great database of saying, listen, I want to build something out. I'm trying to think about how I want to formulate this question, but what are those skills when someone comes to you and says, Hey, I have this database and I want to get it out there. Like where do you go? How do you help develop that as a stacked developer? Ali Spittel: [00:28:58] Oh, that's a good question. I think you can use something like flask or Jingo on top of, An existing database, but in in a lot of cases, it would be the opposite direction where you would build the app and then the database would come. but I think again, it's like the teaching them how to plan and then .Giving them the resources to teach. I think one of the biggest philosophies that I had is that, yes, I. Do you teach them specific technologies? Yes, I do have traditional lectures and, lab periods and hands on learning time. But the biggest thing that I could see them was how to teach themselves because that's what they would be doing on the job. And that's what so much of development is using different technologies. Then you were initially taught or initially started with, but. For me, Python was like the first code that I ever learned in a computer science classroom. And so I definitely still have a huge soft spot for it because of that. Kelly Paredes: [00:29:58] So you learned HTML after Python or did you Ali Spittel: [00:30:01] yeah. Years later. Kelly Paredes: [00:30:03] wow, very cool. Sean Tibor: [00:30:05] And how did that happen? So did you have a project that you were wanting to do? And I'm like, Oh, and then said, okay, now I need to learn this to be able to do it. Or you took the thought it was interesting. And so you did some tutorials or training or something like that, and then built a project. Like what was your pathway to learning those new skills? Ali Spittel: [00:30:22] Yeah, so my story is super funny and untraditional. So I grew up in like rural New Hampshire and my high school didn't even have. It's a computer lab, let alone computer science classes or anything like that. So I hear about it being mandatory for a lot of students now. And I'm like, that's so amazing. I'm so jealous. I wish that I had that, but I did not know what code was until I was yeah. In a computer science classroom. During my sophomore year of college, I had an extra credit hour. And this one, computer science class fit into my schedule. And so I was like, okay, cool. I don't know what this is. I thought that I was going to learn how to format Microsoft word documents. I thought that's what, like computer science was. And. jumped into this computer science classroom and was, thrown Python. They had typed out pieces of paper with Python code on it. And our job was to type it back into the computer and run it. And I was like, what is this? This is the wildest thing I've ever done. no idea what's going on. This is not what I expected, but that semester was amazing. I. Built all these games with Python. That's what the whole class was. So we built like tic TAC toe. I recreated flappy bird because that was really big that year. and some other fun apps. And then, from there, I was like, this could be something that I do longterm and they ended up asking me to. Do the TA work for the department as well. So I started doing that, but then I took a C plus plus class the next semester. And looking back, I think maybe it could have been taught in a lot more compassionate way, but it was a kind of weed out class. And I got weeded out. I was pulling all nighters for it and just working really hard. And I think it was one of those really perfectionist students where I was like, I'm working so hard to get a B in this class. That means that I'm awful at this. And they really just isn't for me. And so after that I quit coding. I thought I just wasn't good at it. Wasn't going to be what I did. And then, I got a job that spring, so I was like a junior in college, I think at this point. And. It was doing a lot of data now let's say this work, I was taking a lot of stats classes, and I realized that I could use Python to automate my own job. Kelly Paredes: [00:32:52] You sound like what Shawn does. Sean Tibor: [00:32:55] It's kinda my favorite thing to do is to automate my job away. Ali Spittel: [00:32:59] exactly. And so I did that and they were like, Oh wow, this is cool. you should look at into this and maybe do this. And so then they recommended me for a software engineering program and. became my career and I ended up leaving college to be a software Kelly Paredes: [00:33:15] That's pretty cool. Ali Spittel: [00:33:16] from there. It was mostly like, okay, I need to do this thing at work. let me teach myself this thing so that I can implement it. Kelly Paredes: [00:33:24] That's pretty cool. I keep thinking we can give the kids the flappy bird code and they have to build out the full story front end. At least there's already some, that would be really fun. Ali Spittel: [00:33:37] I did it just in Python using PI game. Sean Tibor: [00:33:40] So I actually had one of my students just show me that example yesterday, she went through and followed that flappy bird game in Python and built it in PI game. And it's still like a really cool, it's a great project Ali Spittel: [00:33:50] It's so much fun. Kelly Paredes: [00:33:52] I have that little sensor that you plug in and you can put your hand and maybe we can combine it with the Python where you put your hand and it's just an ultra, ultrasonic sensor and the, you get closer to the bird, goes out. I've seen that as a, as the website's already made and you just plug in the center sensor in play. I wonder if we can hack that Sean Tibor: [00:34:11] I'm sure we Ali Spittel: [00:34:11] That'd be so cool. Sean Tibor: [00:34:13] we can. Kelly Paredes: [00:34:14] alright. Off tangent. Sorry. Ali Spittel: [00:34:16] no, that's so cool. Kelly Paredes: [00:34:18] cool. go Sean. Sean Tibor: [00:34:19] Oh, I was just gonna ask, this space and software engineering is something that we don't really talk too much about with our students. Like I talked to them about, yes, I've written code. I've been in places where I am, part of my job where a big chunk of my job is to make things happen with technology. But we don't necessarily talk about software engineering as a profession because it's still middle school. we want to want them to feel like it's something for them. and in fact, the goal that we tell all of our students is, if you end up being a software engineer or a software developer, we would love that and we'd be thrilled. But if you end up being a doctor who also writes code, we would also be thrilled. that would be amazing. Right. what are some of the skills though that are important or. Things that are nontechnical, that you've found to be really helpful or valuable as a software developer, in your career. And are there ways that you can teach that to your students or help them understand it? Ali Spittel: [00:35:08] Yeah, I still, I think. There's so much that goes into this, the communication and being able to actually distill what feature is needed, because a lot of times you'll have a bunch of conflicting priorities and a bunch of different opinions from different people and distilling that into something that will be the best of all of those scenarios. I think that's really important, but for me actually, Teaching has been so huge for my career. And especially as you move up into being like a senior lead, a lot of your job is mentoring the new people on your team or juniors or getting them up to speed. And so teaching has been so, so helpful for my career and even like writing documentation, that's teaching in a way as well. I've tried to make this as understandable for a general population as possible. So. Those are two skills that have been really big, but, problem solving is massive as well. And being able to think through problems and break them into smaller and smaller problems, and then combine them back together to build something. so much of it is nontechnical, especially as you work your way up. Kelly Paredes: [00:36:16] do you ever, or have you ever in the past, when you were teaching, when you were in your teaching role, did you ever look at someone and say, Oh my gosh, this person's. Gonna make it, I look at some of the students and not necessarily gonna make it in coding, like Sean said, but we just see, I had this one TA student this year, just for example, we've been trailing out pay Bates code newbies and. I did not want them to push the solution, but I said, listen, if you've tried it for six or seven times, and you said it can't do it, you could, I had this one, one student, literally 172 times trying to submit. And she emailed me and she would email me with the first letter saying, don't give me the answer, but am I getting close? And I told Sean and I get shivers. And I told Julian and Bob from, I said, this kid. regardless if she does coding, she's gonna make it cause she is persistent in whatever she's doing in learning. Is there a time where you've looked or you've taught somebody that you're just like, Holy cow, that person's got X, Y, Z skills and I they're going to be awesome soon. Naver. Ali Spittel: [00:37:24] So, so often I think. What my position was so interesting because I had a lot of people who had already made it. Like I had people who were in their, late fifties, their sixties who were going through this boot camp program and were like, previously CEO's or whatever, until looking to learn what they're, the people that they manage did. But so many people where you see the tenacity or the. How much they care about things or the combination of skills that they have. And you're like, Oh wow, they're going to absolutely, do amazing things. But I think that's one of the really magical things about teaching too, is I can write so many lines of code in my career, but all of those people all together can write so much more code and make so much more of an impact on the industry than I ever could alone. Kelly Paredes: [00:38:13] pretty cool. Sean Tibor: [00:38:13] yeah. One of the things I keep thinking about and the responsibility as a teacher is that if I'm doing this right, I'm training my future coworkers. And hopefully even my future bosses, students that are going to be so amazing at this and find something that they're really passionate about and good at that. in 10 or 15 years, like they could be out there in the workforce doing amazing things and that, kind of effect that I can have to help them get. There is a pretty cool thing and I really want to get it right. I really want to be good at this so that they get the most out of it. Ali Spittel: [00:38:47] Definitely. Kelly Paredes: [00:38:48] So another question, Cause I keep telling Shawn what's going to happen when Python's not the big language what's literally going to do and it's not it. So any advice on where to go or what would be a cool thing to learn after, the basics or whatever of Python or the intermediate phase of Python as a teacher or someone that. May want to do more than I'm putting an adjust in there, but not saying it's just teaching, but just teaching. what if I wanted to go start something and learn, start teaching my son, self something? Where would I go? Ali Spittel: [00:39:23] Oh, that's such a good question. There are so many different directions that could go in as well. And I think it's depends so much on your interests because there are so many sub fields within programming, whether there's like. Data science or data visualization or front end development, or back end development or accessibility or DevOps. there's so many worlds within this. And so I think you've got to find the thing that you're most passionate about and yeah. Maybe it is finding a project that you want to build and would be really passionate about and would make your job easier, or just be something that would contribute to one of your hobbies or something along those lines and, learn the things that are needed to build that thing out. I don't know. That would be, Kelly Paredes: [00:40:09] it sound like Sean. I have my, yeah. Yeah. That's totally the answer I knew you were going to say. Cause he knows my project. My project is definitely a full stack project, but you know, I'm still stuck on mat plot live kind of thing. Sean Tibor: [00:40:23] Yeah. Well, I think that's as an outsider to education, like coming in and being a teacher, one of the things that struck me as I looked around was there so many opportunities to. Make projects and make things better and try new things. And it really depends on what you're interested in. And Kelly, we're definitely going to make your project happen, but I will help you. I will help you. Yeah. Anyway, I can't guess it's really cool. there's so many opportunities to leverage data and education. There's so many ways that we could improve. Operations right by applying a dev ops mindset to the way we deliver education and the systems behind it. it seems like the sky's the limit, like in the education space for what you can do. And if you're at all interested in this as a teacher, you've got some, some extra skills and knowledge that people who are approaching it as outsiders don't have, like you've got that context and the subject matter of education that you could apply your new skills to and make something amazing. Kelly Paredes: [00:41:17] Yeah, for people that didn't hear about the project in previous millions of episodes, we've said, I've said this all the time. So I used to work on a project with, I told you the file maker guy, and I was like the designer of the project and he collected data. On all the students and all their grades and all their criteria of learning and my thought processes. There's so much data like Sean was saying whether they have two homes where they live the distance from the school, whether they play sports, et cetera, that it would be an awesome project just to smush all this data of all these kids to get a really great, analytical picture of our students before we. We push them up to the next grade or get them from the grade below just to get this nice picture of everything. And so that's my dream job, my dream project. But it seems so overwhelming. I know where I want to go with it, but yes, definitely full stack of everything. So we might be calling you up sometime. Ali Spittel: [00:42:18] Oh, yeah. I think flask or Jingo would be a great fit for that and build upon skills. Cool. No, girls is one of my absolute favorite resources. They do the day long workshops that take people from hello world. Never having coded before to teaching them like the command line and each TML and CSS and the request response. The staple and how the web works to actual Django itself. And you build this blog app throughout the day. It's really fun. but they also have the workshop online on just get hub repository. And so you can look through that and it's a great resource that makes Jingo like so accessible. So I highly recommend that resource and it would be great for teaching kids to I've. Had I've taught it a couple times, in DC where I used to live and we've had like eighth graders come and learn it as well with the adults. Kelly Paredes: [00:43:15] All right. So that's my new year's resolution. Sean Tibor: [00:43:19] Yeah, that's that sounds awesome. I did have some sixth graders that try to Django tutorial. and I think they got it to the point where it could hello world and get set up and everything, which, I think it's important to have the context for this. These are sixth graders that got their first laptop computers. Earlier that year. So they'd only had about six months of using it, their own laptop with a file system on it. And before this was all I-pads and Chromebooks and everything. So for them to go and work through the tutorial and get it to come up with hello world on a Django server, running on their laptop was a really cool thing to see. Ali Spittel: [00:43:51] that's Sean Tibor: [00:43:51] so when I was at Python, I went and got them some Django girls stickers, it brought them back to them and made sure they knew that it was a really big deal. Ali Spittel: [00:43:59] Yeah, that's so cool. That being said, sometimes I feel like teaching people who are brand new and, or even kids is easier than teaching people who have like really boxed themselves into a mindset. And this is something that I've noticed, especially with. some adult learners is that if they had really regimented careers beforehand, it's really hard to break them out of that. And like people who were following a script, their whole careers, trying to get them to instead be like, there's no script, there's no rules to follow. You don't need to fit inside this perfect box. You just try things. And if it breaks, that's perfectly fine. Bugs are normal. Errors are normal. Break yourself out of this mindset. That's one of the hardest pieces of teaching an adult. And so one of my favorite pieces of teaching a kid too, Kelly Paredes: [00:44:53] Seems to be like a thing I say constantly. I just want you to try, I say it all the time to the sixth and seventh graders. Cause sometimes they just, it is it's. I can imagine what the adults, we try to get a couple people to do Python in the classroom. Some are more, willing to try things and others. But yeah, that's something we constantly say. I don't care if you fail, I will give you a hundred on your report card. I really don't care. I just want you to try. it's the great that's holding you back. Fine. You got a hundred. What do you want? I, a hundred in the class. I don't care. So yeah, I can't really do that to adults because it's not like they're in there to get a grade they're in there to improve themselves. So trying is scary when you're trying to learn new things or improve yourself. it's, I read that one of your blog posts about the imposter syndrome and it's, it was something that I've been grappling with the whole time getting better at it. But at least I know a basic solidly. Ali Spittel: [00:45:49] no, it's so tough. And grades are something that was like a huge soap box for me is some people would try to artificially put grades on things and it was like, so against that for adult learners, they've got enough external, Pressure on them already. they don't need that. And I think for me, at least when I was in college, I think it was something that really prevented me from learning. And if I had not had a grade, I probably would have gone further with computer science because so worried about that, be on my transcript and looking back, it didn't matter at all, but at that point it was a really big deal. Kelly Paredes: [00:46:23] Yeah, it'd be really cool. If we can switch it instead of like pass fail to you, try to, or you didn't. Ali Spittel: [00:46:28] Yeah, exactly. Exactly. Sean Tibor: [00:46:31] Yeah. And I always tell them, if you try and you. Put the, like the work in trying to figure it out, the grades will follow, right? Like the grades should be a reflection of the, what you've learned in the work that you've put into it, not this thing onto themselves. And I think a lot of students lose that perspective because they have a lot of external pressure, right? They've got pressure from their parents. They've got pressure from their peers. They're trying to, strive for this goal. And if we help them understand that the goal is really not. Getting the report card grade it's about the knowledge or the useful skill that you can use to make your life better than, I think it will free them from a lot of those kind of prisons that they put themselves in when they start applying grades to it. Kelly Paredes: [00:47:14] One last question. if you could give one, one single piece of advice for anyone looking to go into say a full stack developer or software developer, anything, Maybe as a student that might be going into that career, thinking about that career, what would that one piece of advice do? Would you say? Ali Spittel: [00:47:34] Oh, wow. This is so, so tough. I've done like three pieces of advice before I've done. 10 I've done 25. One is really tough. I think when you're just starting out, one of the things that I see most often is this fear of breaking things. And we've been talking about this a little bit, but yeah. Following tutorial after tutorial, because you're too maybe afraid to break outside of that and just try to build something and seeing what happens and finding those errors and fixing them, and like having this growth mindset about it, of, I can learn this or I can expand my knowledge. And I think getting that especially early on is so important and such a huge piece of this and something that I wish that I had fostered myself earlier. Sean Tibor: [00:48:22] my question was, do you have any questions for us? Is there anything about teaching in middle school or our experience that you'd like to learn more about that we can share with you? Ali Spittel: [00:48:30] honestly, everything like you all have my someday dream jobs. So what do you all teach as your curriculum? I heard a little bit of turtle, which is so much fun, but is that the main basis of what you teach? Kelly Paredes: [00:48:43] no. So in sixth grade, I start them off with basic Python three. I've found that doing turtle first. I lose them forever because, they love it. I teach them all the basics and I go, okay. Vocabulary, but I don't teach like vocabulary quizzes. I just say the vocabulary over and over again, because I felt when I learned the vocabulary and somebody was telling me to code or something, or I needed to ask questions, I needed to have the vocabulary. So a lot of the first four weeks, five weeks as me list variable object that, let's copy and do that. And then I do Python and I show them, you did the list, you didn't object to it and nothing. And then, We did two more weeks with the microbit hardware. because a lot of kids like that, instantaneous, and again, I showed them that it's the same thing as the Python three. And then we do a demonstration of learning project, which is about two weeks and seventh grade. We review Sean Tibor: [00:49:41] It's a, it was a spiral, right? So we start with a review and then we spiral down into some of those topics. So, whereas, and this is where Kelly and I each teach one class of seventh grades. We split the grade level and we are going deeper into each of those concepts. So in. sixth grade, they might've learned about lists and how to add and remove things, but we might get into list sorting, or we might get into randomization and shuffling, and we try to do this through projects. So like one of the projects that they do is making their own class schedule, right. So they have, they use the order of the list to make their class schedule and have all their class periods. And. and then I, my favorite thing to do is to have them like, try to print out their schedule with print statements and have them figure out the formatting and everything, and let them work with that for a little bit. And then I'm like, okay, and now I want you to just import this library called tabulate and give it your list and just have it like print the whole thing beautifully for you. so that you can see the value of these things. So we start to introduce new concepts, like external libraries and, more advanced methods and things like that. Kelly Paredes: [00:50:39] And then we also do a little sort of a version control. We do a lot of say we have a project rock paper, so there's something that's out there. And Google bull. We always want them to write and not look up. The information online. Cause we tell them, listen, if it's all, if else, print input statements, that's where your learning is. We're going to take in. So that's what Sean was doing with also with the schedules we iterate over it to show them how it can be improved. Okay. Go eighth grade. Sean Tibor: [00:51:07] Right. And then in eighth grade, we are really trying to help them continue to build those skills of researching and learning and figuring things out, troubleshooting, handling error messages, knowing what to do when this happens. and we revisit a lot of those concepts. So this year, one of the scariest things for me to teach, but w ended up being. Really great was, we took a card game project that they had learned in seventh grade and done all with lists of two poles. And we had them do that as a class based object oriented project. And so we talked through like how to make a card class and a debt class and how these things would inherit, properties and everything. And they got so excited about it. Cause , some of the kids were like, this makes so much sense, but we also had that conversation that said, okay, well, For those of you who this is not better. Like why, what do you like better about the old way of doing it? And we had this really great conversation about, these things, not being better or worse, that there's just two different approaches to solving the problem. And depending on how you think through it or how you solve it is really what is going to inform how you approach the problem and how you choose to solve it. Kelly Paredes: [00:52:13] And the kids like seeing, because I always joke around. I'm like, okay, I'm going to show you, ms. Parade is his way of solving this project. And then I'm going to show you what mr. Tyler does. So it's really nice for them to see. They know that I've only been coding for almost, not even three years, but almost three years. And. So it's nice for them to see. I'm still, I can still walk through the basics and they can read my code, but they all agree. two lines of code is so much better than writing your 10th line. So yeah. Yeah. Okay. But you can read mine. I know it's Ali Spittel: [00:52:43] That's awesome. Kelly Paredes: [00:52:44] but I think like the underlying skill that we do constantly, we teach a lot of, learning how to learn skills. And one of the major skills that we teach is just the ability to read. And it sounds so funny, but the kids reading for understanding, reading, for learning, reading for content, reading for skimming, the different parts of reading, and, it's been a fun learning process cause I've told them that my brain has completely switched since I started learning code. And like I learned how to read for understanding really well. And so that's something that we really take into heart when we're teaching. So. It's it's the, probably the most frustrating part for them. Cause we, we make them read and read out loud and read again. So. Ali Spittel: [00:53:29] But there's so many skills that go into programming and then there are so many that it applies to afterwards. And I think that's so awesome. and why I think that there should be more classes like this because so many of these skills are so widely applicable, even if they don't become coders, they. Just apply to everything else. So just so cool. Kelly Paredes: [00:53:50] Yup. I Sean Tibor: [00:53:51] we've often told them that it would, the reason why we do this is because it gives them one more tool or one more set of tools that they can use so that they don't have to use it for everything. But it's available to them as an option now that maybe they didn't have before. Ali Spittel: [00:54:05] So cool. Kelly Paredes: [00:54:06] All future full stack developers coming your way. Ali Spittel: [00:54:10] everybody in the future will be a full stack developer. Sean Tibor: [00:54:14] So Allie, if people want to follow what you're doing and learn more, and I pulled together a few things, they can, listen to the ladybug podcast, which is awesome. the 13 year old inside of me is still giggling about data shards, but it's a really great conversation about, a whole variety of topics within. Coding, computer science, engineering, all sorts of things. And I always learn a lot from you and your co-hosts about, so many different topics and things I hadn't thought of before. So I definitely highly recommend that. you've also got a pretty lengthy, and substantial blog on your own blog, as well as on the dev, dev to site. and then you also have this new job with amplify at AWS working on making full stack, more accessible or more, More fun, I guess, than it has been in the past. So tell us a little bit more about what people can check out that you're working on now. Ali Spittel: [00:55:06] Yeah, for sure. The hub of everything is a hospital, which has my Twitter account. And that I'm a hospital on most like platform. So easiest to find me. there, but my blog is we learn code.com. And so a lot of writing goes on there. and ladybug is so much fun. I love doing the podcast because I learned so much from my cohosts every time that I record it. Yeah. So, we're always talking about. different topics within tech and our different, specializations. We're actually recording a Python episode later this week. So it's pretty exciting. but yeah, and then amplify a brand new to this team, like a month and a half into my new job. But AWS amplifies this platform for development that allows you to pretty much generate a backend in a couple lines of. Code, mostly just typing things into the CLI and it generates it all for you. And then you don't even really need to deploy it. It's already built out on AWS for you. So it makes the whole process really smooth. And so I'm really excited for the future of that and see how it evolves because it's a really new product in it of itself. But I think the forefront of. Making code easier is really cool. And we're on this cutting edge of that. Sean Tibor: [00:56:25] That's really cool. that's the real power of, the era that we're in right now is that things can scale so quickly, you can build something scale. It really make it happen fast. but. Having that on-ramp, that ability to quickly really understand it and get something going. Is it all the effort that you make into making it easier for people to do that is really going a long way because even just a few years ago, to know how to deploy something to Heroku or AWS required a fair amount of knowledge and understanding of how it all fits together. And so having that on-ramp to be able to automate some of that and make it easier is a really cool thing. Ali Spittel: [00:57:04] Yeah. Yeah. When I was starting off, it was Ruby on rails. And Jane go that we're making web development much easier. And now we have amplify it, which just allows you to type a couple things into the command line. And it does it all for you. So it's really cool to see how these things have progressed. Even in my like eight year career. Sean Tibor: [00:57:23] That's pretty cool. So, I think we'll wrap it up here. we've talked a lot about a variety of topics . if you'd like to talk more, you can always, Follow us on twitter@teachingpython.fm. You can contact us through our website, teaching python.fm. Kelly is at Kelly Perez on Twitter. I'm at SM Tibor on Twitter and I'm at AK grown on the PlayStation network. Not that I'm ever on there. Kelly Paredes: [00:57:46] I don't know if you know about this joke, but he adds a new social media platform at the end, and I never know what we're going to get. So. Ali Spittel: [00:57:52] That's so funny. Sean Tibor: [00:57:54] w a big thank you to all of our sponsors on Patrion. It really helps keep things going and helps make this happen every week. So thank you for that. we are looking to schedule our episodes for Tuesdays, so you can keep an eye out for those. we've also started introducing blog week so week where we. Don't record and we focus on getting new content to our blogs. So look for new posts coming more frequently there too. All right. And a big, thank you Allie to joining us this week. we really appreciate having you on the podcast with us. It's been a fascinating conversation. We would love to have you back pretty much anytime you want. Ali Spittel: [00:58:27] thank you so much. This has been Daniel Day, so, so fun. Sean Tibor: [00:58:30] Oh, good. Good. So for teaching Python, this is Sean. Kelly Paredes: [00:58:33] This is Kelly signing off.