What’s This?
If you’ve not read anything I wrote in the past, your first question may well be:
“Another Python substack—why should I read this one?”
I can’t answer that question for you. I won’t tell you what you should or shouldn’t read. I can tell you what, why, and how I write.
I get bored with “normal” programming articles and tutorials. I want to read something different; a story that takes me through a journey across the things I want need to learn, written in a friendly and relaxed tone, clear and accessible.
I didn’t find many resources that spoke to me when I was learning the fundamentals of programming and through the intermediate stages. So, as I learnt the hard way, I created my own stories and pictures to make things make sense to me. My writing is very selfish in some ways: I’m writing the articles I would have liked to read when I was learning these topics.
Correction: I’m writing the articles that are helping me learn these topics better. No matter how basic the topic I write is, I’m always learning something new about it as I write.
And if anyone is the same type of learner as I am, I hope you’ll also find these musings helpful.
Who’s This Stack For?
My ideal reader is the intermediate* learner keen to dive deeper into programming and Python, aiming to move to the next level. However, I’m also writing with the beginner in mind, especially the type of beginner who likes to “read ahead” to know what’s coming next.
Hopefully, even the more expert programmers will find some insightful ideas and thought-provoking perspectives.
*The terms ‘beginner’, ‘intermediate’, and ‘advanced’ are quite nebulous and can mean different things to different people. The beginning of the “beginner” level is easy to define. None of the other boundaries are. So when I use these terms, I’m using them in a hand-waving, you-know-what-I-mean type of way
What’s My Writing Style?
When I write, I imagine I’m sitting in a comfortable, quiet coffee shop with you, my reader, sipping a coffee (or hot or cold beverage of your choice), chatting about the topics we’re learning.
Every topic needs to be communicated clearly. But this clarity is even more important in abstract, technical subjects such as coding. We all engage better with a friendly, relaxed tone. This is why I picture myself talking to you in an informal, casual context, such as that quiet coffee shop, instead of a formal, stuffy lecture hall.
I like stories and narratives. I like analogies. I’ll use these tools often in my writing. It’s how I learn things. It’s how I communicate.
What Made Me Start The Stack?
Over the past few years, I’ve been writing more and more about Python. And I’ve enjoyed every minute of it. I’ve learned so much from these years of sharing articles and tutorials, from the articles I’ve written for Real Python, to the ones in my own voice at The Python Coding Book—both the textbook part and the blog.
And then, there’s the lovely experience on Twitter, where I made so many new friends over the past year. The format and style enabled me to communicate more creatively about Python programming. I enjoyed that! I enjoy that!
I’ve had fun exploring perspectives that are different from the norm, and I’m glad I’ve found a growing audience who enjoys reading these perspectives.
I hope to see many of you who’ve been reading and enjoying my content already. And I also hope to make new friends who’ll discover my writing about Python for the first time here on The Stack.
Why Write on The Stack? And Why Now?
I feel that I’ve found my own voice and style when communicating about Python. Twitter has been the place I’ve been able to do this most and reach most people. And I’ve been humbled and honoured by the love and support I get for my daily writing on that platform.
However, the format on Twitter limits you to a certain type of content. I want to explore writing about Python without being constrained by the format. I want to build a community where I can talk to my readers, learn from them, find out what they want to read about and which topics they’re struggling with.
The Python Coding Stack is a place for me to write content that I hope you will enjoy and find useful in your journey to learn to code. But it’s also a place for you to talk to me. So I’m looking forward to those conversations!
Will I Need To Pay? [Spoiler Alert: No!]
No.
Most of the content I’ll write here will be free. I’m committing to publishing over 70% of all the articles on the free subscription tier—and these will be full articles and not just partial previews!
There will also be a paid subscription option for those who want to support further. Writing high-quality content with an innovative twist is hard work and takes time. I enjoy doing it, but I also want to make sure I can sustain creating this content in the long term. So those who can and want to contribute can do so through the paid subscription, which will include additional content and more ways for us to communicate.
What Will I Write About?
If you’re new to my writing, here are some of the things I’ve written in the past on other platforms. Here on The Python Coding Stack, I’ll be exploring further along these lines:
The 7-day Twitter series on classes and OOP: Object-Oriented Python at the Hogwarts Schools of Codecraft and Algorithmancy
Anatomy of a 2D Game using Python’s turtle and Object-Oriented Programming: A step-by-step tutorial showing the stages needed to build a 2D arcade-style game. The article also serves as a guide to object-oriented programming
Understanding The Difference Between `is` and `==` in Python: The £5 Note and a Trip to a Coffee Shop: In this article, I use the £5 note analogy to clarify a common pitfall in Python programming
What’s Really Happening in a Computer Program? The White Room analogy. The right analogy can make all the difference when trying to understand a complex topic such as programming. This analogy is a cornerstone of the approach I use when teaching
Using Python’s NumPy To Improve Your Board Game Strategy: Your Odds When Attacking in ‘Risk’: NumPy, Matplotlib, and related topics feature often in what I write
The Orbiting Planets series:
Simulating Orbiting Planets in a Solar System Using Python: A 2D animation which uses the `turtle` module
Simulating a 3D Solar System In Python Using Matplotlib: A 3D simulation of orbiting planets which uses Matplotlib
The Intermediate Function Series started as a Twitter series, and then I expanded the content into a series of articles:
The Twitter 7-day series about Data Structure categories in Python, which covers iterables, sequences, mappings, containers, collections, iterators, and generators
For over a year now, I’ve been publishing content daily on Twitter—all of this is real content, not pictures of my breakfast or whatever else some post on Twitter! You can browse my past tweets and threads there, too.
And there are also more articles on The Python Coding Book’s blog.
You can also see some more tutorials I’ve written for Real Python. These are in the Real Python style, of course.
What’s Next?
This was my ‘Welcome to Substack’ post. From now on, the articles will be about Python, not about writing about Python!
I won’t set a strict schedule on when to publish—that’s not how I work. I’d rather not publish than write something I’m not happy with for the sake of meeting a self-imposed publishing deadline.
However, I’m quite prolific with ideas and writing. Over the past year, I’ve published daily content on Twitter (actual content, not “do you prefer tea or coffee?”-type posts!) and regular long-form articles and tutorials on my blog.
So I’ll likely be publishing one or two articles every week. I’ll aim for Wednesdays as my regular post, except when I publish earlier or later (!) Plus, I may sometimes have a second article over the weekend.
Some articles will be long, step-by-step tutorials. Some may also be multi-part articles. Others will be shorter reflections on specific Python topics. I have a long list of articles to write. Here are some that are queued for the first few weeks of The Python Coding Stack:
Do you really know why
5 + “5”
is not the same as“5” + 5
? Lessons I’ve learnt from exploring these simple expressionsYears 1-7 at Hogwarts School of Codecraft and Algorithmancy: A seven-part series taking you through object-oriented programming. [This debuted as a series of Twitter threads which was very popular—I hope the long-form articles will be equally useful]
An overview of NumPy’s new-ish system for creating random numbers, using
Generator
andnp.default_rng()
instead of old-style functions likenp.random.randint()
What’s in a name? Understanding what ‘name’ really means in Python and how it’s linked to an object’s reference count
You know about data structures like lists, dictionaries, and tuples. What about the categories they belong to, like iterable, sequence, collection, iterator…?
How you could start using generative AI such as GPT-4 to help you as you learn to code in Python • and • How I’ve been using GPT-4 in my day-to-day work and life
Discovering Matplotlib’s relatively new function
subplot_mosaic()
Understanding NumPy’s Copies and Views
What’s really happening inside a
for
loop?
…and, those who know me from elsewhere know that from time to time, I’ll write about one of my famous turtle
projects. I think I may have been called the turtle-man once or twice.
So, as you can see, my interests are broad and varied. I write about either the stuff I know well or the stuff I’m learning!
PS: See you around on Notes, too?