The Techwriter Highlight - Stephen Gruppetta
Stephen Gruppetta talks about Python at The Python Coding Stack
Hello stackers! This week on the Tech Writer Highlight, we host . Stephen writes about programming inPython at and technical writing at . In this post, he shares his origin story and details on his writing process.
First, tell us a bit about yourself. Who are you, what is your day job, what are your professional interests?
Here's my life story in brief. I'm originally from the tiny Mediterranean island of Malta, but I've now lived in the UK for more than half of my life. I studied Maths and Physics at the undergrad level and then moved to the UK to continue with a PhD in Physics at Imperial College, London.
This is where I started coding. It was a necessary tool for my research. I had never written code before, apart from a minor module in programming during my undergrad—one of those modules you only do to tick a box! As I progressed through my scientific career, I learned more about coding, and I enjoyed programming more and more.
When I decided to leave academia, I combined two things I loved about my previous career: programming and teaching. I started teaching coding to children and adults. This is now my main occupation.
The kids' coding part takes a big chunk of my day. It's a small team, so I wear many hats during my working day! But creating new teaching content is my favorite part. Those who follow me on social media may see the occasional animation using the turtle
module. I've become quite good at pushing this module to its limits as I use it often to create new projects for our children's courses!
Now tell us about
. What is it about? What topics do you cover? Who is your intended audience?I write about Python. I sometimes view my writing as selfish since the primary audience is myself. I'm writing the articles to help me clarify my thoughts about a topic. I seek new perspectives even when writing about a topic I know well. In some ways, I write the articles I wish I had while learning. My articles represent my personal perspective on programming. They depict how I visualize and understand things.
The ideal reader is an intermediate Python programmer, whatever "intermediate" means. But I hope my writing style makes the articles accessible for beginners who want to read a bit ahead. And hopefully, even a more expert reader can find a different perspective that may spark new ways of looking at things.
How, when, and why did you begin writing about technical topics on the internet?
In my earlier career as a scientist, I wrote about technical topics often. That's part of the job of a scientist. Unlike many of my colleagues, I enjoyed the writing process. I even enjoyed writing my PhD thesis, which few PhD students do. And I also enjoyed writing journal papers, except when making the changes required by Reviewer 3!
When I shifted career and started communicating about programming rather than physics, my early writing focused on notes for my students. There are great books available, but I wanted to provide my students with written notes that mirrored my teaching, using the same tone, style, and analogies I use in the lessons with my students. These notes grew longer, eventually becoming a book. Writing standalone articles followed this.
As an aside, this is the second time I have gone through this process. When I was an academic, I taught optics to optometry students. This was a physics for non-physicists module, focusing on optics related to the human eye and ophthalmic instruments. None of the books was perfectly suitable for this audience, and clearly, none had my teaching style, so I started writing my own notes. A few years later, I was providing a 200-page PDF to all my undergrad students. I regret never publishing this 'Optics for Optometry' text in some form! I didn't want to have the same regrets with my Python writing!
The first Python articles I published online were those I wrote for the Real Python website. Later, I decided to write my own articles, which were more in my voice. This eventually led to The Python Coding Stack.
And the main answer to your "why?" question is that I enjoy writing. When I need a break from my daily work, I open my markdown editor and start writing!
What role does technical writing play in your job and life?
I'm trying to give technical writing a more significant role in my activities. I see myself as a "communicator" about Python and programming. After all, teaching is also communication, so this term encompasses everything I do professionally.
My move to Substack was another step towards giving more prominence to my technical writing. My near-future plans include completing the finishing touches on The Python Coding Book. I call this a "friendly and relaxed" textbook for beginners. It's been online for a couple of years, as I've been completing it in public, and many people have been enjoying learning from it. I want to finish it and also make it available in other formats.
And then, I also have a 'Python for children' book in me. I don't like the conventional approach to books for children, so I'd like to have a go at converting my years of experience teaching Python to kids into a book.
How is your writing process? How do you organize your writing schedule? How much time does writing take you, on average?
The process starts with an idea. The spark could come from a discussion I'm having with students or colleagues while coding or while reading other articles. I have a Kanban board, and these ideas go straight into the left-most column. At any point, I probably have two or three of these ideas I'm actively thinking about—these are the ones in the second column. I do a lot of my writing in my head! For most of my articles, this is when I'm drafting some code to test and expand my ideas and doing research as required.
Once I feel the idea is mature enough, The idea moves to the third column in my Kanban board! The first step is to rewrite the code. This will be the published code. This step is important to get presentable, neat code that uses best practices, of course. But there's another reason I need this step. I rewrite the code in the order I feel it should be presented to a reader. Therefore, this process helps me create a mental outline of my article.
By the time I finish rewriting the code, I will have a clear picture of what the article will look like. This is when I need to write the article quickly. I do write notes at this stage for some articles, but these don't capture the full vision I have for the article. The complete picture is only in my working memory, which is why I prefer to get the article out of my head and written down in one or two sittings at most.
By the time I'm ready to start writing, I've already done all the hard work. I use a "strong first draft" approach. My published articles are very similar to my first drafts. I'm also improving at getting my writing style right at the first draft stage, so fewer stylistic and grammar changes are needed now compared to articles I wrote in the past.
For this reason, I cannot tell you how long it takes to write an article. The actual "writing" doesn't take long, but the whole process takes much longer. I often write about analogies and ideas I've been developing over many years. So I may be able to write an article in a couple of hours, but that's only after several years of thinking about it and several days (on and off) of tinkering with the preliminary code!
What kind of advice could you give people considering or getting started with technical writing?
I rarely give advice, but I can give my perspective so that anyone getting started can choose those aspects that resonate with them. It was important for me to find my own style and not try to copy what others were doing. By all means, I looked at other successful writers and read their material carefully. I still do. But I didn't try to copy them just because they were successful. Finding my voice is more important to me. This seems to be even more critical in this era of AI-generated text. A writer's unique voice and perspective are more important than ever.
For example, I'm making an effort to steer away from the traditional technical tutorials modeled on the "classic textbook" approach. We all had those textbooks that just presented one fact after another. I've been thinking more about the narrative that goes into my articles, even getting inspiration from techniques used in fiction writing. I recently wrote an article for The Tech Writers Stack discussing this topic.
I also benefitted from having others do technical and language reviews on my articles in the early days. Tools like GPT and Grammarly can help with this, but having experienced technical writers reviewing the work whenever possible helps a lot. I benefitted from writing several articles for Real Python early in my Python writing journey. They have a rigorous pipeline that includes several stages of review. Now I feel comfortable doing my own technical and language reviews, with some help from GPT and Grammarly, but that's because I've learned a lot from the real-person reviews I've had in the past.
Hopefully, The Tech Writers Stack can provide this type of support to new and established technical writers.
Any closing words you’d like to share with the readers of The Tech Writers Stack?
I'm looking forward to seeing this community grow and thrive. Most of us technical writers work in isolation and not in large editorial teams. Hopefully, we can support each other to improve our technical writing. And I'm sure we'll see many collaborations within the community.
This was a short interview with . Check his profile and subscribe to his substacks to learn more about his work. Leave a comment for Stephen if you have any further questions.
And don’t forget to share our substack with anyone interested in technical writing.
Awesome interview. We have some really stellar people in the community. Glad to learn more about you Stephen.
Way to dive in and take advantage of the experts we have right here on Substack! I'm blown away.