This week we welcome Sean Tibor (@smtibor) as our PyDev of the Week! Sean is the co-host of the Teaching Python podcast. He has been a guest on other podcasts, such as Test & Code and is the founder of Red Reef Digital.
Let’s spend a few moments getting to know Sean better!
Can you tell us a little about yourself (hobbies, education, etc):
It’s funny: I never expected to be a teacher. I went to college and grad school for Information Systems and learned to code in C++, Java, PHP, and VB.NET, then spent nearly 20 years working in IT and Marketing.
A few years ago, a dear family friend asked me to consider a career change into teaching since she thought I would have an aptitude for it. This is now my third year teaching middle school computer science in Florida at a private PK-12 school. Every 11-14 year old student in my school takes 9 weeks of computer science for each year of grade 6, 7, 8.
There are few things that I find professionally more satisfying than seeing a kid discover potential within themselves. Teaching has become more about the journey that each student goes through in learning to code than the specific lessons they learn.
It’s also really fun that my hobbies of coding hardware, making and designing electronics, and 3d printing have become part of my profession. I get to bring all of these skills and knowledge to my teaching craft, so it feels like I get to play all day with the things I love.
Why did you start using Python?
When I started teaching, the school I joined had just undergone a huge revision to their Computer Science curriculum. As part of that, they chose to make Python the language that all middle school students would learn.
So over the course of the summer, I started learning as much Python as I could absorb, using everything from books like Automate the Boring Stuff to CircuitPython and MicroPython hardware to Pybites code challenges. It took several months, but I was able to start teaching right from the first day of school.
In addition to teaching Python, it’s also been very useful for integration and automation projects around the school to make things run a bit smoother. I’m also using it to work on a few side projects in the marketing automation space, so it’s enhanced other parts of my professional life.
What other programming languages do you know and which is your favorite?
I’m a strong believer in Python as a useful and efficient language for getting things done so that’s my go-to language. Over the years, I’ve dabbled in a lot of different languages like VB.NET, Java, PHP, Objective-C, C++, and Arduino. Most of that has been replaced with Python for my projects and then I add in some HTML, CSS, JS, and SQL as needed to make it all come together.
What projects are you working on now?
My favorite project right now has been a wrapper library and function library for our school’s JAMF server that handles Apple device management. Our school has over 1500 iPads in use across two campuses and my project automates many of the common tasks that used to be very hands-on and manual. Now that we have this project in place, we can hand over a brand new shrink-wrapped iPad to a teacher or student and it will automatically configure itself with apps and settings within about 5 minutes of connecting to the internet.
Which Python libraries are your favorite (core or 3rd party)?
I don’t think it gets a lot of attention, but I love the dateutil library. My final project for my undergraduate degree was a web-based personal information manager that syncronized with your PDA and the most complex part by far was the calendar module. Ever since, I’ve been a little obsessed with getting my dates and times correct in code, and the dateutil library has so many useful features from timezone selection to parsing strings into datetime objects and even having interesting relative dates.
What have you learned being a host of the Teaching Python podcast?
The best thing has been meeting all of the amazing people in the Python community and doing that all with my teaching partner and co-host, Kelly Paredes. She hadn’t coded before and I hadn’t taught before when we started the podcast, so each of us were beginners at something where the other person was more of an expert.
With every person we meet, we each learn a lot more about teaching, Python, and the many, many different cool things that people are doing out there in the world. Often after an episode recording session, we’ll sit there and chat about all the interesting things we learned from our guest or from each other.
I also found it really amazing how welcoming and accessible the Python and education community can be. We started as just two teachers who wanted to try making a podcast about our experiences teaching something new to both of us. We’ve made amazing friends, had some of the most mind-blowing conversations, and no one has ever said no.
What is the hardest thing to teach in class about Python?
The hardest thing is nothing to do with the Python language. It’s overcoming a student’s belief that “I am not a coder.” With patience and persistence, I’ve found that nearly every student can find something that they like about coding and create something that they are tremendously proud of. I’ve seen students create everything from an RGB-lit umbrella, to a choose-your-own adventure game with 700 lines of code, to an Alexa voice skill that reminds them about things so their mom doesn’t have to.
I’ve found that coding is a lot like running. Many people say that they’re not a runner. However, it’s your own journey to running or coding that matters. If you run, you are a runner. If you code, you are a coder. I don’t expect every student to be a gifted coder, but I’ve seen students blow me away with what they can do once they discard the notion that they are “not a coder.”
Is there anything else you’d like to say?
Learning Python in order to teach it to others has been quite a bit different than the other times I’ve learned a new language. Every time a student asks me how something works, I think I’ve got the right answer, but then they ask me a followup question that makes me excited to go learn more. Teaching another person is absolutely the best way to keep yourself challenged and motivated to learn more.
Thanks for doing the interview, Sean!