PyDev of the Week: Stephen Gruppetta

This week we welcome Stephen Gruppetta (@s_gruppetta_ct) as our PyDev of the Week! Stephen is the author of the book / blog, The Python Coding Book. Stephen is also an author and contributor at Real Python.

Let’s spend some time getting to know Stephen better!

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

I’m originally from Malta, a small island in the Mediterranean. But I moved to the UK in my early twenties and have lived here ever since.

I came into programming relatively late. My first degree was in Maths and Physics and then I went on to do a PhD in Physics at Imperial College London (which is when I moved to the UK). After that, I worked as an academic scientist and university lecturer for over a decade. During this time, programming gradually went from being “just” a tool I need for my research to a subject I love.

The best hobbies are the ones I share with my two kids, whether it’s sport, board games, walks…and my eldest is getting into Star Trek now, too!

I started learning chess and Mandarin over the 2020/21 lockdowns and I try to carve some time for these when I can.

Why did you start using Python?

I started using Python relatively recently, towards the end of my science career. So that’s about 8 years ago now. When I started my research studies, Python was still in its early days and MATLAB was the language of choice in the research group in which I was doing my PhD.

By the time I started hearing more and more about Python, I already had over a decade worth of my own code in MATLAB which I used for my scientific research. The thought of switching to another language was not enticing.

But as I began planning to move away from academia and wanting to learn programming more thoroughly, I started learning Python and using it to fill lots of gaps I had in my general programming knowledge.

And I still have many more gaps to fill!

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

As a teenager, I had a cousin who tempted me with some BASIC, but I never really got into it. During my undergraduate studies, I had a short module learning programming in Pascal. But again, I got the credits and moved on.

Then, I started programming properly during my PhD studies as it was an essential part of my research. That was using MATLAB and I ended up being fairly proficient in it by the end of my science days.

Now, I only really use Python, it’s not only the language I prefer. It’s the only one I use! I’d like to start learning Julia, too. But so far, all I’ve done is install it and run a “Hello World!” program.

What projects are you working on now?

My main focus at the moment is running Codetoday, which is the company I set up when I left academia. We’re rather unusual as we provide programming training for both kids and professional adults.

Most of my projects at the moment revolve around creating content: new material for our courses for children and adults at Codetoday, writing books and tutorials, and so on.

I’ve enjoyed writing The Python Coding Book and seeing so many beginners enjoy reading it and learning from it, so I now want to write more books. I have a new book project in the pipeline that’s quite exciting, but it’s still early days, so can’t say much about it yet. I also have a kids’ coding book in my head that’s quite different from the ones out there. So I’ll need to find time to start shifting it from my head into written words.

In terms of programming projects, I don’t really work on any of my own projects at the moment. But I run training programs for companies and teams of scientists, so I get involved in their projects as part of the training, which is lots of fun and I learn a lot about many other fields, too!

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

As a scientist I’ll have to say NumPy, Matplotlib, and Pandas. But I use Turtle a lot, especially in our children’s coding curriculum. However, I also use it to teach various topics to a wider audience. I enjoy taking Turtle to the limit!

And itertools is great, too.

How did you decide to go into teaching coding?

In my first career as an academic scientist, I enjoyed teaching—and I was quite good at it, too—and I enjoyed programming. When I left academia, I had very young kids so I had taken a keen interest in kids’ education. I felt I could contribute in making kids’ coding both thorough and exciting.

What are the top 3 things that you find new programmers struggle to understand?

Young kids struggle with the concept of a variable, although adults less so.

The main challenge for adult beginners is the mindset—breaking down ideas into a structure that’s compatible with computers rather than humans.

Functions can also be a bit tricky. Beginners often struggle to understand why we need to move data in and out of functions through arguments and return statements. I tend to create narratives or stories to help them understand what’s going on, such the Room analogy which I’m quite proud of! And this process has helped me learn things better, too!

Is there anything else you’d like to say?

Thanks, Mike for the opportunity to share my thoughts on PyDev of the week and for all your support on other platforms like Twitter. I’m sure many others in the Python community will share my view that there isn’t anyone who’s more supportive to colleagues than you!

Thanks for doing the interview, Stephen!