PyDev of the Week: Harrison Kinsley

This week’s PyDev of the Week is Harrison Kinsley. Harrison is the creator of a popular Python Youtube tutorial channel. He also maintains a website that is kind of a text version of his video tutorials here: https://pythonprogramming.net/. Let’s take a few moments to get to know Harrison better!

Can you tell us a little about yourself (hobbies, education, etc):

As cliche as it will sound, my biggest hobby is programming without a doubt. That said, I also enjoy running, scuba diving, and performance driving. There are various tracks (think: F1 racing) that you can take your street car to, some are actual F1 tracks. I tend to track my car (Honda S2000) once or twice a month over the weekend.

As for education, I have no formal CS or related education. I double majored in Philosophy and Criminal Justice.

I am married, live in Texas, and have a couple large dogs.

Why did you start using Python?

It’s funny, I actually disliked programming for a long time. I had wanted to learn to program since I was about 12 years old, I kept trying, but I just hated it. Too tedious, too annoying, too confusing.

Fast forward to college, by this point I had a few online businesses, but was always just paying developers to work for me. This time, my idea was to track sentiment for stocks for investing/trading. I didn’t know anyone who could do that for me, so I revisited programming yet again with this goal in mind. I tried quite a few languages again, was left pretty bummed out overall, but then a friend of mine mentioned that a programming language called Python had a natural language processing library called Natural Language Toolkit (NLTK). I quickly found their book on nltk.org/book, and it was perfect for me, since it was exactly what I wanted. I went through the book, and that’s how I learned python and begun my journey. That project still exists today as sentdex.com (sentdex = sentiment+index), and that’s also how my “Sentdex” e-name was formed.

What other programming languages do you know and which is your favorite?

I’ve done a bit of javascript and C++, but I am really nothing special in either, probably the language I know the most of besides Python would be SQL if I’m allowed to claim that language.

I’ve also poked into Go and Swift. I would like to learn more C++ and Javascript for the future. Mainly C++ to augment Python, where a relevant library might not yet exist for a task I am doing in Python. I find myself relying too much on other people to have made wrappers for me, which is fine when people have done it, but, when something doesn’t exist yet, I am stuck, and that’s always a bummer!

Javascript more for my web development purposes. My favorite language, however, is of course Python! The main reason I haven’t learned C++ any more in depth, for example, is because it’s just not as exciting to work with for me as Python is. I would describe Python as an “exciting” language to work with, just simply due to the rapid development capability for me personally.

What projects are you working on now?

Most recently, I have been working on self-driving cars in Grand Theft Auto 5. As I am writing this, I have been training a deep learning model for about 5 days straight while out of town. I am excited to get home and see how the model has done, I’m like a kid waiting for Christmas morning. I just hope it’s not coal.

For anyone interested in tracking the series’ tutorials: https://pythonprogramming.net/game-frames-open-cv-python-plays-gta-v/

The project is also open sourced at: https://github.com/sentdex/pygta5/

You can also view the livestreams of the AI: https://www.twitch.tv/Sentdex

Which Python libraries are your favorite (core or 3rd party)?

Pandas is probably my number 1 vote, just based on how much value I have gotten from it over the years, but probably Numpy should take #1, it just isn’t as often recognized for all the work it’s doing in the background for such a huge variety of libraries.

I also like Flask a lot due to the simplicity of working with it, and how easily you can customize it to do whatever you want. Flask has enabled me to share my work with others in a way no other library has afforded me.

Where do you see Python going as a programming language?

I think the main power behind Python is the community. There are other languages that are fairly similar in ease and general-purpose-ness, such as Ruby or Julia. The difference I personally see between Python and Ruby/Julia is the actual community behind them. With Python, you really can do just about everything. I think the only real weak point for Python these days is for something like game development/mobile development, along with anything where the latency between a wrapper is still too costly. Something like millisecond-frequency-trading.

Fundamentally, I can easily see Python being here in the next 20+ years, but a lot will depend on the community. The still-existing forking of the community between version 2 and 3 is a great example of how, despite an initially great community, you can chop it right in half. It seems like some people think the 2 vs 3 stuff is behind us, but I really don’t see that. It’s certainly becoming uncool to admit you work with Python 2 online, but it’s still very much a reality in practice

How did you get started doing Youtube videos about Python?

I actually was just trying to market Sentdex.com at first. I was doing some videos about sentiment analysis and a few with using Python for some associated tasks. People seemed to really appreciate the tutorials, so I just kept sharing things that I had learned. It just kept growing until pretty quickly the channel had really nothing to do with sentdex.com anymore, but the name couldn’t be changed. Now it’s very clear that, marketing-wise, the term “Sentdex” is more associated with Python programming education, and not sentiment analysis.

What advice can you give to someone who wants to teach using Youtube or similar?

Don’t worry be crappy! The overwhelming majority of the responses I got, even from the early days when I was pretty bad at coding AND teaching, were super positive. Even if you’re not considering teaching, I suggest you still try it. It doesn’t need to be YouTube, just a blog or something similar. The return for doing it is just insane. First, as you’re attempting to teach things, it only solidifies what you know, and quickly shines a light on what you don’t know. Trying to explain something is just a great way to learn it.

Next, once you put something out there, you get other eyes on it, you’ll get tips, suggestions, and just tons of general help. It’s basically a form of peer review.

Finally, if you’re seeking employment, having a blog with proof of work/passion is something that most employers seem to appreciate.

Is there anything else you’d like to say?

Thanks for considering me a pydev of the week!