Today I’m speaking to Christopher Bailey, the host of The Real Python Podcast. We dig into his past in music and video production as well as his approach to producing online video content. Christopher also provides some helpful tips and tricks for any budding content creator looking to create their first coding video tutorials.
Ricky: Thanks for joining me, Christopher, and welcome to the other side of the interview desk. Let’s start the same way we do with all our guests: How’d you get into programming, and when did you start using Python?
Christopher: Thanks for having me. I started programming at a friend’s house, which had an Apple II. We were typing in the code from a magazine to create a text adventure. I can’t remember the specifics, but between sessions of Ultima we were trying our hands at BASIC.
My next big experience was saving all my paper route money to purchase a ColecoVision for myself. My parents then surprised me by buying the Adam computer that attached to it. It was basically an Apple II clone with a horrible daisy wheel printer and a “high speed” tape drive. I taught myself BASIC and made a couple of simple games as well as a Dungeons & Dragons character generator.
Fast-forward to college, and I studied electrical engineering at Arizona State. I learned some C and Fortran in a huge Unix lab. I dropped out in my second year and never got a degree. I was deep in the music scene, forming bands and learning everything I could about home recording and MIDI (Musical Instrument Digital Interface).
I’ve always had a knack for learning software and electronic hardware. It’s always just made sense. I turned that into a job at a musical instrument store, which led to me doing one-on-one consulting teaching people how to use their music hardware. That turned into touring as a technician for Wayman Tisdale. That then led to being a recording engineer in a studio in Sacramento, where I earned a Platinum record for working on Tyrese Gibson’s first album.
When I left California to move back to Arizona, a former colleague asked me if I wanted to teach at a school for recording engineers. I taught at the Conservatory of Recording Arts & Sciences for ten years. I taught everything from MIDI to digital audio, surround sound, video game audio, Pro Tools, and Logic. After that, I moved to Hawaii, where my wife was born, and I worked for Apple as a trainer and then as a repair technician.
My wife is the person I need to thank for getting me back into programming. She worked for a bank, and they needed someone who could create SQL queries. I taught myself using as many resources as I could find: Lynda online training, Learn SQL the Hard Way, SQLZoo.net.
On my first day on the job, I was tasked with recreating a mortgage database tool based on a raw export of all the tables from the program. The tools I had were Microsoft SQL Server and Report Builder. I had no relationship diagrams, just raw data and examples of the types of forms to recreate. I learned a lot about mortgages and SQL very quickly!
Eventually, another job opened up at a different bank in Hawaii, but they were looking for someone who could use Python. I once again crammed as much as I could before the interview. That’s where I found Real Python and Dan’s book, Python Tricks. I had heard him on the Talk Python to Me podcast. I did a short coding test in person and another take-home one. I got the job and worked as a data analyst for their marketing department.
Ricky: You have an eclectic background, but one thing that jumps out to me is the variety of teaching and training roles you’ve held. You are now one of Real Python’s video course authors. How has your previous experience helped you with creating video content for the first time? What tips would you have for anyone looking to record their first tutorial videos?
Christopher: While I was working at the Conservatory, I got fascinated with digital video. This was really the dawn of non-linear editors costing less than thousands of dollars. Apple had recently bought Macromedia and released Final Cut Pro with a focus on DV and FireWire.
I had been making instrumental music for a long time and was trying to partner with some local video producers to collaborate on projects. I ended up writing custom music for a promotional campaign for Fairmont Hotels’ Scottsdale Princess resort.
I started showing the finished product off to friends at the school and they thought I had made the whole thing. So suddenly they wanted me to create advertising for the school. I hired someone to help me shoot it and taught myself how to edit video in Final Cut.
I was bitten by the bug and started to create lots of videos. I bought a DV camera and started to push myself, entering several 24- or 48-hour filmmaking competitions. The idea is you meet up on a Friday night and you’re given a specific topic or genre, a line of dialogue, and a prop that needs to be used in the finished movie. You rush to write a script, shoot, edit, and finally deliver the completed DVD by the Sunday night deadline.
I taught my wife how to log and capture videotapes so that I could sleep a couple of hours before diving into editing. There’s no better way to learn something than being forced by a deadline.
I created a YouTube channel where I shared knowledge about audio, video, and other creative projects. I also tried making content for Skillshare, where I created a tutorial on how to make a digital scavenger hunt using a tool called Actionbound.
When Dan was looking to create the video team, I received the newsletter they sent out and thought, what a perfect fit. I love teaching and I have a good background in making videos. I shared some of my work with him and he brought me onto the team. Also, I was still really digging deeper into Python and I thought this would be a great way for me to learn so much more. If you want to learn something well, try to teach it to someone else.
I think one of the best techniques for learning how to make your first tutorial is to talk through working in a REPL. When Dan showed me bpython, I was in love. It is such a great tool for unveiling what you need to mention to the student.
At Real Python, the video course creators have the advantage of building on top of an existing article. The next steps involve translating the material into several chunks that will become the lessons within the course. I’m always looking for ways to add more to the article, with additional examples and potential pitfalls. I don’t like to skip steps, and I want to make sure that the student can follow along.
When I create material for my own lessons, I start with an outline. I try to make sure all the steps are there for the student to be able to recreate the code. I always try to show the mistakes that can be made and how to avoid them. I also think it’s important to give examples as to where these techniques or code can be applied.
As far as hardware is concerned, I think the most important thing is sound. Of course I’m totally biased based on my background. But nothing will make me turn off a video quicker. You need to get a decent microphone. Just about anything will be better than the built-in microphone of the computer. Even using a set of earbuds that include a microphone, such as the set that comes with your phone will help.
A starter USB microphone is around $90. Get a decent set of headphones, and make sure to really listen to your recordings and think about ways to improve them. You don’t necessarily need a fancy studio with acoustic foam, but you should try to minimize reflections in your environment. Having some pillows, quilts, or other soft stuff around as you record can help limit the echo.
Also, don’t be afraid to get right up on the microphone. It will help you sound so much better. You may need a windscreen or pop stopper, but that can be a simple DIY-type project if you don’t have the funds to buy them.
For screen capture I use a Mac, and it comes with QuickTime, which makes it fairly easy. I recently changed to using a tool called iShowU Instant, which is more configurable and allows for consistency in the screen size of my capture.
There are many tools out there to choose from. If you want to get fancy and do some editing, DaVinci Resolve is free to use for projects that are 1080p and less. It’s a very professional editor that’s available for Mac and Windows. I’ve been doing 4k stuff lately, so I would have to purchase it to get that output.
The advantages of editing are huge. It will allow you to overdub your audio to fix little mistakes, do another pass on an existing video, or glue multiple videos together. The DaVinci site has some really good tutorials on getting started. I like to record my voice-over while typing out my code or showing slides, but I know several people who do those steps separately.
Ricky: I’d like to congratulate you on the recent launch of The Real Python Podcast, for which you’re the host. We’ve already touched on this a little, but with your extensive background in audio technology, how have those skills transferred to the world of podcast production? Have you learned anything from producing the podcast that you’ll take back to either your music or your Python programming?
Christopher: I’m using many of my skills as an audio engineer in recording and editing the podcast. I spent a little time in the past doing forensic audio repair, fixing noisy sound sources to salvage them for a restoration project or a trial. There are a bunch of really great tools to help with that.
I don’t think everyone needs to use this for podcasts, but I like a set of tools from iZotope called RX 7. The version I bought has tools to remove reverb, mouth clicks, and digital pops as well as to lower breath noises and de-ess sibilance. They take some skill to use, but I’m really happy with the results.
When recording a podcast, I want to make it as easy as possible on my guests since many of them may not have a fancy microphone or a quiet place to record. So I hope that I can make it sound as close to an in-person conversation as possible.
I’m not sure if I’ll take many of the skills back to music making, but it has inspired me to get back into recording. I made the theme song, and Dan loved the draft version so much that I used it right away. I think I may add some more short music transitions to the show in the future.
As far as taking things back to Python, I’m learning a ton. I get to write the questions and invite the guests. I’m learning so much. I hope to share all that I’m learning with everyone, not only in the podcast but also in my future video courses. If you have any questions or topics you want to hear covered on the podcast, please let us know.
Ricky: I’ve had the pleasure of interviewing hosts of other Python podcasts before (namely Michael Kennedy, Brian Okken, and Kelly Paredes and Sean Tibor). What’s your plan for the podcast, and how is it going to differ from other successful podcasts in the Python space?
Christopher: I think I’ll be bringing a different level of experience to the space. I’m very hungry to learn more about Python, and I’m still at the intermediate level. I hope to ask these expert guests questions that are unique, and I aim to make some of the more complex topics a bit more understandable.
It’s a fine line to try to do that on a podcast. It’s very different from a tutorial, say. For one, there’s no visual component, and seeing code really helps in learning it. Also, these guests need to feel comfortable to talk about the topics and not feel like they’re giving a lecture. It truly needs to be a conversation.
But it’s my job to try to ask questions that will help uncover and simplify the concepts. My primary job over the next year or so is to become a skilled interviewer, and that is something totally new for me.
I’ve been working hard to make sure there are resources for each episode that will help to unlock all the additional learning paths my guests weren’t able to uncover in the short time we have together. I have lots of links to additional talks, articles, GitHub repositories, and more for the listener to explore.
I’ve also put in timecodes for all the topics covered, so a listener can go back and relisten to a specific topic or skip ahead if they want. For dedicated podcast players such as Overcast, Apple Podcasts, or Pocket Casts, the chapters, show notes, and links are accessible right inside the player.
Ricky: Before we close out, a few quick questions: What else do you get up to in your spare time? What other hobbies and interests do you have aside from Python and programming?
Christopher: I have two very active dogs. I love to take them hiking here in Colorado. My wife and I continue to find so many great locations to explore with them. I love to cook and have been trying to build up those skills. We moved away from Hawaii last year, and I have a nice kitchen in our new home. I like to play video games, as does my wife. We like to play co-operatively in games like Destiny or Gears of War.
I’m looking forward to setting up my music equipment and recording some new songs. I create instrumental music under the name Tripnet. It’s available on Spotify, Apple Music, and most other streaming services. It’s in the style of Sigur Rós, Peter Gabriel, Afro Celt Sound System, post-rock, or soundtrack music.
If you’re more of a hard rock or grunge fan, I was in a band called Beats the Hell Out of Me in the nineties. I dabble in electronics and hope to combine Python and music creation in some future projects.
It was great catching up with you today, Christopher. If you want to reach out to Christopher and say hello or suggest a podcast guest for an upcoming podcast episode, then you can find him on Twitter or leave a voice message for the podcast. You can check out his profile on Real Python for a list of all his video courses.
As always, if there’s someone you’d like me to interview in the future, then reach out to me in the comments below or send me a message on Twitter. Happy coding!