This page chronicles some bits of history from my Python career, the Python language, and the software field at large.
I wrote this page to let curious readers know what it was like to teach classes and write books about Python in its earliest days. These were exciting and unique times that spanned a hugely dynamic period in the software field, and some of the titanic changes that happened on my watch can be spotted in the wild here. Because my training and writing careers also played a major role in Python's adoption, readers are invited to consider this page part of Python's history too.
Formally, this page mostly covers the twenty-five-year period from 1993 through 2017, though some of its story lines have been updated more recently. It itemizes the Python classes I taught, Python books I wrote along the way, and articles and interviews I did over the years, with totals for each category in parenthesis. For both context and color, I've also liberally seasoned this page with anecdotes, observations, photos, and jokes (a.k.a. memoirs but not the stuffy kind).
Three admin notes up front. First, this page's title is a clickable image that opens a photo gallery with extra notes; enable yours if it's hiding. Second, the items below appear most-recent year first; read from the end if you prefer to move forward in time (on this page, at least). And last, this sort of page is unavoidably first person, so please click away now if you're not interested in writing that's laden with "I" and "my." Some might even deem this page spectacularly self-promotional (if not egregiously egocentric), but such is the nature of career retrospectives, and you might find parts of it interesting anyhow.
All told, I've been using and promoting Python since 1992 and version 0.9. Here's the TL;DR recap of what I've been up to since those arguably dark ages:
Technically, 10 of the 40 years I've spent in the software field preceded my stumbling onto Python and included two degrees in computer science, work in the compilers and Prolog realms, and a first substantial program in 1982 using Fortran on punch cards (it played tic-tac-toe against itself and somehow always won). But such prehistory is officially outside the scope of this page.
More relevant here: today Python is generally counted as one of the top 5 most-used programming languages in the world; there are hundreds of Python books available on Amazon; and the local Barnes & Noble has an entire labeled section dedicated to the language. Among the best rewards of my career is the knowledge that my Python activities—whose beginnings predate the rise of Python, both Google and Amazon, and most of today's online experience—had something to do with that.
The rest of this page tells the stories behind the preceding section's numbers, grouped by year. If you prefer clicking over scrolling, here's a table of the year sections you'll find ahead (the floating Top button jumps here quickly if JavaScript is turned on):
| ...Etc | 2017 | 2016 | 2015 | 2014 | 2013 |
| 2012 | 2011 | 2010 | 2009 | 2008 | 2007 |
| 2006 | 2005 | 2004 | 2003 | 2002 | 2001 |
| 2000 | 1999 | 1998 | 1997 | 1996 | Etc... |
To help organize the details on this page, its year-table entries are colored by type:
| This | means out-of-town classes, mostly private |
| This | represents local private classes |
| This | denotes local public classes |
| This | signifies conferences attended |
| This | labels a few notes along the way |
| This | designates articles and interviews |
| This | is used for books (naturally) |
Terminology used here: Public classes were open to individual enrollments and most were held locally. Private classes (sometimes called on-site classes) were arranged for clients with groups and were held both locally and out-of-town. All my classes were private sessions as of October 2010 for reasons you'll read about ahead.
Where possible, this page's class tables list the names of clients that hosted classes, along with links to more info about each client. The links mostly lead to Wikipedia, which can be people-heavy and biased but suffices for quick overviews and more links. Please note that these host lists do not constitute endorsements of any kind for either Python or my training services and are included here for their historical value only. It is assumed that the passage of time makes naming hosts this way a moot point, but please contact me if your organization prefers anonymity (or a better link).
Also note the "(So Far)" in this page's title. Although this page by nature covers a specific period of time, the future remains to be written. While I don't mean to write it all here and haven't made substantial changes to this page since early 2025, websites are much easier to revise than books. Watch the books status page, peruse the general blog page, or check back here if you're interested in breaking news.
For the present, it's on with the past.
And the show goes on. In 2024-2025, I updated my most successful book, Learning Python, to swap coverage of the now-sunsetted Python 2.X for the latest plot twists in Python 3.X and reduce heft by nearly a third in the process. You can read about it at both its resources page and its cover-image's gallery Note.
In numbers, this update pushes my publishing totals up to 15 books and 12k pages, the equivalent of 24 500-page books or 40 300-page books. While this latest book may have a smaller paper footprint than its predecessors, the trees still have a valid beef.
This edition may also move the sales needle for all legitimate print and ebook units past the 1M mark, though the absence of data for readers of online versions together with the unfortunate prevalence of ebook piracy make this metric much less meaningful than it once was. In the end, these books' history and legacy seem more significant than murky sales numbers that vary with market trends, publisher focus, and reporting fidelity.
More broadly, this edition marks a three-decade milestone in my Python books career. Its rewrite cycle consumed a full year, but the needs of new Python learners outweighed other factors in the end. I hope readers find the result to be useful and I look forward to the Python world they will shape.
In the gaps, I've also been coding free and ad-free Python apps that run on both Android and PCs and call out some of the darker trends that have emerged in the tech field. Visit the apps' separate hosting site below for more info.
| Feb-2025 | Learning Python, 6th Edition | Python 3.12+ | 1200/1300 pages |
| Ongoing | Python Android/PC apps | Get more free apps here |
This year hosted rising book sales and the continuation of a books saga born in the Internet Pleistocene. Though hardly plausible, this year also marked 25 years since I discovered Python. It's somehow managed to fill a quarter century with activity (and books with spam).
I didn't teach any classes this year, but a handful of requests came in anyhow despite last year's announcement. The most notable was from a prior client who eventually opted to hold classes taught by the students themselves—no subject-matter expert required. That particular class may fail, though it seems a new low point in the tech-education decline noted in 2012 and an alarming deprecation of knowledge in general.
This sort of thing has cropped up in world history before and always with catastrophic results, but you'll have to work out the consequences of the modern flavor for yourself (hint: one may rhyme with "boomsday").
My books' publisher stopped selling individual books in both print and ebook format at its own website this year, to push subscriptions to its video-focused Safari online service. Predictably, this darkened into a focus on selling customer access. The print books and ebooks are still being produced and will be available at other retailers, so this probably has little or no impact on readers—few of whom bought directly from the publisher anyhow.
Even so, it's a sad move for both authors (who may lose income in the shuffle) and loyal customers (who remember what the publisher once was), and is difficult not to interpret as another milepost on the road to content's demise. Read all the sordid details at the publisher review in 2015.
I regularly get emails from people around the world asking if I'm going to update my Python books again. The simplest answer is that as of late 2017, there are no plans for any book updates, and I don't expect any to come together in the future. My advice to readers is to master Python today with the latest editions, and browse its What's New documents later if and when you need them. Python will always change, but the fundamentals you'll learn in the books won't.
The fuller answer is that this is an ongoing tale, whose plot elements are introduced in earlier years here. In a nutshell, Python morphed into a subject too large and convoluted to be covered by comprehensive books, and my publisher morphed into a company seemingly focused on anything but producing them. Either one of these alone is enough to qualify as showstopper.
It happens, but it also doesn't matter. My books cover the first 25 years of the Python story and the vast majority of the language used by millions of programmers in countless applications. That coverage will remain relevant to all learners of the language for decades to come. So please enjoy the books wherever and whenever you find them, and don't forego reading one because you think a new edition may pop up shortly. You never know what authors might next do, but you can benefit from what they've already done.
As for this author: I may not be covering the parade anymore, but I'm still having fun programming Python (mostly on macOS these days and sometimes on Android). Check out the free programs I post on this page for recent code that's meant to be both useful and educational. And please feel free to consider them a thank-you to all the many readers over all the many years.
| Long live the books |
| Ongoing | Programming Python, just for fun | Get free apps here |
This year saw both book milestones and the expected and arguably overdue conclusion to the training story. On the former, Programming Python turned 20 years old this year, and sales of the Learning Python title continued their climb, though void of all the unpaid copies downloaded illegally on the web (information does not "want to be free" if it has a price tag on it).
Programming Python was first published in 1996, though its development (and lobbying) began a year or two earlier. Its content has spanned Pythons 1.X through 3.X and was the genesis of my other two books—Learning Python and Python Pocket Reference. Together, these three related books' sales reached new heights this year and will continue to grow in years ahead.
For a look back at this book's history, see the earlier years on this page, especially its birth in 1996. Over the years, it grew into a mature applications text; maybe now it will finally move out of my basement...
After 20 years, 260 live and in-person classes, and more adventures than I can recall, I finally ended my Python training business in full this year. See the formal announcement for details. You can also read about some of the factors behind this decision in 2012 and 2010 below.
In short, it's high time to accept that onsite Python classes taught by subject matter experts for forward-looking groups have gone the way of the Norwegian Blue. This probably says something about society at large and almost certainly reflects Python's rise to ubiquity, but I'll pass on elaborating here. Instead, I'll close out the training thread on this page with thanks to all my clients for an amazing two decades and hopes that the books which mirror my former classes prove as useful to learners of the future as they have to learners of the past.
As for training, though, it has ceased to be. For posterity's sake, I've posted a few photos from the training road and the final version of the class workbook material. On my shift, the latter morphed from paper copies and floppy disks, to HTML, CDs, USB flashdrives, and the web. I don't know what comes next, but I'm sure we'll think of something. For now—roll the closing credits!
| End of onsite classes |
| May-2016 | Interview, pythonlibrary.org | PyDev of the Week |
On-site classes were resumed this year after the preceding years' book projects but at a much-reduced pace. Publisher issues also began to cloud the prospect of future book updates; though some issues would take years to roll out (and others are beyond this page's scope), this year's review discloses enough to introduce the story line, and its later updates spin off a few sequels.
Despite capping a three-year sales peak, this year also saw some uncertainty over future editions. My publisher (now known as O'Reilly Media) passed on updating a classic Python book over a trivial contract issue and demoted both open source and books in general at their website. Once known for meaty technical books, this publisher seems to be morphing into a company focused on videos, webcasts, and conferences; with a business model based on pandering to a naive audience instead of educating it; and a web presence that has become a platform for promoting illegitimate content and personalities. This is not the publisher I signed up with.
Time will tell if legacies that established this company's brand are compatible with chasing the latest trends. Time will also tell if this publisher remains a net positive for my books. As it stands, though, its current image seems just as likely to turn away motivated readers as it is to attract them. Looking for solid technical material at this publisher's website today is like looking for Principia Mathematica in People Magazine.
As later years' events began to amplify the prior section's themes, a partial log was started here as info for prospective readers and authors. This was later moved to a separate page for space and flow but eventually dropped altogether in 2024 because it grew dated and moot.
In short, this log covered publisher issues and changes from 2015 through 2020, including payment, inventory, and support gaffes, as well as customer-facing focus shifts from books to online subscriptions and videos. Sadly, the shifts to online media also enabled ethically dubious sales of customer information and access. This company's web presence morphed even further in later years to emphasize corporate sales of online licenses, certifications, and AI chatbots, at the expense of books.
That being said, this publisher was also a catalyst for reaching innumerable readers over the last 30 years. Moreover, it's largely a different company today and there's much more to it than its web pages. For instance, it still actively produces books (now both printed on demand and sold as ebooks by third parties), and many of the issues of the past were addressed over time. Hence, the former "follies" log here is no more.
Given a choice of media options, though, this author recommends print books and ebooks over online options to protect your privacy. And please be skeptical of AI products: while they may be useful as supplemental reference tools, they are not learning and can do no better than the content they scan and paraphrase. This caution applies especially to AI tools whose scans are blatant