I had the greatest pleasure of talking with the two wonderful programmers, teachers, writers, and, overall, very nice guys, who promote coding education and make it easier for people to get into coding, build their own apps, or just better understand programming languages.
Mike Driscoll, my first interviewee, an author of five books on Python, seasoned programmer, technical reviewer, blogger, and a contributor at Real Python, shares his love for all things Python, tells the story behind his Kickstarter campaigns, explains the reasons for self-publishing, and talks about his passion for teaching and writing.
Chris Ching, my second interviewee, is a founder of coding school, CodeWithChris, which offers courses on Swift programming and teaches people to create apps for Apple platforms. The school’s YouTube channel has gathered over 180,000 subscribers; more than 5,000 students have successfully graduated from the school; and Chris’s iOS tutorial content on Youtube has received over 12 million views! For this article, Chris walks us through establishing his own business, challenges he faces, press coverage from major publications he’s already received, as well as his dedication to teaching programming.
This interview has become possible thanks to Soshace.com, a hiring platform for web developers: hire a developer or find a remote job.
Hello guys! Please, tell me about yourself, share your story.
Mike: I have been interested in computers since high school. When I went to college, I decided to pursue a degree in Computer Science. I ended up with one in Management Information Systems in the end, mostly because of a professor who gave me very confusing advice.
Unfortunately, I happened to graduate when the internet boom ended and lots of tech people lost their jobs. So it took a few years to finally get a position. When I did I ended up working for the local government where they wanted me to learn Python. They were planning to port as much of their code to Python away from Kixtart and VBA.
This was my introduction to the Python programming language. I learned it in a trial-by-fire manner and I succeeded at porting all their major applications to Python. I also got to learn about Plone, Zope, and TurboGears.
Chris: I think my love for programming started off with my fascination with computers. I remember spending hours on my family’s 486 playing around with it when I was 13 years old. Not to mention the video games! Warcraft 2 was my game of choice 😊
Being a big nerd in high school, joining the chess club and math bowls, I took my school’s computer programming course in Turing. I wanted to build games! It was so fascinating that I could also build programs to automate tasks that would otherwise take forever to manually do. Some of my classmates found out I was coding for fun, so they ended up paying me to do their computer assignments. That’s when I realized that I should/could earn a living in computer programming. I ended up majoring in Computer Science at the University of Waterloo.
After graduating from university, I joined a local IT consulting company for a few years. During my time there I worked on big corporate projects with Microsoft technologies because that was all the rage back then. I was at the bleeding edge of Microsoft technology, working with things like Silverlight (Microsoft’s Flash competitor) and Surface (A giant touch screen coffee table).
Shortly after, I worked with two start-up companies developing touch screen applications for their clients. Before starting CodeWithChris, I was leading an iOS team of about 7 developers. This is where I had the opportunity to coach and mentor junior developers and help them develop their skills. As much as I enjoyed coding and developing and building some cool stuff, I found educating and growing my team so much more fulfilling.
Mike, what do you do now? What programming languages do you know?
Mike: I am currently an Automated Test Engineer / Python Subject Matter Expert. I put together end-to-end integration tests that test an embedded user interface written in C++ with the Qt framework. The tests are written in Python and make sure that our application works the way we expect.
While I do get to work in C++ a little at this job, most of my time is spent in Python. I also get to do a little SQL here and there.
My job is an office job and I interact with many teams, helping them with their Python and test related questions.
Chris, are you solely concentrated on your educational project right now or you have a day time job?
Chris: I ended up leaving my iOS lead developer job to pursue CodeWithChris full time. What was initially a hobby of producing YouTube videos to teach iOS development in 2013 is now a full-fledged online education business.
And what programming languages do you know?
Working with so many languages, experiencing the pitfalls in learning them and being able to mentor developers during my career, I’ve been given a unique lens on how people learn to code. I feel very fortunate that all these experiences have given me the opportunity to do something helpful.
Mike, I’ve seen you’ve been doing unpaid technical reviews for Packt Publishing. Can you tell me more about this initiative? What other community initiatives do you have?
Mike: I have worked on several books with Packt Publishing as a Technical Reviewer. They originally contacted me quite a few years about writing a wxPython Cookbook, but I ended up turning that down due to time constraints at the time.
However, doing Technical Reviews was a lot less time consuming and I enjoy reading technical books. Here are a few of the books I have reviewed for them:
Tkinter GUI Application Development by Bhaskar Chaudhary
Building Machine Learning Systems with Python by Willi Richert and Luis Pedro Coelho
Software Architecture with Python by Anand Balachandran Pillai
I also recently did a paid Technical Review for No Starch Press’s Serious Python by Julien Danjou.
Other than that, I am active in the local Python community via Pyowa, the local Python user group that I helped to found. I also help out on various Python mailing lists, StackOverflow, etc.
Mike, you’re also an author of several programming books. Why did you decide to write? There are many Python teaching books, why another one?
Mike: I originally starting writing my blog as a way to record how I figured things out. It was a reference for my own benefit.
However, I soon had very encouraging readers and they eventually talked me into writing a book. Since I had read several beginner books when I started learning Python and I read a lot of books for Packt Publishing, I knew what was and what wasn’t well covered in Python books.
When I wrote my first book, Python 101, I knew I wanted to cover more than just beginner materials. Even in college, I found that beginner books always focused on syntax and the reader never got to learn anything really useful in the real world. There are many things I plan to improve in my first book to make it even better, but that was the original intent.
I decided to self-publish because that would give me control over the content and release schedule of the book. I also knew that a lot of authors don’t make much on technical books, so I might as well just do it myself. I like a challenge and it was fun to figure out how to convert my text files into PDF, epub and mobi file types. I actually wrote about this topic at the end of February.
Chris, please, tell me about CodeWithChris project. How long have you been in business? Whom would you recommend taking your course and why?
Chris: CodeWithChris is a company that specializes in technical education. We produce course offerings to teach people Swift programming using Xcode to create apps for Apple platforms. We’ve been around since 2013 and have steadily grown our community of students. Currently, we have over 180,000 subscribers to our popular YouTube channel and offer a course bundle to teach end to end app development.
We’re still a small company of three people and focus primarily on producing the best educational content on iOS development. Our course has evolved over the years and has gone through multiple iterations with feedback from thousands of students. Over 5000+ students have taken our iOS course over the years and we have over 12 million views of our iOS tutorial content on YouTube.
Our course is geared towards people who have never coded before and come from a completely different educational background. I think what makes our courses different is that we really focus on beginners. It’s one thing to understand how to use the tools and syntax but it’s another thing to learn how to think like a programmer and to understand “why” we’re doing certain things.
Our courses really go into detail about the reasoning behind critical concepts to establish a solid foundation before even deep diving into Swift programming. Developing the student’s curiosity and inquisitiveness is as important as knowing the tools and syntax. We think that’s why our students have been successful in learning how to code. We really want to make coding a skill anyone can learn. The only way to do that is to help them feel successful and motivated from their first tutorial.
Mike, I’ve originally found you on Kickstarter. Can you please share a story behind the Kickstarter projects? Tell me about the book you’re currently working on.
For Python 101, I decided to use Kickstarter to help me gauge interest in the book. Sure, I had a handful of people who thought the book sounded neat, but that is hardly enough interest to warrant me spending lots of time on it. That Kickstarter was the best Kickstarter I have ever run. It turns out that a lot of people really liked my idea.
After a couple of years, I made Python 101 free and it has had 30,000–45,000 downloads. Readers can still purchase the book on Leanpub and Amazon if they want to, or they can download it free.
The latest book, Creating GUI Applications with wxPython, did pretty well on Kickstarter this year. I will be working on it for the next month or two and then release the book myself in May 2019. The goal of this book is to create several simple GUI applications that the reader can then continue to enhance and play around with. It should also help them learn the wxPython GUI toolkit too.
I should also note that my wxPython Cookbook actually got picked up by Apress and was repackaged as wxPython Recipes.
Chris, I’ve seen you mention Wired, The Huffington Post, App Masters, and some other publications on your website. Did they feature your project?
Wow, that’s an impressive list! Do you have any success stories from your students? Any successful projects (or apps) your students built?
We have over 140 apps published in the App Store by our students! We also mention their stories on our website https://codewithchris.com/success-stories/
You can also see a selection of them featured on the wall and in many of my YouTube videos and Instagram posts:
We will also be spotlighting apps created by our students on our social media sites. Stay tuned!
Mike, do you have any open source projects you’re currently involved in. What are they about?
Mike: I work with the wxPython core developers doing some documentation for their site, although it’s been quite sporadic of late. I also contribute to other Python-related project’s documentation, such as Beeware. While I have created some small, simple GUI applications that I have released on Github, none of them have really taken off and they tend to be more for research or for helping others.
Do you have any other initiatives to promote coding education or make it fun?
Mike: My books and my blog are my primary methods for promoting Python education. I have also recently started working with Real Python on their tutorial and technical review teams. They are quite focused on spreading Python knowledge far and wide.
Chris: Currently, we’re working on bringing my iOS courses into schools! This is a super exciting initiative that I’ve been thinking about for years but somehow it was always put on the backburner.
We’ve been approached by schools in the past to use my YouTube videos in the classroom and after the first few lessons, the teachers always come back asking for our full course offering. Since I’ve always been focused on supporting my online student community and self-paced learning, supporting materials for the teacher and classroom was always lacking.
I truly believe that coding education is vital and should be offered as early as possible.
Unfortunately, mobile app development is such a new technology that a lot of schools struggle to find learning materials for their class.
Teachers are also equally seeking professional development and resources to help them get up to speed to teach computer science. I really admire and support organizations such as Code.org for the work they do to increase the accessibility of computer science as an educational offering. I’m hoping to do some of that with Swift programming.
Last year, a school in Australia used my fundamentals course to teach a class of students between the ages of 14 to 17. It worked incredibly well, and it’s really inspired me to create CodeWithChris courses for schools. Currently, a few schools are using my 28 day app challenge and beginner series videos in their classes. The students get super excited being able to create an app and see their work come to life within the first few lessons.
I’m truly flattered to hear that students love the way I teach concepts and that it motivates them to code. This is truly a rewarding experience to be able to make an impact on our next generation of app coders.
Recently, I was also contacted by an Apple Retail store to use my lessons to teach Swift programming for their in-store classes called “Today at Apple”. I was beyond flattered to see my lessons taught in store!
What these two experiences have taught me is that coding can be accessible for everyone and that everyone can/wants to learn how to code. It’s broadened my horizons of the groups that might find my courses useful.
I hope to offer my lessons to a wider audience and in different applications this year!
It was a great pleasure for me to talk to people who are currently at the forefront of coding education; those, who are doing everything possible to engage more people in coding, help people advance in their careers and, overall, make education available for everyone. Education is much more than business, after all.
Stay tuned for the next article, where we’ll talk about people who make educational coding games.