Python Community Interview With Corey Schafer

For this week’s community interview, I am joined by Corey Schafer, of YouTube fame.

Corey is a full-time content creator publishing regular Python tutorials on YouTube. In this interview, we talk to Corey about his YouTube channel and his advice for budding YouTubers and content creators, getting his first developer job, and his passion for woodworking.

Ricky: Welcome to Real Python! We might as well start at the beginning. How’d you get into programming, and when did you start using Python?

Corey Schafer

Corey: Thanks for having me. I actually got started programming a little later in life than most people you’ve probably interviewed. I used to be a little self-conscious about getting started later, but now I try to be upfront about it so that others aren’t as intimidated if they are just getting started at an “older” age.

I suppose I technically got started in college when I began my degree in Computer Science, but even at that time, I wasn’t taking it very seriously. I would do enough to pass tests, but I wasn’t absorbing any of the information. I definitely wasn’t doing any side projects or using coding in any real-world applications.

It wasn’t until my mid-20s that I randomly applied to an internship for NASA at Kennedy Space Center and started to take programming seriously. To my surprise, I was chosen for the internship. Imposter syndrome set in full-force on day 1. I was definitely out of my league.

But the longer I worked there, the more I realized that these people weren’t superhuman. These were people just like me, with the exception that they’ve spent much more time putting in the work to master their skill.

I thought to myself, “If they can do it, there’s no reason I can’t.” So I left Cape Canaveral with a newfound motivation to really dive into programming and learn as much as I could. I really didn’t feel like I could call myself an actual programmer until my late 20s. I am in my early 30s now, so I feel like I haven’t even scratched the surface in terms of the skills I would like the master.

As far as learning Python, I didn’t start using it until about 4 years ago. I was a full-time front-end JavaScript developer at the West Virginia University GIS Technical Center doing some mapping work. We were using Python for some of the backend scripts, and I was assigned to maintain/update some of those. I found that I enjoyed that much more than the front-end JavaScript work and began using Python on a daily basis.

Ricky: You mentioned that you came to programming a little later in life (though still young). With that context in mind, what was your experience getting your first junior developer job, and do you have any advice for anyone looking for their first developer job later in life?

Corey: I got my first development job in my mid-20s, after my internship in Cape Canaveral. That job was at a small research company in West Virginia (WV). The competition isn’t as fierce in WV as it is in places like San Francisco or Silicon Valley, so I was able to land a position without much prior experience.

I was extremely intimidated when I first started there. I never wanted anyone to see any code that I had written out of fear that it would expose me as not knowing nearly as much as anyone else. I later came to find out that this is a common fear within the community.

Actually working as a developer full-time taught me much more than anything I had learned in school or self-study. Knowing the fundamentals is definitely helpful, but there’s no replacement for actually writing real-world applications and having your code critiqued by people who have been doing this for years.

It’s definitely uncomfortable for your mistakes to be on display for your coworkers to see, but once you get over that discomfort, you come out on the other side less likely to make the same mistakes in the future. Many of my viewers ask me, “How do you just know how to solve these problems?” Well, the truth is, many problems in programming are very similar.

Once you solve problems incorrectly over the years and are shown better and better ways, you eventually learn to recognize certain patterns and use the most efficient methods from the start. This isn’t a skill that most people have naturally. It is developed over years of trial and error.

Ricky: Most of our readers might recognize you from your very popular YouTube channel. I certainly heard of you through it. Not only is it on our Ultimate List of Python YouTube Channels, but I regularly watch your videos and even built one of my most recent Flask apps as a direct result of your Flask course. How have you found YouTube as a platform from a teaching point of view? Any surprising lessons learned?

Corey: Thanks. I was honored to have my channel featured in your article. YouTube is a terrific platform for learning, and I’m excited to see where online learning evolves in the future. Websites like YouTube have definitely lowered the barrier-to-entry for anyone who wants to create content.

Many people think you need a nice recording studio or some financial backing before you get started, but that is no longer the case. As long as you have a computer and a cell phone then you basically have all of the tools you need to get started. I have upgraded my equipment over time, but I first started on YouTube by doing screen recordings on a cheap laptop using the built-in laptop microphone.

For anyone who is thinking about starting a YouTube channel or creating content in general, I do have some lessons I’ve learned over time. I believe the most important lesson I’ve learned is that you should make content for yourself. I try not to create tutorials for topics for the sole purpose of them being popular or what will get the most views… I instead try to create the lessons that I wish I had when learning that topic.

Take notes while you learn certain subjects and keep track of what you found difficult to digest and why. If you get stuck on something, then most likely others are getting stuck on it as well. And once you find solutions to these problems, then you can look back and see if there is a way anyone could have explained it to you that would have helped you understand more easily. If there is, then be sure to pass that on to others.

I really believe that advice carries over into other fields. If you’re an educator, then make content that you personally would have found helpful. If you are a musician, then make music that you personally enjoy. If you’re a comedian, then tell jokes that you think are funny. If you do that, then most likely there are many people out there like yourself who will share your same mindset and love your content.

Ricky: What’s next for the YouTube channel going forward? Any plans to branch out into paid courses or other forms of teaching?

Corey: At the moment, I am sticking to YouTube courses. I feel very fortunate to have a platform that allows me to put my content out there for free and be funded by ad revenue. This allows people who can’t afford courses or who can’t pay for content at the moment to get access to all of my content.

Ideally, my content will always remain free as long as I have enough coming in to live on. It also wouldn’t be possible without generous supporters contributing through sites like Patreon and YouTube Channel Memberships. They support me financially on a monthly basis so that the content can remain free for those who can’t afford it. I would love to continue with this model into the future for as long as I can.

As far as branching out into other forms of teaching, I have thought about creating an online learning platform of some kind. I have used a lot of tools in my personal life that have helped me learn topics quickly. Tools such as spaced-repetition-learning applications and daily coding challenges.

I would love to tackle a project that brought these concepts to a learning platform in a way that would help students absorb material more quickly and fully. Any type of project like that will be something I wouldn’t work on for some time though. For now, I am focused on creating video content.

Ricky: You, sir, are a talented woodworker! Your stuff looks impressive. Is this a new hobby or a long-time passion of yours? How did you get started?

Corey: Oh, thank you for saying that. It is a hobby that I wish I had more time to explore. It is something I have been toying with for many years now. Personally, it is a fantastic way to clear my mind and drain any stress that’s built up.

Woodworking and programming can be similar in many ways. Sometimes I will start a woodworking project and have an idea of what I want the finished product to look like, but not a detailed understanding of where to begin. So you start by jotting down some outlines, then knock out the smaller components, and then after many hours of work you can combine all of that together into the result you were hoping for. There’s a lot of pride that comes with finishing those types of projects.

Ricky: Now for my last question. What else do you get up to in your spare time? What other hobbies and interests do you have, aside from Python? Any you’d like to share and/or plug?

Corey: Since I spend my professional career at a computer, I like to spend my spare time outside as much as possible. This includes hiking, kayaking, camping, swimming, and trips to the dog park. Now that I am working from home and have a more flexible schedule, my girlfriend and I would love to start traveling more. I believe I might mark some international PyCons on my calendar and use those as an excuse to visit some places we have wanted to see for a very long time, with the added bonus of meeting more folks from the Python community.


Thank you, Corey, for joining me this week. You can find Corey’s YouTube channel here. You can get in touch with him via Twitter or his website. And if you’ve benefited from Corey’s videos, consider supporting his efforts with via Patreon.

If there’s someone you’d like me to interview from the Python community, then reach out to me in the comments below, or send me a message on Twitter.


[ Improve Your Python With 🐍 Python Tricks 💌 – Get a short & sweet Python Trick delivered to your inbox every couple of days. >> Click here to learn more and see examples ]