PyDev of the Week: Maria McKinley

This week we welcome Maria McKinley (@twiteness) as our PyDev of the Week. Maria is a Senior Software Engineer at the Walt Disney Company and will be a speaker at PyCascades 2019. She is also teaching the Python Certificate Program at the University of Washington Continuing Education. You can read more about her on her website as well. Let’s spend a few moments getting to know her better.

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

I have a BS in Physics from the University of Washington, and taught myself how to code while working in Neuroscience labs at the same University. I got to work on some amazing research projects, while discovering how much I enjoyed writing code. In October 2015 I started working at the Walt Disney Company as a Senior Software Engineer. I also teach Python, both at the University of Washington and within Disney. And I’m a mom. All of that keeps me pretty busy, but I also try to set aside time for reading, exercise, playing boardgames, and art.

Why did you start using Python?

While I was working in the Neuroscience labs, I often did both software development and system administration. A few years ago, I was running a mail server, and trying to automate some administrative task related to spam. It wasn’t a terribly important or frequent one, so every once in a while I would work on automating it with a Bash script. After a few months, someone told me Python was good for sysadmin, so I tried it. In five minutes, I was able to get a script running, doing the task that had alluded me for so long. I was hooked.

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

Python is my favorite, and I’ve ben using it pretty exclusively for the last five years or so. I have used Matlab, Javascript, C, C#, C++, Actionscript, Igor, and PHP enough to have a basic understanding. I wouldn’t say I know them all anymore, but I did at one point to varying degrees. Just like a foreign language, if you don’t use it you lose it. I can still read them all, though, so there’s that. I taught myself basic when I was young, and I still remember having to change a bunch of the goto statements when I wanted to add something in the middle. That was hell. Python is better. 🙂

What projects are you working on now?

At the moment, I’m mostly working on teaching, and preparing a talk for PyCascades. I have dreams of playing around with Blender more, but that is going to have to wait for a couple of months. I have a couple of projects at work, as well. Those are REST APIs for backend SysOps colleagues, mostly.

What non-Python open source projects do you enjoy using?

Linux. Okay, I guess I have to go with a Python one, Blender.

How did you end up teaching Python in a university?

While I was at the university, I figured out that since I was self-taught, I did not know what I did not know. So one of the things I did to start figuring out where the holes were was to started a programming group at the university for secluded-in-a-lab-somewhere software developers to get together to learn from each other. The people teaching Python at the university found out about it, and asked me to post about openings they had. So, I did, and then applied myself.

What do students struggle with the most when learning Python?

I wish there were one thing that students struggle with most that we could just fix. Part of it depends on whether they are new to programming or not. People who are new to programming have an entirely different set of problems from those coming from a different language, and honestly, when taught together they can both get frustrated. I would say one of the biggest issues for beginning programmers is mindset. They get frustrated because they can’t write code that works the first time, not realizing that that is true for experienced programmers, as well. So much of programming is trial and error, and that is not emphasized enough. If you get frustrated when things don’t go right, you will be frustrated most of the time as a developer, especially in the first few years.

How can the Python community make this better?

I think every class or tutorial for beginners should begin by encouraging students to embrace troubleshooting as a fun challenge or game. It is all about learning from your mistakes, and realizing that making mistakes is actually one of the best ways to learn. Teaching is also a great way to learn, so help your fellow students!

Is there anything else you’d like to say?

Super looking forward to adaptation of Good Omens to a television series. That book has a special place in my heart.

Thanks for doing the interview, Maria!