Stephen Gruppetta
banner
stephengruppetta.com
Stephen Gruppetta
@stephengruppetta.com
Constantly looking for simple ways to explain complex things…

Here you'll find:
• Python
• Narrative Technical Writing
• Track & Field Athletics

Links in the pinned post below

stephengruppetta.com
Pinned
Stuff I do…

• Python
Python articles www.thepythoncodingstack.com

The Python Coding Book amzn.to/42tJKOL

Real Python realpython.com

• Narrative technical writing
stephengruppetta.com/breaking-the-rules

• Track & Field Athletics
backonthetrack.substack.com

• Everything stephengruppetta.com
We need to think about this. It's not a 'now' problem, but a future one

Up to now, programmers mastered the details of what makes programs great and robust through experience, through going though the various stages of learning and expertise, learning from more experienced colleagues…

/1
January 28, 2026 at 12:00 PM
Reposted by Stephen Gruppetta
I'll go through my thought processes when writing and editing, discuss what matters to me and why I think it makes a difference, I'll go through my priorities to ensure communication is always clear, accessible.

luma.com/5z418e58

[Free event]
Live Editing Session • Clear Technical Communication · Zoom · Luma
Join me for an informal session in which we can edit a draft of a technical article live and together. I'll go through my thought processes while writing and…
luma.com
January 23, 2026 at 9:49 PM
Reposted by Stephen Gruppetta
Clear Technical Communication

It’s important to communicate with others

It’s important to communicate with LLMs

It’s more important than ever

Thoughts?
January 23, 2026 at 8:43 PM
"iter" is the Latin word for journey or path.

So, an iter-able is something that's "able to go on the journey, follow the path"

And an iter-ator is something that does what's needed to deal with the journey

Use "calculate" as a model:

/1
January 27, 2026 at 10:43 AM
Reposted by Stephen Gruppetta
Heard about __new__, the constructor in #Python?

You can basically forget about it. It's for advanced, unusual cases.

Just use __init__! It runs automatically on every new instance.

__init__ is for assigning attributes to self (what other languages call "instance variables").
January 26, 2026 at 4:30 PM
Reposted by Stephen Gruppetta
Python Tip #26 (of 365):

When opening a file, use a "with" block... especially for writing! 🧵

Closing files once you're done with them is a good practice in general.

And using a "with" block to open a file will close it automatically when the "with" block exits.

#Python #DailyPythonTip
January 26, 2026 at 7:04 PM
Reposted by Stephen Gruppetta
Your call…

There’s

• a super-personalised one-to-one 6-month mentoring option
$ 4,750

• individual one-to-one sessions
$ 125

• a self-led route with access to 60+ hrs of exceptional video courses and a support forum
$ 400

Which The Python Coding Place student are you?

thepythoncodingplace.com
The Python Coding Place
The Place to Learn Python
thepythoncodingplace.com
January 26, 2026 at 9:14 PM
Reposted by Stephen Gruppetta
And now for something completely different. I don't only write about #Python

I have also started writing about one of my silly hobbies: reviewing root beers and related drinks.

Feel free to follow along if you like that sort of thing:

www.rootbrewreview.com/
Root Brew Review | Mike Driscoll | Substack
Learn all about root beer here! Click to read Root Brew Review, by Mike Driscoll, a Substack publication. Launched 20 days ago.
www.rootbrewreview.com
January 26, 2026 at 8:27 PM
Reposted by Stephen Gruppetta
Here's the plan for this free session…

• I send a draft article (a Python article) so you can read through it

• On a live Zoom session, we go through the article as if we're editing it

I hope to make this a regular event - see link in quoted post. Sign up now…
January 25, 2026 at 3:00 PM
Reposted by Stephen Gruppetta
Help me crowd-source the Python Index (I'll come up with a better name at some point…)

• How easy does Python make it to write good code?
• How hard does Python make it to write bad code?

The ideal programming language scores (1, 1)

Where would you place Python?
January 25, 2026 at 4:28 PM
Help me crowd-source the Python Index (I'll come up with a better name at some point…)

• How easy does Python make it to write good code?
• How hard does Python make it to write bad code?

The ideal programming language scores (1, 1)

Where would you place Python?
January 25, 2026 at 4:28 PM
Here's the plan for this free session…

• I send a draft article (a Python article) so you can read through it

• On a live Zoom session, we go through the article as if we're editing it

I hope to make this a regular event - see link in quoted post. Sign up now…
January 25, 2026 at 3:00 PM
Reposted by Stephen Gruppetta
Let's try this. Join me on this

Live Editing Session • Clear Technical Communication.

Here's the plan:

[see next post]

Let's try this out. If it works, we'll do more of them…
luma.com/5z418e58

[Free event]
Live Editing Session • Clear Technical Communication · Zoom · Luma
Join me for an informal session in which we can edit a draft of a technical article live and together. I'll go through my thought processes while writing and…
luma.com
January 23, 2026 at 9:49 PM
Reposted by Stephen Gruppetta
Stuff is only truly free if it doesn’t cost you any money or time.

Lots of stuff doesn’t cost money, but it costs you lots of time.

Sometimes (many times?), paying money is cheaper than getting the free option…

[…and this is true for learning Python–don’t waste time, it’s too precious]
January 21, 2026 at 6:26 PM
Reposted by Stephen Gruppetta
It's always been about communication. Now that computers talk like humans, those who know how to communicate are in a better position than those who know how to write x64 assembler.
January 24, 2026 at 9:36 AM
Reposted by Stephen Gruppetta
This.
Absolutely. And those who are proficient programmers and excellent communicators have a double advantage
January 24, 2026 at 9:45 AM
Let's try this. Join me on this

Live Editing Session • Clear Technical Communication.

Here's the plan:

[see next post]

Let's try this out. If it works, we'll do more of them…
luma.com/5z418e58

[Free event]
Live Editing Session • Clear Technical Communication · Zoom · Luma
Join me for an informal session in which we can edit a draft of a technical article live and together. I'll go through my thought processes while writing and…
luma.com
January 23, 2026 at 9:49 PM
Clear Technical Communication

It’s important to communicate with others

It’s important to communicate with LLMs

It’s more important than ever

Thoughts?
January 23, 2026 at 8:43 PM
An orchestra conductor doesn't play any instrument during a performance, but they need to know music exceptionally well.

The same is true for programming, especially in this new era of AI

www.thepythoncodingstack.com/p/the-orches...
The Orchestra Conductor, The Senior Programmer, and AI • [Club]
A short opinion post with some thoughts on the changing programming landscape
www.thepythoncodingstack.com
January 22, 2026 at 10:43 PM
Stuff is only truly free if it doesn’t cost you any money or time.

Lots of stuff doesn’t cost money, but it costs you lots of time.

Sometimes (many times?), paying money is cheaper than getting the free option…

[…and this is true for learning Python–don’t waste time, it’s too precious]
January 21, 2026 at 6:26 PM
Reposted by Stephen Gruppetta
Did you ever notice that you do _this_ each time you start walking?

Another section in my sprinting biomechanics series…

backonthetrack.substack.com/p/13-you-pus...
January 17, 2026 at 5:57 PM
Reposted by Stephen Gruppetta
`.__george__()`

In a recent course, a student asked my whether it's possible to create new special methods by using leading and trailing double underscores in the name.

No. But you can* define a method with leading and trailing double underscores if you want

* you can…but you shouldn't

/1
January 20, 2026 at 11:12 AM
Spotted a video of Macron wearing aviator sunglasses while giving a speech.

I, of course, assumed it was AI- generated

It wasn’t. The calibration of what’s real and what isn’t is still going on…
January 21, 2026 at 10:13 AM
`.__george__()`

In a recent course, a student asked my whether it's possible to create new special methods by using leading and trailing double underscores in the name.

No. But you can* define a method with leading and trailing double underscores if you want

* you can…but you shouldn't

/1
January 20, 2026 at 11:12 AM
Reposted by Stephen Gruppetta
Need leading zeros to display your secret agent codes?

No worries…Python's f-strings got you covered

```
>>> agent_id = 7
>>> agent_name = "James Bond"
>>> f"Agent {agent_id:03}: {agent_name}"
'Agent 007: James Bond'
```

Note the format specifier `:03`
November 26, 2025 at 7:44 AM