About Stephen Gruppetta
I was a physicist for many years — well, I still am a physicist but I no longer work as one. I studied Physics and Maths in my native Malta and then completed a PhD in Optics and Imaging from Imperial College London.
That’s where I learnt coding, out of necessity, first in MATLAB and then Python. In the early days all that mattered was that the code works. Later I learnt to appreciate the beauty of writing neat, elegant code. Still learning…
After well over a decade as a University academic, I decided it’s time to escape before it’s too late. I moved on and set up codetoday in 2016 to teach coding to kids as well as adults who are looking to learn coding.
The more I learn about coding and Python, the more I realise how much I don’t know…
I’ve also authored a Python coding book for beginners: The Python Coding Book (yes, yet another Python coding book!). It’s been gaining a loyal following for its distinct style: relaxed and friendly and making sure the “why” things are the way they are is well understood. Google also places it quite high up when you ask for a “python book”!
I also write regularly on The Python Coding Stack. These articles take a very different approach to writing about Python. You may like them!
And my experimentation with narrative technical writing goes a bit further. I also write specifically about this topic on Breaking the Rules
Now, I’m now a core team member here at Real Python…
You can find me on X where I post stuff about Python and narrative technical writing. Feel free to find me on LinkedIn, too
Tutorials by Stephen:
- How Do You Choose Python Function Names?
- Python Mappings: A Comprehensive Guide
- Python Sequences: A Comprehensive Guide
- What's Lazy Evaluation in Python?
- Build a Python Turtle Game: Space Invaders Clone
- When Should You Use .__repr__() vs .__str__() in Python?
- Using NumPy reshape() to Change the Shape of an Array
- Image Processing With the Python Pillow Library
- Using the len() Function in Python
- Using Python Optional Arguments When Defining Functions
- Visualizing Data in Python Using plt.scatter()
- np.linspace(): Create Evenly or Non-Evenly Spaced Arrays
- Differences Between Python's Mutable and Immutable Types (Course)
- Sorting Dictionaries in Python: Keys, Values, and More (Course)