Welcome to Mostly Python

Weekly posts about all things Python, and occasional other topics as well.


I've been a programmer and a teacher for most of my life. I write Mostly Python with a few goals in mind:

  • Help people who are new to Python feel more comfortable in the Python world, and in the larger programming world as well.
  • Help people transition out of the “beginner mindset”, if you're still there.
  • Help people think more deeply about Python, by building on what they already know.
  • Highlight a variety of interesting Python-related projects.
  • Share my perspective on new developments in Python and the overall tech world, based on a decades-long grounding in this work.
  • Help people establish new careers in tech, and make mid-career changes into more tech-focused roles.

If you're interested in Python and want to see in-depth coverage of a variety of topics about the language and the community, this newsletter is probably for you.

What you’ll find here

I write about a number of different topics, but most posts fall into one of two general categories:

Technical series

Each series focuses on a particular aspect of Python, or programming in general. For example, the series Python Lists: A closer look builds on what many people already know about lists in order to develop a deeper understanding of the language as a whole.

The first posts in each series are typically accessible to beginners, and later posts tend to build in complexity. Within a post, the introductory sections are accessible to most readers, while the sections that follow grow in complexity. Most readers should come away with a better understanding of how Python works. This will ultimately make you a stronger programmer, and deepen your appreciation of the language as well.

You can see a full list of completed and ongoing series here.

Topical posts

These are one-off posts that discuss a specific topic. Topics include current events and developments in the tech world, conference summaries, discussions of new versions of Python and third-party libraries, and much more.

I've tagged some of the more significant topics that I've written about. You can also use the search box at the top of the page to look for any mention of a specific topic you're interested in.

Posting schedule

New posts go out every Thursday, and some Tuesdays as well.

When a technical series is running, each Thursday post will usually continue that series until it's finished. I try to put out a Tuesday post at least twice a month when a series is ongoing, so the newsletter doesn't focus on just one topic for too long.

Free and paid subscriptions

Mostly Python offers free and paid subscriptions.

Free subscriptions

If you sign up as a free subscriber, you'll get the following benefits:

  • Immediate access to all public posts. You can comment on all public posts.
  • Delayed access to paid posts. (There's a 6-week delay before paid posts are made available to everyone.)
  • Full access to the archives.

I understand that many people can’t afford multiple subscriptions to paid newsletters. If you learn from my writing and you can afford a subscription, please consider a paid subscription. If you're just checking out what I share, or can't afford a subscription, I still appreciate your interest as a reader.

If you choose a paid subscription, you'll get the following benefits:

  • Immediate access to all posts, public and private. You can comment on all posts as soon as they're published.
  • You'll help make this information available to readers who can't afford a paid subscription at this point.

Why do all posts end up available to everyone?

The audience for Mostly Python is a diverse group. Some people are struggling to make ends meet, while also working hard to develop technical skills and understanding that can help them secure a better life. I want the information here to be available to people in this kind of situation.

At the same time, many readers have built a relatively comfortable life for themselves, and can afford to pay for high-quality content. If you fit this description, please consider a paid subscription. You'll get a few perks, such as reading all posts as soon as they're published. But mostly you'll help make this work possible on an ongoing basis, for your benefit and for the benefit of people who can't currently offer paid support.

If you end up paying for a subscription, thank you for your interest and your financial support. If you choose a free subscription, thank you for the validation of your interest and attention.

My background

My programming work is quite varied. For example:

  • I worked on a project that helped commercial fishing operators avoid bycatch.
  • I worked on an experimental project that aimed to help commercial fishing operators avoid conflicts with whales.
  • I built a tool that turned confusing, text-based high school transcripts into visual documents that were much easier to understand. This helped struggling students clarify their path to graduation.
  • I'm currently working on django-simple-deploy, a project that simplifies Django deployments for beginners and experienced Django developers alike.
Python Crash Course has helped millions of people gain a solid foundation in Python.

I’m best known in the Python community as the author of Python Crash Course, the best-selling introductory programming book in the world. I taught high school math and science for many years, and I taught intro programming classes whenever I could fit them into the curriculum. I always wanted a book I could give to my more motivated students, so they could learn at their own pace. Most books available at the time made too many assumptions about what people already knew, or were written specifically for younger kids. I ended up writing the book I wished I could teach from. Python Crash Course has helped millions of people all over the world gain a solid foundation in Python, and I've learned a lot by communicating directly with thousands of those readers over the years.

Writing (and maintaining) PCC has kept me involved with people who are new to Python for a long time now. Mostly Python is a way to continue writing for people who are new to the language, while also discussing more advanced topics. The boundaries between “beginner”, “intermediate”, and “expert” programmers are much less distinct than many people realize. One of my clearest goals here is to help people of all experience levels focus on using Python well, to solve the real-world problems you care about.

Reader responses

One of the most satisfying parts of writing in public is hearing from people who've benefited from what I share. Here are a few unsolicited responses from readers:

I felt like contributing to your work because your posts are really on point. The topics are interesting and relevant and I can always carry on the knowledge with me. Unlike some other sites where I immediately forget what I read, you seem to put some real effort for the content. - Cristiano K
Thank you for your writings on Python I’m a Python newb and your posts are so informative very helpful. :) - Ron W
One of the best at breaking down Python and general programming concepts; and explaining them in an easy to remember way. - Geoff
Your posts are very detailed and easy to understand. Thank you. - Chris K

Thank you!

Whether you end up subscribing or not, thank you for reading about my work. :)