Learning (and teaching) Python in a vacuum
Episode Deep Dive
Guest Introduction and Background
Rusty Gregory is an educational technology specialist at a small K–6 school in Vermont. He has a longstanding passion for the web, starting with front-end tools like WYSIWYG editors, then advancing into HTML, CSS, and managing WordPress sites. Wanting to teach and learn in a more rural setting, he dove into Python to help automate tasks and inspire his community to become creators rather than mere consumers of technology. Rusty’s journey includes teaching HTML at the college level, running school IT programs, guiding students with Scratch in elementary classes, and even building a custom Python web app to track his family’s state park adventures.
What to Know If You're New to Python
If you’re just getting started with Python and want to follow along with Rusty’s journey, here are a few tips and mentions from this episode:
- Automate the Boring Stuff: A highly recommended beginner-friendly book that teaches you practical ways to save time at work through short Python scripts.
- Code Combat: An interactive way to learn Python by writing code in a gamified environment that’s more welcoming than a blank text editor.
- Python Tutor: A visual debugging and teaching tool that shows you how your code executes, step by step.
- Replit: A web-based environment perfect for Chromebooks or for sharing code without installing anything locally.
Key Points and Takeaways
- Learning (and Teaching) Python in a Vacuum
Rusty lives in a remote part of Vermont, where in-person programming mentors are hard to find. Still, he forged ahead using online communities and resources, proving that geographic isolation need not be a barrier.
- Tools and Links
- reddit.com/r/learnpython
- talkpython.fm community Gitter (gitter.im/talk-python)
- Tools and Links
- Transition from Front-end Web to Python
Rusty’s background is in HTML, CSS, and WordPress. His early interactions with PHP code were mostly “read-only.” When he discovered Python, he found it more approachable and versatile for automation and building complete web apps.
- Tools and Links
- wordpress.org
- css-tricks.com
- Tools and Links
- Introducing Programming to K–6 Students
Elementary-school learners get a gentle, visual introduction to computational thinking via Scratch and hour-of-code initiatives. Rusty noted how young children can do more than teachers initially expect, especially when given hands-on, game-like tasks.
- Tools and Links
- scratch.mit.edu
- hourofcode.com
- Tools and Links
- Code Combat for Python Basics
Code Combat turned out to be Rusty’s go-to tool for moving beyond block-based coding toward typed Python. The step-by-step game-based challenges provide real coding practice without being overwhelming.
- Tools and Links
- codecombat.com
- Tools and Links
- Importance of Building Personal Projects
Rusty’s first meaningful project was an application for automatically tracking park visit points in Vermont. Even though it’s not widely used, the process taught him Flask, cookies, file handling, and more.
- Tools and Links
- flask.palletsprojects.com
- python.org (official docs for file handling)
- Tools and Links
- Automate the Boring Stuff
Al Sweigart’s book is singled out as a perfect solution for novices wanting to learn Python while saving time at work. Rusty automated tasks like resizing hundreds of staff photos and emailing reminders to faculty, all of which came from the book’s approach.
- Tools and Links
- automatetheboringstuff.com
- Tools and Links
- Overcoming Deployment Challenges
Moving Python apps from “it runs on my computer” to a publicly accessible space was eye-opening. Rusty first tried PythonAnywhere for simplicity, then struggled (and kept learning) about Linux permissions, gunicorn, and sockets on platforms like DigitalOcean.
- Tools and Links
- pythonanywhere.com
- digitalocean.com
- Tools and Links
- Harnessing Data with Google Sheets
Rusty calls Google Sheets a “poor man’s database” for quick-and-dirty data storage. Python packages like
pygsheets
let you pull, process, and push data from Sheets while letting less technical staff input data themselves in a familiar interface.- Tools and Links
- github.com/nithinmurali/pygsheets
- google.com/sheets/about
- Tools and Links
- Empowering Teachers to Teach Python
Rusty believes more classroom teachers can learn just enough Python to empower their lessons. There’s a massive need to grow the number of teachers comfortable with basic coding so they, in turn, can spark curiosity in students.
- Tools and Links
- local adult-ed or continuing-ed classes (Rusty taught web design at a community college)
- realpython.com
- Tools and Links
- Music Education as a Model Rusty compared music education - where you have dedicated teachers, instruments, and regular practice - to what coding education could be. The current push to integrate coding is sometimes scattershot, but a methodical approach like music instruction can foster deeper and lasting skills.
- Tools and Links
- bbc.co.uk/microbit (micro:bit example from the UK)
- scratch.mit.edu (where you can connect micro:bit and Scratch)
Interesting Quotes and Stories
“I felt like once I started coding, my computer became this huge, wonderful machine I could create stuff on. It made me feel like a kid again.” - Rusty
“I got a hug from my assistant principal when I automated the training emails, because she no longer had to be the nag to get everyone to finish their yearly trainings.” - Rusty
“Music education is a great model. We have dedicated music teachers, instruments in every school, and kids get pulled out of class for lessons. Why not the same support for computer science?” - Rusty
Key Definitions and Terms
- Code Combat: A browser-based platform that teaches Python (and other languages) through a role-playing game format, offering real typed code rather than block-based interactions.
- Hour of Code: A global movement by Code.org to introduce K–12 students to one hour of computer science, aiming to demystify coding and broaden participation in the field.
- PythonAnywhere: A PaaS (Platform as a Service) site for easily hosting and running Python applications online without managing your own servers.
- Flask: A popular Python web framework that provides a lightweight yet powerful way to build web applications, known for its simplicity and fine-grained control.
- Replit: An in-browser development environment supporting many programming languages, including Python, ideal for Chromebooks and collaborative projects.
Learning Resources
Here are some great resources if you want to deepen your Python knowledge or gain teaching confidence, especially for beginners:
- Python for Absolute Beginners: A solid, welcoming introduction to Python that covers core concepts while keeping you motivated with hands-on examples.
- Automate the Boring Stuff: Learn practical scripting for everyday tasks.
- Real Python: Articles, tutorials, and step-by-step guides for Python at all levels.
Overall Takeaway
From elementary classrooms to small-scale web apps, Rusty’s experience shows that Python remains both accessible and empowering, even for people working in isolation or unconventional settings. By tapping into online communities, building real projects to deepen knowledge, and bringing a music-education-like commitment to schools, anyone can catalyze a coding culture - even in the most remote corners of the map.
Links from the show
Automate the Boring Stuff Book: amazon.com
Head First Python Book: amazon.com
Python Anywhere: pythonanywhere.com
Python Tutor: pythontutor.com
repl.it: repl.it
Socratica Video: youtube.com
Pretty printed: prettyprinted.com
Real Python: realpython.com
Learn Python on Reddit: reddit.com/r/learnpython
CheckIO: talkpython.fm/75
Code Challenges from PyBites: codechalleng.es
Anvil Web Apps: anvil.works
Talk Python's Gitter Channel: gitter.im/talk-python
Dan Bader's Pythonista Cafe: pythonistacafe.com
Rusti's web app: frdealer.pythonanywhere.com
Episode transcripts: talkpython.fm
--- Stay in touch with us ---
Subscribe to Talk Python on YouTube: youtube.com
Talk Python on Bluesky: @talkpython.fm at bsky.app
Talk Python on Mastodon: talkpython
Michael on Bluesky: @mkennedy.codes at bsky.app
Michael on Mastodon: mkennedy
Episode Transcript
Collapse transcript
00:00 How do you learn to program when you're working in a vacuum?
00:03 Sure, there are resources on the internet, but sometimes just bouncing ideas off other people
00:08 in person makes a huge difference. Join me along with Rusty Gregory as we discuss how he's learning
00:14 and teaching Python in a small town in Vermont. This is Talk Python to Me, episode 194, recorded
00:21 January 4th, 2019.
00:23 Welcome to Talk Python to Me, a weekly podcast on Python, the language, the libraries, the
00:41 ecosystem, and the personalities. This is your host, Michael Kennedy. Follow me on Twitter
00:46 where I'm @mkennedy. Keep up with the show and listen to past episodes at talkpython.fm
00:50 and follow the show on Twitter via at talkpython. Hey, everyone. Before we get to our conversation
00:56 with Rusty, I want to tell you about a new course we just launched, Introduction to Ansible.
01:01 This one was created by Matthew Mackay of Full Stack Python. If you're involved with deploying
01:06 a web app or managing servers, especially Python web apps, you owe it to yourself to check out
01:11 Ansible. It provides a declarative way to provision, configure, and evolve infrastructure and applications.
01:17 What makes it even better is it's written in and can be extended in Python. Check out the course
01:23 over at training.talkpython.fm. Corporate and team options are available too. Now let's talk with Rusty.
01:29 Rusty, welcome to Talk Python.
01:31 Wow. Thank you. Thank you for having me. It's good to be here.
01:34 Yeah, it's great to have you here. Super excited to talk about learning Python and teaching Python
01:39 in your world. But before we get to all that stuff, let's just start with your story. How do you get
01:44 to program in Python? I've been playing around with the web for quite a long time. I had a basic
01:49 class in high school back in the early 90s. And then basically, I started to work on the school
01:55 web page when I got hired out of school and taught myself HTML and CSS and kind of made the transition
02:02 from using WYSIWYG editors into using Notepad++ and learning the code that way.
02:09 I think that's really interesting. I don't feel like WYSIWYG editors are really much of a thing.
02:14 They used to be big. I don't know if people listening realize how big they were. There was
02:18 FrontPage and there was Dreamweaver and there was Visual Studio with its ASP.NET stuff. And it was
02:26 very programming. It was like, write your website in Word.
02:29 I feel like once you went to CSS, that WYSIWYG editors couldn't really keep up with it.
02:35 So then after that, you were just better off typing in code.
02:38 I was thinking that as well. WYSIWYG editors, I guess the best they could do was tables.
02:43 Right. Here's your table. Change the color in your table if you like it. Stretch it to the right.
02:49 I mean, didn't the early days of the web feel like a lot of borderless tables? That was crazy.
02:53 It really was. Everything was a table and merged cells and all that kind of stuff. It was great.
02:58 But then once we had many different sizes of screens to deal with, it didn't really meet the
03:03 deeds of what we were going to. And then mobile, there's no way you could do a table-based design
03:08 in mobile.
03:08 Yeah. You don't care too much about responsive tables these days.
03:10 No. When I first started teaching HTML, we had to design two different sites, right? There was a
03:17 mobile site for something and then there was a regular site.
03:19 Oh, that's right. I remember. Do you remember the .m domains? Or like if it was, you know,
03:24 talkpython.fm and be m.talkpython.fm. I totally forgot about that subdomain.
03:28 And there was all the horrible converters that you could use to just click a button and change
03:34 your site into something that worked on mobile. And yeah, it was a lot of work.
03:38 Yeah. Yeah, it was a lot of work. Programming used to be hard. It still is, but in a different way.
03:42 I do want to just ask you a little bit about the CSS since that's part of your transition here. I feel
03:48 like when you're trying to write websites, it's just so hard to get them to do what you want them
03:55 to do and behave correctly until you sort of bite the bullet and learn CSS. And, you know, maybe it's
04:01 a two or three week really hard studying period, but then on the other side, it just opens things up.
04:08 I mean, you did a lot of CSS. How do you feel?
04:10 It became a lot of fun, actually. It wasn't as much hard work kind of doing things. And in the early
04:15 days of CSS, not all the browsers understood everything. So you had to, there's only certain
04:20 things you could do and then you had to hack it back. So it worked on IE or whatever it was that
04:23 you were doing, but it was a lot of fun. It really added the fun and made me want to go further.
04:28 I started just buying CSS books and, you know, everybody took you through the basics of one site
04:33 here. We're going to start this site. We're going to end up with this site. So, you know,
04:36 just designed three or four sites as I read through these books. And eventually every book I bought,
04:41 I'd already read, you know, I already knew what they were saying. So I finally felt confident at
04:45 that point.
04:45 That's really cool. I think the book that I learned CSS through was something called CSS,
04:51 the missing manual. I think that was it. That's a good one. Nice. Okay. So you started out with
04:56 front page and, and WYSIWYG stuff and you sort of graduated to real web development, right? With CSS.
05:02 And where'd the story go from there?
05:03 Basically I started a little website business. We had two daughters at a time instead of one
05:09 and I needed to earn some extra money. So I started doing small websites for people.
05:13 And then I found that there was a job open at a junior college and it was, I was making just as
05:18 much money teaching web design as I was creating sites for small businesses, you know, small local
05:24 businesses at that time. So that was a great jump for me. So I love to, I work at an elementary school
05:29 during the day. So it was great to go and work with adults in the evenings and, and kind of get
05:34 my coding fix at the same time. It was a lot of fun. And that got me into WordPress eventually. So
05:39 then as soon as I got into WordPress, there was a, you can use a lot of WordPress without having to
05:44 get too heavy into databases or PHP at all. In fact, you really don't have to know anything about
05:49 that if you don't want to. But when I started with WordPress, you still had to create your own
05:52 database programmatically. And then, and the updates were as a matter of overwriting files and things
05:58 like that. So it was a nerve wracking kind of a process. So I had to learn a little bit more
06:03 about PHP so I could fix things when I broke them, but I never was able to create anything in PHP. I
06:08 was only able to, to just change things. It was mostly a read only language for you. Correct. Yeah.
06:14 But it was, I knew I wanted to learn it. So then I bought a couple of PHP books and I could never,
06:20 ever crack it. I never got past, you know, just trying to figure out what the difference between
06:24 integers and, and, and everything, not that that was too much, but it was, it was boring.
06:28 So I never got into the part where I could get to functions or creating stuff in there.
06:32 Yeah. PHP takes a lot of heat or negativity from real programming languages or whatever, but
06:37 a lot of the web runs on PHP and WordPress in particular, like a serious amount of what you do
06:44 on the web is interact with WordPress, right? And PHP. And of course, Facebook.
06:47 I feel like I could go back now and it would be, it would be easy because I've got the basics down,
06:51 but I could never get past the basics. And you know, every, every book I bought only showed me,
06:55 you have to know these things so you can become proficient. So, but I never got to the part where
06:59 I was proficient. I'd give up before that. Yeah, of course. Do you think that is because
07:04 PHP is always, as least as I see it, it's always like mixed in with the web. So you're,
07:11 you're programming in a webpage where something like Python or JavaScript, you can do it separately.
07:17 Yes.
07:18 Yes.
07:18 See, it's sort of learn it in isolation and then bring it into the web.
07:22 Right. There's a lot of moving parts when you're playing with, yeah. When something that's inside
07:27 WordPress or yes. Yeah. Exactly.
07:30 For me, I couldn't really grasp a lot of the programmatic programming concepts for me,
07:34 writing functions, how those interacted, you know, sticking things in hooks, all that didn't
07:38 necessarily make sense. I didn't have anybody to ask at the time. I live in a pretty remote part of
07:43 the world and there's no formal training for any kind of those languages around here. There's no,
07:49 there's nobody I could ask, you know, other than message boards and message boards weren't even that
07:53 huge at the time, actually, or at least mine, my experience with them wasn't very big at the time.
07:57 I feel like there's a lot more communities out there that you can jump into these days. And we'll,
08:01 we'll dig into that a little bit, a little bit later.
08:04 Yep. So, yeah. So what are some of the, if you had, you know, not a lot of people or, or official training,
08:09 like what are some of the resources you had available?
08:11 There was a podcast, WP Tavern. I used to listen to a lot. Then he had a forum. There was a CSS
08:16 tricks was a great place. And that gentleman also had a forum there. So I go to those places. There's
08:22 a guy called Justin Tadlock, who was a big influence that wrote a lot of the stuff about best practices
08:27 and how to do things the right way when you're, when you're writing. I didn't really know there was
08:30 such a thing as sloppy code and good code at the time. So I actually started to take some of his
08:34 plugins for WordPress and just kind of change them to do things that I wanted. You know,
08:38 I could, I could open up as one of his plugins and then see how, where he'd put different things
08:43 and start to just change the language, you know, so it matches what I wanted to do and figure out
08:47 how to do things that way.
08:48 Yeah. Sounds good. So you gave us a little bit of what you do day to day, but maybe expand on that
08:55 just a little bit. So folks know where you're coming from.
08:57 Sure. I'm an educational technology specialist at a K6 school here in Northern Vermont and spend most
09:03 of my day kind of doing staff training, managing databases. I run the state testing for my school.
09:09 I teach digital citizenship directly to kids. We work with the hour of code event and basically just
09:16 kind of all around stuff. We have a hardware guy that does all the hardware stuff, but if you need
09:21 to know how something works at school, then I'm usually the person that you ask. And if something's
09:24 broken, we go to Josh. So yeah.
09:27 Nice. This keyboard doesn't work. Call Josh.
09:30 Exactly. If I can't fix it in 10 seconds, it gets moved on to him.
09:35 Yeah, exactly. So it sounds pretty interesting, like a bunch of different things. What does
09:40 digital citizenship entail? I can imagine things about that, but maybe tell us what it means when
09:46 you're teaching it.
09:47 It's teaching kids what the correct behavior is online, how to get around, you know, basically
09:52 that if it happens online, it's the same as if you'd done something to somebody in real life. It's also
09:57 being aware of, you know, advertisements. And I taught a lesson on Photoshopped images online and
10:03 things like that. Just trying to get kids an awareness of the digital world.
10:07 Yeah. I think that's pretty important. I think it's going to get harder. It's going to get harder too.
10:11 It is. A lot of kids are using technology, kind of not necessarily in the shadows, but not parents
10:17 aren't aware of what's going on. You know, as long as the kids are quiet, a lot of, a lot of the
10:21 population that I work with, the parents are kind of happy and then they don't ask a lot of questions.
10:25 So it's kind of our job to make sure that they are aware of all these things that are going on out
10:29 there.
10:29 Exactly. I'm also a big fan of the hour of code. We kind of are a little bit out of phase with the
10:35 right time to talk about it, but it's, you know, since it's usually December, but
10:39 maybe tell people real quick about the hour of code as well.
10:42 Hour of code is a movement that started about three or four years ago. I want to say maybe we're in the
10:46 fourth or fifth year and it's a movement to try and get every child exposed to coding for an hour
10:52 during the, during the school year, just to, just an hour to get started. We try and get to every kid
10:57 in school and make sure that they have an opportunity to code for an hour and just basically intro everybody
11:02 to it. And it's also an intro for students and the staff or sorry, the staff of the adults that work at
11:07 our schools to try and get them exposed to what's what coding means and how easy it is to get started.
11:12 We never really get in depth in the hour of code, but it's really just designed to be an introduction.
11:17 We're not trying to train everybody to be a computer scientist, but we want everybody to understand what goes on in
11:22 their computers.
11:22 Yeah. People will probably get tired of me saying that, but I really think that we don't need a whole lot more
11:27 programmers, but I think we need a lot more people with some specialty that also have programming skills to amplify
11:33 that specialty. I think the hour of code is, is right in line with like that, like inspire you to think,
11:39 Oh, this programming thing I could do. And I'm also interested in biology. So maybe, you know,
11:45 some point down the road, you're like, Oh, I need to automate this thing. I can program that. I can
11:48 figure out how to program that.
11:49 That's exactly how we approach it at our school. And I think most schools are that way as well. You know,
11:53 we don't expect everybody to do it for the rest of their lives, but we want people to be more
11:57 than a consumer if we can help it.
11:59 Yeah. We definitely need more creators and fewer consumers. What kind of technology do you teach? Do you teach
12:06 scratch or you said elementary school? So these are first or kindergarten to fifth, sixth grade, something like
12:13 that.
12:13 Yep. We're K6. So I basically, we don't get much further than scratch. I've had a couple of Python students so far,
12:19 but just very, very basic stuff. They're going on to middle school where they might have more opportunities
12:24 there. So for the most part, if I can get kids and access to kids and get a small group of scratch
12:31 creators, then that's what I'll do on a regular basis. So we're starting to do that on a, you know,
12:36 every six weeks, eight weeks, change out the group and just trying to get kids a little bit excited.
12:39 And if I can get them to understand loops and maybe if we get to a variables, that'd be great.
12:44 Yeah, for sure. What grade levels did you go through with this on?
12:49 So fifth and sixth grade, sixth grade is where I get the most access to kids. So that's where I'll work the
12:54 with the scratch. And that's the only place that I would really even try Python.
12:57 Yeah, I think definitely you have to be a decent typist, decent reading level and stuff to do written
13:04 code. You know, I did an hour code thing a couple of times at my daughter's school and we did it when
13:09 she was in first grade, I think. And we ended up doing it with everybody from first grade through
13:15 fifth grade over that, that week. And the teachers and the administration were kind of blown away about
13:21 how much the first, second, third graders actually took to it and could do it. Like, I don't even know
13:26 if we could do it with them. Like they'd be really young. By the end, they had all these great little
13:30 things built and it was super cool.
13:32 Yeah, it's a lot of fun. Actually, with the hour of code, we do do kindergarten all the way through
13:35 sixth grade. We do iPad apps from kindergarten, first, second grade from code cards. And then
13:41 there's, I want to say, a block box island. And there's a couple of different activities and
13:46 they're mostly just, you know, a little drag and drop, five or six instructions in a row kind of
13:50 thing. And then the hour of code has hundreds of activities that I let the kids, the older kids get,
13:55 the more choice they get. And that's where they first start with this program called code combat,
14:00 which is the first time where they can actually start typing in code. And it's a great introduction
14:05 to, and that's where I got started actually with Python.
14:08 I want to ask you more about code combat, but I realized I sort of jumped ahead on your story
14:13 without letting you talk about how you went from WordPress into Python.
14:15 No worries. It got a little long. So yeah, WordPress, I spent a lot of time in that for years and years
14:21 and years. And then actually the hour of, or the hour of code two years ago, I decided I was going to
14:26 try and learn a little bit more actual coding. Cause I don't know that, I mean, HTML and CSS is, is writing code, but I don't necessarily consider it. It's not programmatic
14:35 code. So I started with code combat after the hour of code. And then I bought a subscription to it,
14:41 which is, it was like $75 for a lifetime kind of access to all the activities. And it opened up a lot
14:47 more activities and I just banged away at it all summer. And things finally started to stick for me.
14:53 I finally was getting used to the syntax and all that type of stuff. And then I bought a couple
14:58 other books after that, but code combat is really what kind of got me over the hump. And you know,
15:02 it's a program written for a, you know, fifth and sixth graders to expose them to coding, but I found
15:08 it really, really valuable as kind of an introduction.
15:10 This portion of talk Python to me is brought to you by Linode. Are you looking for hosting that's fast,
15:17 simple, and incredibly affordable? Well, look past that bookstore and check out Linode at
15:22 talkpython.fm/Linode. That's L I N O D E. Plans start at just $5 a month for a dedicated server
15:29 with a gig of Ram. They have 10 data centers across the globe. So no matter where you are or where your
15:34 users are, there's a data center for you. Whether you want to run a Python web app, host a private Git server,
15:39 or just a file server, you'll get native SSDs on all the machines, a newly upgraded 200 gigabit network,
15:46 24 seven friendly support, even on holidays, and a seven day money back guarantee. Need a little help
15:51 with your infrastructure. They even offer professional services to help you with architecture, migrations,
15:56 and more. Do you want a dedicated server for free for the next four months? Just visit talkpython.fm
16:02 slash Linode. So I had not heard of code combat before, and I checked it out when you mentioned
16:09 it in the show notes. And it is really cool. I really like it. Yeah, it is. It's a really great
16:14 way. I think they've really kind of hit on just enough intro, you know, for each concept and then
16:19 getting you to use it over and over again. It really was just kind of the repetition. And it might bore
16:24 some people, but it was really what I needed for everything to just kind of stick. Yeah. So maybe I'll
16:29 try to describe it for folks and you'll have to correct my description because it's only from a little
16:33 bit of experience. So you go in there, you've got this kind of like universe of places and you can go
16:38 through these different areas and they teach or challenge you with different skills. Some of
16:42 them are just calling functions. Some of them are strings, you know, like standard stuff. And it
16:47 looks like you can do it in Python and Java, but I like to see that the default is Python or JavaScript.
16:51 Sorry. The default is Python. That's, that's really cool. And what I really like about it is it
16:57 feels almost exactly like scratch or one of these visual programming languages. But what I don't like
17:04 about those is they, they show you, well, here's this block and there's that, here's the,
17:09 the move block and here's the loop block and all that kind of stuff, but it doesn't feel like
17:14 programming, right? It's still like a big step to go from getting experience with that to actually
17:18 writing a program, right? It's like a totally different way to be. Right. Whereas, yeah. Whereas
17:24 this it's, you actually start writing code from the beginning, but it's so supportive,
17:29 right? You type like one or two characters and here's the list of the four or five things you can
17:35 do. It's really nice. Right. Yeah. The autocomplete's really handy there. Yeah. It's a great bridge
17:39 between the two. Yeah. So I, I definitely think this is a super cool thing for anyone, either really early
17:45 learning to program or, you know, interacting with kids or other folks who are really early. This is,
17:51 it's really great. Yeah. I wouldn't hesitate to recommend it as a beginning place for children
17:54 for certain. Yeah. Yeah. For sure. I think I'm going to do some stuff. My daughter still has a few
17:58 days vacation before school goes back. I might do a few, a few little dungeons or whatever you call
18:03 them with her on this one. That's cool. So yeah, I like that. So you started, you started messing around
18:07 with that for our code and you're like, Hey, this Python thing, not bad. Yeah. Automate the boring
18:11 stuff was recommended to me. I got onto, I started working with a millennial, who introduced
18:16 me to Reddit and, basically started searching on there for what people recommended to get started
18:22 and automate the boring stuff was, was really quite high in the top of everybody's list as a good
18:27 book to get started with. So I picked that up and basically I am the target audience for, for that book.
18:34 That's cool. I've had Al Swigert on the show before and talked about his book, but maybe just
18:39 summarize, like some of the stuff that's covered there and why you're the target audience.
18:42 Basically he says it's, you know, it's for people who just want to learn a little bit of code to help
18:46 with their job. And basically a lot of what I do is managing other people's information.
18:50 So it goes through and it talks about how to crop pictures and how to, you know, with Python,
18:55 and then it goes into how to work with spreadsheets with Python and just all these different,
18:59 like day-to-day tools that you could do. I mean, maybe if your job's, you know, building houses,
19:02 maybe they're not day-to-day tools, but for me or somebody who works at an office,
19:06 it was really, really eyeopening. And also I was, I wanted to learn programming at the same time.
19:10 So it was really, really great for me at the time I had, I was redoing the website and,
19:14 had all the pictures for the staff members. And so I just get a disc with, you know, 600 pictures on it.
19:20 And I wrote a program that went through and cropped each picture and resized it to the size that I
19:25 wanted. So I could put them on the website. And it was brilliant. I mean, that was like,
19:28 I was hooked from the moment I did that. That was, yeah. You probably had that disc. You're like, this is going to take three days.
19:34 Yeah. It probably took me longer to write that program than it would have if I had sat there
19:38 and stared at the computer and, you know, clicked incessantly for five or six hours, but it was a
19:44 great experience.
19:44 You escape with your sanity though.
19:46 That's right.
19:47 Yeah. I think that that's really a great way to leverage some of the, both programming skills you
19:53 have and learn new programming skills. A lot of times I'll find myself doing something repetitive.
19:57 I'm like, why is this just, this is a part of my day that is just really mundane and involves a lot
20:03 of copy and paste or other mindless things. And then I'll just realize, you know what,
20:07 if I just take an hour, write a little program to do this, then I'll never have to do this again.
20:12 You know what I mean? And I'll always do it right.
20:14 I see more and more opportunities for those types of things these days. You know,
20:17 it's just a matter of convincing people at work that that's valuable.
20:23 Yeah, that's true. That's true. I think that, I mean, that's a challenge around
20:27 software and management. Let's put them as, you know, it's even things like, should we take the
20:35 time to write unit tests? Well, the prototype works, just make it the real one. You know what I mean?
20:40 Things like that. But when I was in that position working a lot, I, people would ask me for estimates
20:46 like, Michael, how long is this feature going to take? And that features estimate would include
20:51 how long it took to write tests. It would include how long it would take to write like these little
20:56 helper scripts and stuff. And I wouldn't say, well, this much for the helper script, this much for the
20:59 test, this much for the main feature. It was like, it's going to take four days. Okay. You know,
21:03 and I just was sort of a don't ask, don't tell type of, like, I'm not going to talk about it.
21:08 They're not going to ask me. I'll give them something good on the deadline that's better than they
21:12 thought. So it'll be fine. Yeah. Yeah. That's cool. So you had the automate the boring stuff book.
21:16 You said there's some other books that you also enjoyed.
21:18 Yep. Headfirst Python. I really liked a lot. I teach with a headfirst book for my HTML and CSS class.
21:23 So I kind of went to that first because I liked the style that they do it. Headfirst Python was great.
21:28 Took me through it, introduced me to Flask. And since I was already kind of a web guy anyway,
21:32 that was an even bigger breakthrough for me. So that was a great book. And I learned a lot about Flask.
21:38 Basically, I stopped that book as soon as I learned enough about Flask to go out and start
21:41 Googling my own answers for things. And I was able to write my first couple of web apps,
21:45 Yeah. You have a cool web app for the state parks in Vermont, right?
21:49 Yeah.
21:50 Tell us about that.
21:50 Yeah. Nobody's ever actually used it. A little known fact about that, but not even my wife,
21:55 whom I kind of built it for. So basically, there's this program in Vermont where if you go and you
22:00 visit all the parks, they give you like these three worksheets that you work through and you get
22:05 certain points for it. If your kids build a rock tower on the beach, you take a picture and you get 10
22:10 points for it. It has to be in a state park or whatever. And you get 250 points. Then you take all your
22:14 pictures together and you send them off. So basically, if you look at a lot of the advertisements
22:18 in Vermont, it's like us and our friends and our kids on the advertisements, because they basically
22:22 take your pictures doing all these activities and put them up all over the place. So anyway,
22:25 at the end of the summer, usually all three couples, we all get together and sit there and go through all
22:30 this paperwork and do everything to make sure we have enough points to send off these things.
22:34 then you get free entry to the parks the next year. So I was like, well, what if I could write
22:40 something that would do this? So for us, well, it didn't really do it, but it did all the thinking
22:44 for us anyway. So I wrote a little web app that you can log in. I had to teach myself how to make cookies
22:48 and things like that. So you can sign in and then you can go through all of the activities are listed.
22:54 You just choose an activity and then you hit submit and then you can upload your pictures to it.
22:59 And then it keeps track of how many points you've got. You have to have so many things from each
23:03 category. So it keeps track of all that information for you. It renames your picture with the name of
23:08 the activity. And at the end, you can hit a little button and it zips all your pictures up and you can
23:13 download it. And then you could just give that to the state and everything's all set.
23:16 That's cool. So as part of the state program, do you get like something back? Do you just get posted?
23:21 Do you get to be part of the ads or what do you get for doing it?
23:23 That's what you're getting. You mean the average user?
23:26 Yeah. If the average user goes through this thing that the state's put together. Yeah.
23:29 You get a free entry into all the state parks the next year.
23:33 Okay. That's pretty nice.
23:34 Yeah. It's a decent trade-off. Plus there's always a chance that you're going to see your
23:38 kids on the poster when you go into the park or whatever as well. Yeah. So I thought that would
23:43 be a great use. It was a great, you know, it's basically all this was just bookkeeping,
23:47 but I just kind of put it all into a little web app and made accounts for all my friends. And I think
23:53 not even my wife has used it yet. So, but it was a lot of fun to great. It was a lot of fun to make.
23:59 And yeah, I learned a lot doing it. It basically got me back into trying to learn a bit more about
24:04 JavaScript because as soon as I started putting things on the, in the app, I wanted them to look
24:09 nice. So then I had to go back in and JavaScript and jQuery and stuff has changed a lot since I played
24:14 with it a bunch. So I got back into learning jQuery or, and then even trying to figure out if it
24:19 was worth learning jQuery still. So yeah. So you use Angular, you use React.
24:24 Exactly. It took me days to figure out what all those were.
24:27 I know. Sometimes it's just, you know, a little jQuery will go a long ways.
24:31 Yeah. That's pretty cool. I feel like this example highlights one of the things that can really help
24:36 folks level up their, their learning and their programming skills is to build a little project
24:44 app. Right. And if you wanted to, you could definitely expand this out, make this a like a
24:49 really, truly public, a public website, maybe even try to convince some of the folks to list it on like
24:56 the park pages where they talk about these things, stuff like that. Right. So, but just going through
25:00 this project, I'm sure you've learned so many things, right?
25:03 It was. Yeah. I learned, I learned a huge amount about Flask and about templates and, and all those,
25:08 how everything interplays. And again, like I said, I teach myself cookies to make sure it was like a
25:12 sign in only site. And that was a huge, and then how to store actual information. You know, I stored
25:17 everything in Jason files and every time there was a new page, I'd unpackage it and then I'd dump it
25:22 back at the end and stuff. So I've, I figured out how to get around that and I don't have to do that
25:25 anymore. And so the next thing for me is learn databases so I can make sure I can stick it in
25:30 a database and stop having to stick things in, in Jason files. So.
25:34 Yeah, for sure. And that makes a lot of sense. I think it's, it's these things that really help,
25:40 help people learn, you know, these little projects and that's great. You also talked about some other
25:45 resources. What else you got? Yeah. Well, along the way, like I was trying to learn Python with the
25:50 intention of eventually teaching it. So like my goal is to, to teach it in a school setting at some
25:56 point. So I kept really kind of meticulous notes about everything that I was using along the way.
26:01 Python tutor, there's a, there's a website called Python tutor visualize. They give you look for
26:06 visualize Python, you'll get to it. And it basically shows you, you know, you put your code in the left
26:11 hand side and then on the right hand side, as you create a variable, it's kind of like a debugger,
26:15 but it's very, very, very visual. You can actually see what each variable represents. So if you're
26:20 trying to go through a loop and you're trying to figure out what happens inside the loop, you know,
26:23 what X is equal to at this time and, and what two things are actually trying to match or,
26:28 or whatever, you can actually see that on the side. And that was a huge, huge breakthrough for
26:32 actually being able to understand what happens in a loop and understand when I'm trying to work with
26:37 a dictionary, like what that variable actually is at that point in time. And that was a huge
26:42 breakthrough for me. That was a lot of fun to play with. Yeah. Python tutor is a cool project.
26:45 I fill up, whoa. He's doing a lot of neat stuff with it. Yeah. So that was great. Replit was really
26:51 good. Repl.it. Since I teach in a school that is all Chromebook. And I think a lot of educators
26:56 these days are teaching in Chromebook schools. Replit was a great find. And it's since I found
27:02 it like a year and a half ago, it's changed so much and matured a lot. Now you can host your own
27:07 data files and things like that on there. And that was a great thing. So you can just put something in
27:11 there and then hit the run button and you go, it's like we'll have a little terminal. That was a lot of
27:16 fun to play with. And that's a lot of fun. Also, if you're looking for help online, you can put
27:20 everything in there and then you could just say, here's what I've got so far, instead of trying to
27:23 go through and explain everything. And posting up a question on something like Reddit is really
27:29 great for the answers you might get, but it takes a lot of effort to get it up there. Something like
27:33 Replit makes it a lot quicker. You can actually show people what you've got.
27:37 Right. Yeah. If you're going to say, hey, I'm having this challenge or why does this do this?
27:41 Right. Having something like a Replit link or maybe a gist or something like that, like where
27:47 where it's not just, I'm trying to use this function and it's behaving weirdly. It's like,
27:51 okay, well no one can help you with that. Right. But this is, this is super cool. You know, another
27:56 resource that I think for Chromebooks that's just recently announced and they actually sponsored
28:02 the show a little while ago, but I'm just saying this because I think it's really cool. It's this
28:05 thing called coder.com. Yeah. I heard you talk about that actually. Yeah. Coder.com is basically
28:10 a Docker container that you get for free plus Visual Studio code in the browser. So if you're on a
28:18 Chromebook or something, you can just go to coder.com and go there and you have, you know,
28:21 a bunch of Docker containers and a little terminal, you can install whatever you want. Right. You have
28:26 like root access to your Docker terminal and your Docker container basically. So it's really nice. So
28:32 anyway, just throwing that out there as another one. All right. Keep going. You got a bunch here.
28:36 So Socratic is a YouTube channel and they've got a lot of great videos describing little concepts,
28:43 little bite-sized concepts in Python. I think it could work for a lot of languages, but it's Python
28:47 specific. And that was a big help for just kind of understanding, you know, you want to figure out
28:52 what a list comprehension is or something that you can go there and find that. They'll explain exactly
28:56 what it is, you know, nice production values and really, really informative. That was really good.
29:01 Okay. That one I haven't heard of. I'll check that one out. Yep. Prettyprinted.com is a guy who's
29:06 doing a lot of great YouTube videos on Flask specifically. A lot of, again, just little
29:11 bite-sized things on Flask. And that was huge for me because there's not a lot of people out there that
29:16 do very specific things for Flask as far as YouTube goes. So that was a great find.
29:22 That's a good one. That's Anthony Herbert and he's doing, yeah, he's doing good stuff as well.
29:26 With Flask, like he said, mostly with Flask, but Python. Uh-huh.
29:29 Realpython.com. And I know you've had Dan Bader on your show a few times or quite a bit,
29:34 even. Yeah. And RealPython is great. I started reading it before he took it over. It was a
29:41 decent resource then. And now it's just amazing. Like he's coming out with things so often,
29:45 I don't have time to catch up and read them all.
29:47 I know. I can't read it either. It's like a little booklet.
29:49 I'd almost appreciate if they released once a week and then I could actually keep up with it. But yeah,
29:53 so it's, it's been really, really, really good. I go there, you know, like I started using the
29:57 path lib library because, I read an article there and even though I feel it makes my life
30:02 harder than just using OS a lot of the times, it's a great, great resource.
30:05 Yeah, that's cool. I definitely agree with that one.
30:07 I spent a lot of time on Reddit.com, the learn Python there, just, kind of browsing sometime
30:13 if I'm bored, if I have 10 minutes to kill, I'll go there. Or if I have a question, and I have
30:17 the energy to, actually go through it, and explain it, I'll put stuff there. I've always,
30:23 always had really good luck. Only one time has somebody said, did you read the docs? Yeah. Which
30:28 is like, yeah, like the worst answer ever. Yeah. Q and A sites on the internet. People can be mean,
30:32 but I feel learn Python is pretty nice. Yeah. As far as like actual sites, those are the,
30:37 those are the main ones that I'd pulled up and I've been kind of recording. I've, you know,
30:41 a Google keep site where I just have any minor thing that I find I'll throw on there,
30:45 but those would be great places to start for somebody else who's in a similar position. You
30:49 know, I was working with a guy before that was learning Python kind of around the same pace as
30:53 me. I went with Flask and he was doing a lot of data stuff. he was a runner, so he was pulling his,
30:59 you know, information out of Strava and playing with it and making maps and, you know, recording
31:03 different things. And he worked a lot with APIs. So I learned a lot from APIs from him. And then
31:07 it was a lot of fun when we were working together, but he's, he's since taken a different job. So I'm
31:12 kind of back on my own again. You lost your, your one colleague to bounce programming ideas off,
31:17 right? I did. I'm actually, I've got a, his replace that I've actually kind of talked into
31:21 using a bit of Python for this and that. So, we've been playing a lot with, just,
31:25 we use the Google app suite and you can kind of interact with that with Python if you're clever.
31:29 And, we've been trying to do that a bit lately. So yeah, it's been fun.
31:32 Yeah. Yeah. That's really cool. It can be a big challenge to be isolated like that. Right. I
31:37 mean, even in 2018, especially earlier in your career to just be doing it totally on your own,
31:44 you know, cause I'm sure you've had lots of experiences like that where you're like, this
31:50 is not working. I know there's a two minute fix to make it work. Right. I've been trying to find
31:56 that for a day now and I still know what it is, but if I could ask somebody, they would just show me
32:00 that this is the problem. Right. Yeah. And if I could craft a good question for a half an hour,
32:04 I can post it on Reddit and I will get my answer probably by the end of the day, or, you know,
32:08 it'd be great just to have a relationship with somebody where you could say, Hey,
32:10 remember that project I was on while I've gotten to this point and I have to do this or that, or,
32:14 you know, or Hey, can you come over and look over my shoulder? That would be great. But yeah,
32:18 even in where I live, there isn't any place where I can go to take a formal Python class at like a
32:24 university. You know, there's three universities an hour away from me, but that's it. And even then there's,
32:30 there's very few opportunities for things like that. Like I'm ready to take a, some sort of a
32:34 SQL course so I can try and get, you know, to the next level on that. And it's just, it's tough to
32:38 find things like that. I can't take a computer course online. Not a formal one. I've taken, you know,
32:43 I've followed a few, you know, smaller courses online, but like a semester long courses is not
32:48 really an option for me, my learning style. Yeah. I'm not a big fan of those, to be honest,
32:52 either. I know there's like the MIT and courses and stuff that you can follow along and the Stanford
32:58 courses online. And I just feel like, you know, those are structured to be the format that somebody
33:07 who is in a university every day, taking six other or five other courses, and that's going to fit into
33:14 their homework, attend course pattern a little here and there. But, you know, honestly, what you learn
33:19 in those courses, you could condense that to a week or four days, not, you know, 16 weeks. If you didn't
33:27 treat it that way. I get so much from the discussion, you know, the discussion in class
33:31 that people's questions and going off on tangents to be able to read the room. There's so much,
33:34 there's so much involved in that. So, especially with the programming course,
33:38 it's something that I really want is an instructor in the room. Yeah. And those sort of MOOC classes,
33:45 they don't typically have that. I mean, maybe they've got like a higher TA for the online version,
33:49 but that's, that's not the same. Right.
33:52 This portion of Talk Python to Me is brought to you by Rollbar. Got a question for you. Have you
33:57 been outsourcing your bug discovery to your users? Have you been making them send you bug reports? You
34:02 know, there's two problems with that. You can't discover all the bugs this way. And some users
34:06 don't bother reporting bugs at all. They just leave sometimes forever. The best software teams practice
34:12 proactive error monitoring. They detect all the errors in their production apps and services in real time
34:18 and debug important errors in minutes or hours, sometimes before users even notice. Teams from
34:23 companies like Twilio, Instacart and CircleCI use Rollbar to do this. With Rollbar, you get a real
34:29 time feed of all the errors. So you know exactly what's broken in production and Rollbar automatically
34:35 collects all the relevant data and metadata you need to debug the errors. So you don't have to sift
34:40 through logs. If you aren't using Rollbar yet, they have a special offer for you. And it's really
34:44 awesome. Sign up and install Rollbar at talkpython.fm/Rollbar. And Rollbar will send you a $100 gift
34:52 card to use at the Open Collective, where you can donate to any of the 900 plus projects listed under
34:58 the Open Source Collective or to the Women Who Code organization. Get notified of errors in real time
35:03 and make a difference in Open Source. Visit talkpython.fm/Rollbar today.
35:09 So while you're throwing out these ideas of places people can go and check out stuff, and I think they're all
35:14 really well, really good ones. A couple also I'll throw out there is you talked about code combat, which I
35:20 think is really cool. There's also Check.io, which is a similar idea and has Python. I kind of feel like
35:26 code combat is better for beginners, whereas this Check.io is really nice, but it's you kind of have to be able to
35:34 program directly, right? It's like more free-formed answers. But it's pretty cool as well. It's kind of a
35:41 similar gamification. The thing I like about that is you can compare your solution to other solutions
35:46 that other people have. So you can see like, here's the five ways this was solved. And I always find like,
35:51 like I learned different things about my own programming style by comparing the answers. For example,
35:57 I realized that I implicitly optimized for performance considerations, whereas I didn't think I was doing
36:05 that. I'm just like, I'm just going to solve this. But I had solved it slightly more complicated. Oh,
36:09 yeah, I could probably use this other simpler thing, but this is going to be a better answer.
36:13 You know what I mean?
36:14 As far as problems go, I think that's probably a good one to have.
36:16 Yeah, probably. It probably is. But it just like, it made me realize that like, that's a thing that I do
36:23 because I didn't even notice, right? But once you compare your answer to five others, you're like,
36:27 well, why is this so short? I'm like, oh, because you could have done this, but I didn't actually want
36:30 to do that because, you know, whatever. And also the Code Challenges platform from PyBytes,
36:34 similar, similar to CheckIO that you kind of got to write proper code, but that one's nice.
36:40 I'll throw in Code Wars as well while we're talking about that. Code Wars is a very similar one. Again,
36:45 you grab an account and then they throw like, there's like eight different levels and you work your way up
36:50 the levels, but it's, it's language agnostic. So you can solve the different issues with whatever
36:55 language you choose or multiple languages or things like that. And again, once you, once you finish,
37:01 they'll actually have tests that are written that they'll run against your code. So, you know,
37:06 if you didn't, yeah, if you didn't make everything lowercase, so it works through this, you know,
37:12 it'll fail the tests or things like that. So that's a pretty neat one. I find I never usually have
37:17 the energy to just go and pick out a random problem that, because they're, they get pretty
37:23 complicated pretty quick. Yeah. Yeah. I totally, totally agree. So I, one more I'll throw out real
37:28 quick is Anvil, Anvil.Works. I had them on the show as well. And basically that is a super easy way to
37:34 create 100% Python based web apps. And the reason I'm bringing it up in this context is my daughter went
37:41 through and she's like, dad, I want to create a web app. I'm like, yeah, that's a lot of work.
37:45 There's a lot of concepts for us to cover. I mean, she's like nine at the time, right?
37:48 So, but you can go through this and you can write JavaScript E Python that runs where JavaScript
37:56 would normally run. And you can drag and drop stuff and you get like a backend that's already set up.
38:00 It's, it's really cool. Like my daughter created at nine, created like a pretty cool little data
38:04 driven web app out of it. And I thought, okay, well, if a nine-year-old can do it and have fun,
38:09 this is actually pretty cool.
38:10 Very cool. So is it, does it just run inside Anvil when you're finished or do you,
38:14 can you download it?
38:15 It has to run inside Anvil. So you got to have an account there basically, which is a bit of a
38:20 drawback, but it also means it has the better integrations, right?
38:23 Right.
38:23 But what I really like about this is one of the examples is so often programming is taught in
38:28 terminals and repls and like how many beginner programmers and kids and stuff go, oh my God,
38:34 it's so amazing. I printed, you know, right. They're just completely, the expectation is not
38:40 that I'm going to do something interesting in a terminal or whatever, right. They need some visual
38:46 feedback. And like one really nice way to get visual feedback is the web. If it's not like too hard to
38:51 make it work. And I think this strikes a good balance.
38:53 Excellent.
38:54 Yeah. So what are, you know, talk about some, some of the roadblocks and maybe like what we can
39:00 do to help folks, especially who are learning in a vacuum because they don't have any colleagues or
39:06 they don't really know anybody or something like this.
39:09 Yeah. Boy, I don't know. It's, it's been a, it's been a slog actually. You know, I mean,
39:14 things are getting, you have to get to the point where you get the vocabulary to ask the questions
39:18 questions and that takes a little while to get there.
39:20 The online space is really good for helping people, but you have to have like a minimum level
39:26 before you can pop your head up and not just be dismissed as like knowing nothing at all.
39:31 You know what I mean?
39:32 Yeah. And even just to Google, Google your question first, right? You've got to know exactly what you're
39:36 trying to do at using the right nomenclature, right? So that's tough to get to. I think it depends
39:43 on your learning style. I mean, my learning style, I've been following web tutorials for years and
39:48 years and years. So it's pretty easy for me to just kind of get on and deep search, whatever I'm
39:52 looking for. I don't know that I have any solutions. I'd really like to see more classes available,
39:58 you know, in high school where you can get started and things like that. I'm part of a group that's
40:02 trying to make that happen here in Vermont. So I think that's really where we have to get the access.
40:07 Yeah, absolutely. I think it would certainly help more kids see that as an option. I think.
40:13 What about mentors?
40:14 Mentors would be great. You still have to find a place where you can kind of make those connections.
40:21 You know, meetup groups and things like that could be kind of intimidating. I'm part of like a code
40:25 meetup group in Burlington, but you know, I head down and I don't know too many people there and
40:29 everybody else seems to know each other there. You know, you can kind of listen to conversations and,
40:32 oh yeah, I just got a job with this new startup or whatever. It's not like a lot of basic
40:36 meetups out there. Like WordPress has these things called WordCamps in there. And I've heard you talk
40:41 a lot about PyComs, but the WordCamps are always kind of aimed at beginners as well for the most part.
40:47 And I don't know that we have anything common like that because WordCamps happen kind of all over the
40:52 place and they're really, really common.
40:54 Yeah. It sounds almost like you need like a learning to code meetup type of thing, not like I'm a pro and
41:02 here's how, how we use Docker to optimize this other thing or whatever, right?
41:06 Yeah. So we've got a lot of, not a lot. We have a few conventions for teachers tech conventions throughout
41:11 the year. So my goal is to kind of go and show off some of the things I'm doing with Python at those
41:16 things to try and get other teachers aware of kind of what can happen.
41:20 Yeah. I do think there's some opportunities at some of these, these main conferences like PyCon,
41:26 for example. But, you know, they're only once a year or maybe a couple of times a year. If you
41:30 factor all the local ones you could get to, you also have to be at a certain level before you're
41:35 willing to say, I'm going to travel to Cleveland.
41:37 Right.
41:37 To go to a conference for programmers.
41:40 Right.
41:41 And that's going to help me get into programming, right? That's a pretty hard stretch to make. I think
41:46 it's true, but I don't think that most people would believe it.
41:50 Right. Yeah. And maybe just exposure to some sort of language to get started. Because I've,
41:55 I've heard a lot of people, a lot of the guests on your show, they're always like, oh yeah,
41:58 I used Python for a few things. I did. I started writing in this language and, and I'm here,
42:03 I am learning Python. I'm thinking to myself, that's crazy. How could you just go over and do like
42:07 one thing, like I couldn't do that in this, this other language. And then I started, I bought a
42:11 JavaScript book about four or five months ago and I started going through like, oh, this isn't that
42:15 bad. This isn't that bad. I could, you know, if I had a little task to do in this, I could do that.
42:19 And so then if I want to use not jQuery for something, I feel pretty confident I can do that
42:23 now. And I can go and Google what I need to do because I've, I know the concepts in general.
42:28 So that's, that's a big help. So, you know, just exposure to some sort of language would help you
42:33 if you want to then learn Python later on.
42:35 Yeah, absolutely. I definitely think that learning your second language is an important step.
42:41 Whatever that programming language is, it, once you know, too, you're like, oh, I've learned
42:46 multiple programming languages. Now, all of a sudden the third, fourth, and fifth seem way more
42:51 approachable. You know what I mean? It's not scary.
42:53 If you want to go anywhere near the web, you're going to need about, you know, three or four languages
42:57 under your belt that you, you know, if you just knew CSS, people would probably laugh at you.
43:01 You couldn't do anything early. I totally agree. The web is tricky because
43:05 you'd really do have to do three or four programming languages. You've got to do some
43:09 kind of database. So SQL or something along those lines, you've got to do a server side language.
43:15 So Python or something, you've got to do JavaScript, CSS and HTML. Maybe you can get away with no
43:20 JavaScript for a while, but that's still four to five.
43:22 Yeah. You can only not do JavaScript until you want people to like, enjoy what they're looking at.
43:26 Then you, then you, then you're pretty much going to have to do that too.
43:29 Yeah. Yeah, exactly. Exactly. Interesting. I don't really know a whole lot for the
43:34 learning in a vacuum stuff that'll help. I do think there's some opportunities for
43:39 a couple of things. I think there are some online communities. I know there's a bunch and I don't
43:44 really track them that carefully, but there's some Slack channels and like, I have a Gitter channel for
43:49 the podcast at gitter.im slash talk dash Python. And people go in there and ask questions like,
43:55 Hey, I'm trying to do this. Any ideas on which is better or how I should do that? And sometimes
43:58 there's a lot of good conversation there. There's the Pythonista cafe from real Python and Dan Vader.
44:03 There's the PyBytes Slack channels. Those are all places people could drop in and, you know,
44:09 talk to other folks that are maybe at different levels, you know, or, or at their level rather.
44:13 Yeah. There's still, there's still that human side of things that really in the early days can help.
44:19 Yeah. I definitely, when I started programming, it was very much in isolation. Maybe there was one
44:23 other person that kind of knew some stuff in the very early days. And then, you know, it's just a
44:29 hand, like two or three of us at a company of scientists or other places, right. Where we all
44:36 knew some stuff, but it, it was definitely a lot of a challenge to. Yeah. Even just one person that
44:41 you can kind of geek out with and talk about different things or, you know, concepts and stuff. It just,
44:45 it just really, really helps. Yeah. So I've been, I'm concentrating on growing the number of
44:50 budding coders around me. Yeah. You pass that off, automate the boring stuff around.
44:54 That's right.
44:55 Hey, have you seen this? Check this out. That's really cool. One other thing that you did bring
45:01 up that, that may be interesting is Python Anywhere. Yeah.
45:05 Yeah. Have you used that?
45:06 So as soon as I started making my web app, I basically, you know, had to figure out how to
45:10 get it out there to the wide world. I've always used Bluehost as like my web host. And it was,
45:15 I started looking at how to run Python on it and it just didn't seem like it was going to be possible.
45:20 There were like ways you could hack it, you know, to make it happen, but there wasn't like a path to
45:24 getting something on there. So then asking around again, I found Python Anywhere and it was really,
45:30 really easy to start. Other than the fact that the very first app that I tried to put on there,
45:34 as soon as I put it on there, the home director was different. So everything was broken.
45:37 I think I almost cried. It was, yeah, I'd worked for three months getting this work on my computer.
45:42 And then I put it up on there. I was so psyched that it just broke. So it's been about two days
45:46 going back in there and rewriting all the paths. But yeah, it was great once I got it working.
45:51 And Python Anywhere allows you to put up, it gives you one site, you know, you're just going to get,
45:56 you know, your username dot Python Anywhere. It's free. So if you're just playing around and learning
46:01 how to do things, it's a great, great resource. I've been trying to get my app on DigitalOcean,
46:08 just because I want to be able to, I like the pricing structure for DigitalOcean. Like I'm ready
46:12 to take it to the next level and have a little bit more control over things. But I followed the
46:17 tutorial so many times and I get to a certain point, everything's working, everything's working. Then I
46:21 try and do the Gunicorn level and nothing. So that's a bridge I'm going to cross one of these days.
46:28 Yeah, that's definitely a challenge. I mean, both of you, you touched on this a couple of levels
46:32 at the, like, I just, I built this thing. It's working. How do I get it on the internet? Like
46:36 that is, you know, for a lot of folks, that is a huge challenge because they probably don't have a
46:40 whole lot of Linux admin experience. Something like Bluehost, they maybe don't really support Python,
46:47 but you already have an account with them. Like, well, how can I cram my Python app
46:50 into their structure? And that probably doesn't fit. It's definitely another step that you have to take
46:57 going through these words. It's certainly a challenge.
47:00 Yeah, I was on Reddit actually explaining problems because it gets down to this
47:03 sockets issue and you got to say, you know, it's got to go to this socket. And I know it's some kind
47:07 of like a permission problem, but so I was trying to explain it on there and I was kept going. I was
47:12 like, oh, it works great on Python anywhere. But as soon as I get over here, the guy's like, well,
47:15 if you don't really understand sockets, maybe you should just be on Python anywhere. So I'm like,
47:19 well, maybe there's some truth to that. So I've given up for the time being and just kind of
47:24 going there. But if I wanted to create something serious, that would be a roadblock for me. So,
47:29 and I guess there's other places.
47:31 Well, I totally understand what he's saying there, but at the same time,
47:35 how will you ever understand sockets if you don't beat your head through to against this wall and get
47:42 through it on Linux and get the thing set up, right? Like it's not like, well, you just need
47:47 another more year experience and sockets will be obvious, right? Like, you know, Linux sockets for
47:52 transporting between Nginx and Genicorn, right? Like that, that skill is not like you're going to
47:57 ambiently pick that up, right? You have to just go through that step and maybe, maybe more time,
48:02 it would be easier. But at the same time, I don't know. I do think there's a lot of power in learning
48:06 how to just deploy your app on Linux, right? Whether that's Linode, DigitalOcean or something else.
48:12 I think those are some of the really best hosts, right?
48:15 That's like the next level, right? You could actually make what you want happen. Because one of the things
48:19 that coding has done for me is made me feel like a little kid again. Like I can do anything,
48:23 you know, like not, I can't do anything, but you know what I mean? It's made me feel like my,
48:26 you know, my computer is, is this huge, like wonderful machine that I can create stuff on.
48:31 And that's been a wonderful, wonderful feeling. But then if you can't show it to anybody and get it
48:35 out there in the world, it definitely falls a little short because then it's just you telling
48:39 people what you did as opposed to being able to show off, you know, what you created. So it was great to
48:44 find Python anywhere. It was really, really was awesome. And it's a great resource. And you know,
48:48 it's just a little bit more expensive than any other options. So it's easy enough to get your
48:52 stuff out there, but to take it to that next level, there's definitely, you know, I mean,
48:55 there's experience and skill that needs to happen to make that happen.
48:58 I definitely appreciate that. It makes me feel like a kid again, right? Like when you're a kid,
49:03 you feel like you can build anything. Like think of the days of like Lego or Hot Wheels or all those
49:09 kinds of things that you fiddle with as kids, right? The little building block stuff. And it's just like,
49:14 yeah, I can do that in the digital world.
49:16 You're going from being a consumer to being a creator again. Like we did this thing. I love
49:20 my school week two years ago at my school. And it was, you know, it's, I love my school week. My
49:24 principal comes out and she's like, Oh, can we get every kid in the school to tweet during this time?
49:28 I was like, well, I don't really know. We don't really want to give them the password, you know?
49:31 So she's like, well, I tell you what, you get it all in a Google form and I will sit and I'll set my
49:36 alarm and I'll tweet every five minutes. I'll tweet, you know, three of them out. And I'm like,
49:39 I don't think that's probably how you should be spending your time. I think we could figure out something
49:44 different. So, yeah, we, you know, we spent all this time looking around online and we found
49:48 something that worked with Google sheets and it was this auto tweeter and everything. Well, last year
49:52 for this event, I created that, you know, I, I wrote it and it was, you know, it was rock solid. I did
49:57 exactly what we wanted instead of having to, you know, we probably tried out seven different systems
50:01 years before, before we were coding. So it just gives us that ability to take control of those types
50:06 of tasks.
50:06 That's so cool. It's just like, cause it's not that big of a project.
50:09 No, it isn't really, but it can make a big difference to who, who it's for, right?
50:13 Yeah. You find out what Python package you need and you write a loop and that was it. It was pretty
50:17 cool.
50:18 Yeah. The real danger is that it goes crazy.
50:20 Yeah. We did get a few complaints that people telling us that we were tweeting a little too
50:25 much, but it wasn't my idea. I was just carrying it out just in my defense.
50:30 But you know, if it gets stuck in a loop or something, yeah, then, then you'd have a lot of tweets. That'd be bad. But no, that's really, really cool.
50:39 You also, you talked about building stuff again and, and being a creator. I think one of the things
50:45 that would be really nice that you talked about would be to have little devices or IOT things for
50:52 kids. Right. And there's definitely some good options for Python there.
50:55 Yeah. I listened to your podcast where you interviewed the guy that did the Python for
51:00 microbits or not micro, yeah, microbits. And I went to, that was the same weekend we had this
51:05 convention and I went down there and I got to play with microbits for the very first time, like an
51:09 hour and a half after, cause I listened to your podcast while I was driving to it and it was
51:13 fantastic. Yeah. I'm pretty psyched about microbits now I have to say. So my wife is, is English.
51:19 We used to live there for a while. We're first married. So I've kind of connected a lot to,
51:23 I follow a lot of English kind of education news. I was pretty excited to be able to get
51:27 ahold of these things and I'd really like to kind of replicate what they did in England,
51:32 kind of here in Vermont. I haven't taken any steps towards the whole BBC microbit and all
51:36 that kind of stuff, right? Yeah. Trying to get one in every sixth grader's hands would be amazing. So that's one of my long-term goals here. It's maybe shorter
51:44 term goals, but just to try and seek out funding, you know, from some Vermont businesses and things
51:48 like that. Cause we've got a couple of cool big tech companies here that might be amenable to
51:53 something like that. But they're really, really great for kids just to kind of see what they're
51:56 doing. You hold it in your hand and see the effects of your code.
51:59 Yeah. I definitely think one of the keys in the early stages of getting involved in this kind of
52:05 stuff is early feedback, quick feedback and visual feedback of some type, right?
52:11 Right.
52:11 And if you're putting together a little device and you know, the fan blows every time you walk by it,
52:16 or, you know, it counts the number of people that walk through the door. Like that's pretty,
52:19 pretty concrete.
52:20 Yeah. Very cool. And Scratch just made, Scratch just updated Tuesday or Wednesday.
52:26 And now it's got an extension in there so you can write in Scratch. It'll show up on the micro bits
52:30 even. So it's very, very neat kind of bridge for kids to get that.
52:34 Yeah. And they're not super expensive. You know, it's not like trying to get a laptop for everybody.
52:39 It's right.
52:40 It feels like it's half a funding problem and half a bureaucracy problem.
52:44 Right. Yeah. Making people think that it's, realize that it's important, you know,
52:47 that's, that's always the challenge.
52:49 We're lucky that we have, the BBC and the UK for plowing through and doing that the first time.
52:55 And they've got like, you know, one of the podcasts I did with Nicholas about that,
52:59 we talked a lot about the results, right? They have not just having done it, but they did like
53:03 sort of studied the outcomes, which I thought was really cool as well.
53:06 Yeah. They lead the way in quite a few different things. I mean, they were put, they put smart
53:09 boards, you know, and everybody in every room in the entire country, you know, all at once and,
53:13 and things like that, that really make a big impact. Things that you can't do because of the way our
53:17 education system is structured compared to theirs. So it's pretty neat.
53:20 Right. Yeah. A lot of, other countries have very, like more nationwide, the same education.
53:27 Right.
53:27 Whereas us, you know, there's cities or towns five miles apart have totally different
53:33 bureaucracies manage that, right? It's, it's quite different.
53:36 We have a more different here. Every, my kids go to a school of 106 children and they have
53:42 their own school board. It's, it's unique.
53:44 Yeah. Unique. I'll leave it at that.
53:47 So, another thing you were talking about is, computer science education and Python.
53:52 Yeah. I'm, I'm a member of a computer science advocacy group for Vermont and,
53:57 there's some people from the state education agency are involved. And then there's a number of
54:02 educators involved as well. And we're just kind of running into this thing where, I'm probably
54:06 the only, Pythonista in the group. I think, there's a lot of Java teachers because your AP
54:12 computer science stuff is, is, uses Java.
54:15 Right. So if you want to be an AP computer science teacher in the United States, you basically had to
54:19 learn Java. And once you learn Java, if you're not a programmer, why would you learn other languages?
54:23 Exactly. Or, you know, there's just, it's just kind of an old school mindset, you know, this right
54:29 nowadays, you probably want to have a few different languages available, but anyway, so we're really
54:34 struggling with the number of people who can teach computer science. You know, it's, it's not an
54:39 easy subject to necessarily grasp the amount of teachers that we have in there. And one of the
54:45 things I always say is if you have a computer science degree, you're probably going to go and
54:49 make a lot more money than you are instead of deciding to come in and be a teacher and spend
54:53 most of your day trying to tell kids to get off their phones and pay attention or do whatever,
54:58 rather than, work at an office and not have to deal with those types of things. So,
55:03 yeah, so we're trying to kind of increase the amount of people who can teach computer science
55:08 and just kind of on an introductory level. I don't think, I don't know how much there's going to be
55:13 into getting people into, you know, being able to teach AP classes and things like that, but
55:17 you got to start somewhere. Absolutely. Well, you know, if, if you got, let's say a hundred teachers to learn Python and be able to teach at a basic level,
55:25 surely some of them would just pick up things like automate the boring stuff. They would get
55:30 interested and they would just naturally get better. I think in our entire state,
55:34 they figured we had 43 people that were qualified.
55:39 So it's, yeah, so there's a, there's a number of challenges again. And, you know,
55:42 a lot of them are, are older folks too, that are, that are on their way out of education. So
55:47 it's a, yeah, there's lots of challenges in there to getting it started. I'd like to see more teachers
55:52 learn basic coding because a lot of what's going on in schools right now is teaching regular teachers
55:58 how to teach some, you know, some things. And there's a lot of like, we'll learn with the kids
56:03 and that type of stuff, as opposed to, I'd love to see more and more teachers just take a introductory
56:09 Python course and, you know, and, and actually, yeah, maybe pick up, automate the boring stuff.
56:13 I didn't see the value in those types of things. I think if you could get your average teacher to realize
56:17 that, that coding isn't just something that they're going to do for an hour on Tuesdays,
56:22 is that it could be interesting in general and just get that, you know, to see somebody's eyes light up
56:26 when the first time that they, you know, they write a program that, that creates a file on their computer
56:30 and then writes to it or something is just really powerful.
56:34 Yeah. Or there's some project, there's some thing that they were doing over, like some report
56:38 they've got to write every month that was dreadful. And then all of a sudden they can push a button
56:42 and, you know, half a second later, it's done. It's like, oh, this is like a magic wand.
56:47 Yeah. I actually, I wrote a program that went through and so we have training, you know, beginning
56:54 of the year trainings, bloodborne pathogens, all that kind of stuff. And, and normally everybody
56:58 has to sign off on a piece of paper. Well, they, they, they made that electronic a couple of years
57:03 ago. And then it was always, so then I created like a spreadsheet that aggregated everything,
57:07 just, you know, just using Google, Google apps. And then every two weeks I get an email from my
57:13 principal that said, oh, Hey, how many people still need to complete this, this and that. And I have to
57:17 go through it and write it all, you know, type or copy and paste it into an email and send it to her.
57:21 And then she would contact everybody. Well, I automated that the other day,
57:24 our beginning of this year with, with Python. And now it just sends out the emails to people,
57:30 you know, on Friday afternoons or Monday mornings, I think I did it Monday morning. So they wouldn't
57:34 just say it was a Friday afternoon. Yeah. And those types of things, I actually got a hug from my
57:38 assistant principal when I wrote that one, cause she was so excited that it was actually, it was
57:42 working and people were finishing what they needed to do on time. So that was pretty cool. Those types of
57:46 projects are fun. Yeah. That's awesome. Like she no longer has to be the bad person who goes around
57:51 and nags everyone about something. Yep. And she gets an email based saying, also, you know, I, I,
57:56 I just made two lists, one list for the people who were going to get the email, one list for her and
58:00 everybody who was going to get an email. And then she gets an email with all the people on it. So
58:03 it was a great solution. If I don't say so myself. Yeah, that's cool. It's actually,
58:08 highlights, an interesting thing that you hear a lot around code reviews, right? So code reviews,
58:15 you look at the code and other more, probably more at least equally experienced programmers look at
58:20 and go, well, this is good, but you need to change this or that. And there's a lot of stuff that just
58:24 linters and other automated systems can do like, oh, the indent is wrong here. This line is too long.
58:30 This function has too many lines, et cetera, et cetera. Right. Like when people sort of nitpick like
58:35 that, they come across as this annoying person that always nitpicks on the details when we're trying
58:40 to talk about something more important. Right. Right. But if just an automated build tells you,
58:45 Hey, your code is not quite right because X, Y, and Z, like that doesn't cause the same
58:49 emotional reaction as it does that kind of stuff. So it feels like it must be similar here. Right.
58:55 I created a dummy account to send the emails out from. So it wasn't me.
59:00 So there's my school automated, you know, email account now. So.
59:04 Yeah. And it's the same type of thing. It's right. Like the, well, the system knows I haven't done it.
59:08 It says I have to do it. So I guess I'll do it. So I stopped getting this email or eventually someone's
59:12 going to talk to me, but right. Like taking it away from having the person do the nagging is,
59:17 it's kind of a nice touch. One final thing we have time for, and then we'll have to wrap it up.
59:21 Sure.
59:21 You had some thoughts about music education and programming education.
59:25 Yeah. So one of your podcasts recently, you were saying that geometry was a good place to replace,
59:31 good class to replace computer science with. And I really thought that was a great suggestion.
59:36 actually I've been telling that to people since then, but I've always, I've always figured that
59:40 music was a great example of what the education has done to kind of create more musicians in the world.
59:47 Right. So in my school, there's around 600 kids and we have two music teachers, no computer teachers.
59:53 Well, I mean, I kind of fulfill that role, but no official, you know, computer curriculum that goes
59:59 all the way through, but we, we have an instrumental teacher and a vocal teacher and they go through
01:00:04 and every kid gets exposed to it. And when you get into fourth grade, then you get to choose an
01:00:07 instrument and you get, and you get small group lessons and things like that. And then you go on
01:00:12 and my best friend is the music teacher at the middle school and high school. And then he gets the same
01:00:16 kind of cadre of kids that go all the way through and they do, they do all these activities and it's,
01:00:21 you know, it's, it's a very select group that has chosen to kind of be in this thing. But then you get
01:00:25 a lot of musicians out of this, people who have chosen to go into that, you know, they get pulled out of
01:00:29 class because it's important to get to their individual lessons they put on concerts, all this,
01:00:34 that's a lot of effort to go into this thing that isn't math, science or reading. And I think that's a
01:00:39 great model that we could do with computers. Like what if we, so I went to this computer science teacher
01:00:44 conference in Rhode Island. We all drove down in this van for like six hours together and everybody in the
01:00:50 van was a musician except me, you know, right. And they were all computer people. I could imagine going to
01:00:54 like some kind of music weekend or music teacher convention and looking around in the van and having
01:00:59 like, you know, six out of seven people be programmers as well would be pretty cool.
01:01:03 Yeah. I definitely think that's something to aim for. That's awesome.
01:01:05 Yeah. Everybody, everybody learns to kazoo and then you pick your instrument, you know,
01:01:09 what if everybody learned scratch and then you got to pick it, you know, you got to either go
01:01:12 the JavaScript or Python way afterwards or whatever, you know, whatever it might be just to,
01:01:17 to funnel that and support it in the same way we do with music. And if you want to see parents get up
01:01:22 in arms about something, try and cancel a music program. They will go bats over something like that.
01:01:27 Yeah, for sure. The point of the music program is not to make everybody a musician, right?
01:01:33 Right. Well, professional musicians.
01:01:35 Yeah. Professional musician, right? Like as their job, right? It's not like, well, you first take this
01:01:42 music class and that music class so that then you can go start the next Pearl Jam or whatever. It's just,
01:01:47 so you have some, you know, musical skills, right? For life.
01:01:50 Everybody agrees that music is important and everybody agrees that it's a life enriching thing.
01:01:55 Everybody agrees that, you know, we want more music in the world and that it's valuable for kids to do
01:02:00 this. So we're going to put these resources into it. And you got to wonder why, you know,
01:02:03 why, why technology isn't to that quite same level. Although technology does kind of bleed into just
01:02:08 about everything else at this point. So it's could be different. So it does bleed in, but it almost
01:02:13 always bleeds in, in the sense that it's a consumer situation, right? Like game biology class.
01:02:19 So I use SAS to do the stats on my lab. Right. But I didn't, I didn't create.
01:02:26 We spend all of our time trying to find the perfect tool to do this instead of creating a tool that
01:02:31 might help it, you know, like, oh, we have to sort through all these other things and figure out what
01:02:35 might do this.
01:02:35 Exactly. Exactly. So, yep. I'm still of the belief that geometry is interesting, but not as,
01:02:41 as useful as programming and the same types of things, logical thinking, like sort of proof type
01:02:48 stuff, all that. It's the same as programming. Agreed. You've converted me. Awesome. Well,
01:02:52 I have no control over the geometry anywhere, but I can at least say my, say my thoughts. I did,
01:02:57 I do have a couple of math degrees, so I've, I've thought about it some. And I got quite far in my
01:03:04 math education without really using much. I learned it all in geometry. I'm pretty sure.
01:03:09 We'll leave it at that, I guess. All right. So, Rusty, I think we have to put the main
01:03:15 conversation and sort of leave it there. All right. It's time for the two questions as always. So if
01:03:19 you're going to write some Python code, what editor do you use? Adam. Yeah. Adam's cool. Yeah. I had a
01:03:24 student show it to me when we were in my HTML class and I've been a huge fan. I kind of thought,
01:03:29 why isn't he using what I've told him to use? And I started using it after he left class that night.
01:03:33 It's wonderful. I really like it. This kid won't listen to me. This kid's really bright.
01:03:39 He was right. I never let him know that, but he was. Yeah. That's pretty cool. And a notable
01:03:43 PI PI package? I love PI G sheets. Is that for talking to Google sheets?
01:03:47 It does. It talks to Google sheets and allows you to just kind of manipulate them as Python objects
01:03:51 and do all kinds of things. And I kind of consider them like a poor man's database. So that's pretty
01:03:56 much how we use them. We're able to have, you know, people enter things into Google sheets,
01:04:00 which is really easy to get information in there. Then I could do all kinds of cool stuff with it in
01:04:04 Python once it's in there. Yeah. I can see that being really useful for organizations like yours,
01:04:09 where you're not going to build a whole app for them to do a thing, but if you can share a Google
01:04:14 sheet with them and then just code against that, like they can still do their manual entry, but then
01:04:18 you can generate all the analysis just by pushing a button or typing a CLI command.
01:04:24 Yep. It's all out there in the web too. You don't have to, you know, get people access to it or have a
01:04:27 server or anything like that, that, that people have access to. Yeah, exactly. Yep. Yeah. It's online
01:04:32 and shared without you running infrastructure. Yeah. Very cool. All right. So final call to action,
01:04:37 people are learning Python or learning to teach Python. What do you have for them? I would say
01:04:43 automate the boring stuff, code combat would be great and repl it. If you're trying, if you're in a
01:04:49 teaching situation, that's a great place where you can share code and check things out. Yeah. All right.
01:04:55 Well, it was really interesting to talk about all these ideas with you and I've got some stuff to
01:04:59 go check out as well. So thanks Rusty. Perfect. Thank you. Bye. This has been another episode of
01:05:05 Talk Python to Me. Our guest on this episode was Rusty Gregory and it's been brought to you by
01:05:11 Linode and Rollbar. Linode is your go-to hosting for whatever you're building with Python. Get four
01:05:18 months free at talkpython.fm/Linode. That's L-I-N-O-D-E. Rollbar takes the pain out of errors.
01:05:26 They give you the context and insight you need to quickly locate and fix errors that might have gone
01:05:30 unnoticed until users complain, of course. Track a ridiculous number of errors for free as Talk
01:05:36 Python to Me listeners at talkpython.fm/rollbar. Want to level up your Python? If you're just
01:05:43 getting started, try my Python Jumpstart by Building 10 Apps course. Or if you're looking
01:05:48 for something more advanced, check out our new async course that digs into all the different types
01:05:53 of async programming you can do in Python. And of course, if you're interested in more than one of
01:05:57 these, be sure to check out our Everything Bundle. It's like a subscription that never expires.
01:06:02 Be sure to subscribe to the show. Open your favorite podcatcher and search for Python. We
01:06:06 should be right at the top. You can also find the iTunes feed at /itunes, the Google Play feed
01:06:11 at /play, and the direct RSS feed at /rss on talkpython.fm. This is your host, Michael Kennedy.
01:06:18 Thanks so much for listening. I really appreciate it. Now get out there and write some Python code.
01:06:23 Thank you.