Title banner image

What's All This, Then?

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; 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.

The Numbers

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 35+ 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 Years

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 (click the floating Top to jump here quickly):

2017 2016 2015 2014 2013 2012
2011 2010 2009 2008 2007 2006
2005 2004 2003 2002 2001 2000
1999 1998 1997 1996 Etc...

Color Coding

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 not counted in class totals
 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.

Host Names

Please note that the hosting organization names listed here do not constitute endorsements of any kind for either Python or my training services. These names, where still known and not recent commercial entities, are included here for their historical value only. It is assumed that the passage of time makes naming hosts a moot point, but please contact me if your organization prefers anonymity for these classes.

Current Status

Also note the "(So Far)" in this page's title; to quote from Python's namesake: I'm not dead yet... 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 late 2020, 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.


This year hosted rising book sales, another book milestone, 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).

600k (and Counting)

As expected, the combined sales on my books reached 600,000 units this year, led by sales of Learning Python's 5th edition (see 2014). This total doesn't include an untold number of readers who fetched free but illicit ebooks off the web (courtesy of my publisher's lack of protections for authors); counts just one Safari reader per month (thanks to my publisher's want of reporting transparency); and will naturally increase further in years ahead (note from the future: unit sales crossed the 750k mark in 2020). Still, this is amazing sales in the tech-book domain, where 15k is often considered a success. Thanks to all who are part of the tally so far.

When Students Run the School

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, but 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").

When Publishers Stop Selling Books

My current 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. 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 (and the 2020 shocker) at the publisher review in 2015.

And the Books Teach On

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 a Mac 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.

Books (0)

Long live the books

Other (1)

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 reached the 300k units mark, not counting all the unpaid copies downloaded illegally on the web (information does not want to be free if it has a price tag).

Happy 20th Birthday, PP

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 550k units by April 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...

The Plumage Don't Enter into It

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!

Classes (0)

End of onsite classes

Other (1)

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.

Python by the Pound

On the training front, the NASA class was for structural engineers, and the UW group was network administrators; Python's roles are still very diverse. On the writing front, my books' combined lifetime sales surpassed the 500k units mark this year, and are on track to reach 600k units in the next year or two. By my calculations, the paper units sold so far weigh in at over 650 tons (please don't tell the firs behind my house).

With Publishers Like These...

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.

☞ More Publisher Follies ☜

Soon after the preceding section was written, its themes were amplified by a series of new events. The list below collects a representative sample, as information for book buyers, cautions for prospective authors, and fodder for readers of writings on the wall. The short story is that the publisher of my titles now soft-pedals books for the sake of online-learning subscriptions, which regrettably opens a Pandora's box of tracking, marketing, and personal-information sales. The fuller tale of how this came to be is told by the journal entries ahead.

There's more under this dysfunctional circus's big top than this page can cover—including uncollected translations revenue; perennial issues with content changes, paper quality, and payments; inserted ads for unrelated products, some with photos of unrelated people; and the stupidly self-righteous dogma of DRM-free ebooks, which inflated egos and normalized theft at the expense of publisher revenue and author royalties. For here, though, it's on with the show:

🎪 May 2016: Promoting Infringing Titles in a Nutshell

First up in center ring is the sales spectacle described by the May 2016 note here. In short, my publisher started selling and even preferentially promoting another publisher's "Learning Python" late in 2015, in a curious and arguably misguided quest to maximize revenue. While this move probably never harmed my book's sales significantly, it undoubtedly left many readers confused and proved immune to author objections, in a stunning display of disregard for both parties. Competition is great, except when it comes from your own publisher.

🎪 September 2016: Head First Disloyalty

Our next attraction features this month's strange, sad scene on Amazon.com—sponsored content from my publisher, that showed up above my book in searches for "Learning Python," and was designed to lure book buyers away to video options recently acquired from another company. Whether marketing blunder or darker agenda, this publisher is now actively working against its own best-selling products (and its own half-million-unit author). Be careful with your publishing choices out there, people; exclusive-rights contracts may include the right to soft-pedal your book.

🎪 June 2017: Brand Destruction For Dummies

And now for the main act. In June 2017, my publisher stopped selling both print books and ebooks at its website, and shifted nearly all its sales focus to Safari: an online, video-centric subscription service, with marketing aimed more at training departments than individuals. The site's book pages now try to steer visitors away from traditional books—which can account for 90% of author royalties, and to the oddly expensive Safari—which profits the publisher more, and is run with a complete lack of transparency to content producers. This is not the hallmark of an author-focused company.

O'Reilly books can still be purchased in both print and ebook formats at all the other usual retailers (despite the nearly disabled Amazon links and weirdly puerile marketing), and the books will still be produced as before (per the marketing-speak FAQ and damage-control blog), so this may be a non-event for most readers. But after the rhetoric has settled, this remains a shifting of priorities further away from books. Whether born of necessity, failure, or greed, the net outcome is the same: the book producer that was clearly is no more.

🎪 November 2017: Teach Yourself Product Shortage in 24 Hours

The encore: five months on, it's now apparent that the publisher's move of the prior update has had no impact on my books' sales—which means that this publisher no longer sold many books at its own site anyhow (and may help explain its new-found obsession with online subscriptions). Happily, consumer interest can have very little to do with producer agendas.

What has impacted my sales, though, is that the publisher allowed my best-selling title's print books to go completely out of stock at Amazon for the entire month of November, at a time when demand was surging. Another of my books fared even worse in this period, being unavailable in print for over two months, and monthlong outages will recur in 2018 and 2019—the latter of which will span the entire holiday shopping season. And of course, Safari is eager to take subscriptions online for books unavailable in print. Grievous, yes, and suspicious, perhaps; but it also works as not-bad comedy. After all, O'Reilly authors do get a really cool hat...

🎪 January 2020: Programming Evil

And finally, the closing parade? Two years later, my titles continue to sell as well as ever, but this publisher's focus shift away from books has grown only starker. In 2019, it acquired yet another online-learning company and explicitly denigrated books in the process. This is a follow-up to the earlier video-training adventure, and comes at a time when my best-selling book is still regularly allowed to fall out of stock (per the prior note). Plainly, this company is now much more interested in topping corporate-training lists than printing popular books.

This publisher also purged its web-based history in 2018; jacked up its online subscription prices by 25% in early 2020; and plans to nuke its customers' longstanding ebook libraries in March 2020—see the promise, and its coercive betrayal. Lesson: "lifetime access" lasts only as long as companies have a vested interest in providing it. Inference: despite powering civilization for millennia, traditional books may face a similar fate at the most myopic of today's publishers. No, really; for companies that abandon loyal customers, one broken pledge is as good as another.

Worst of all, though, this publisher now blatantly harvests and sells your personal information, unless you explicitly opt out. This omen is particularly dark, given the company's overarching goal of corralling readers into its online—and trackable—medium. Opt out or not, Safari allows this publisher to monitor and record your behavior in ways never possible with traditional books. The net result is a profile of you which can be packaged and sold by default, with only obscure notice and lengthy disclosures that are habitually ignored, and with no compensation to you for providing the product sold. Safari turns people into unwitting profit centers.

Such backdoor revenue schemes may be unfortunately common on the Internet today, but this one is especially sad given this company's history. What was once an ally and advocate for open-source practitioners has now officially joined the ranks of tech giants who've adopted point-of-control customer exploitation as a core business practice. Kudos all around, but don't be surprised if some content producers pass on contributing new bait.

🎪 April 2020: Brand Destruction For Dummies, 2nd Edition

And the show goes on: as of late April this year, O'Reilly customers' online ebook libraries have not been removed, and the prior note's deletions warning was silently pulled. In fact, ebook library pages were redesigned, so this probably counts as a happy ending for ethics. Regrettably, though, this publisher also terminated its conferences business after a quarter century, a run which included OSCONs held since 1999 and earlier precursors. Though spun as a response to temporary events, this clearly is a permanent end of an era.

So, to recap—although my books are still being printed and sell as well as ever, during this log's tenure their publisher dropped direct sales of books; shifted focus to online products pitched to management; and has now discontinued its long-running conferences. This leaves online-learning subscriptions as the main thrust of a company that sells customer access and personal information. In this climate, using Safari is like letting a legion of salespeople peer over your shoulder as you use products for which you've already paid in full. Change is sometimes sad, but covertly monetizing private lives is always wrong.

All that being said, Python did rise and my books have been enormously successful. Regardless of its motives today, this publishing company played supporting roles in both stories in the past; has been known to do the right thing too; and naturally may rewrite its own story in the future. Indeed, this company tends to change focus and staff faster than open-source projects change code, so you'll have to stay tuned for this melodrama's conclusion. For O'Reilly Media (f/k/a O'Reilly & Associates) and its Online Learning (a.k.a. Safari), the past is rarely predictive.

Whatever regimes may come, this publisher, almost despite itself, served as a catalyst for reaching and helping scores of readers around the world, and that was a net win for authors and learners alike in years gone by. Its current edition, though, could really use some editing work.

The Surprise Ending: Books Redux, 2020

Of course, the problem with conclusions is that they can be too conclusive. In late 2020, my books' publisher, O'Reilly Media, resumed direct book sales at its website, and even changed its book pages to emphasize Amazon purchase options. See the current publisher-page screenshots here and here, and their live versions here and here. The direct sales appear to be managed by the printer, but they amount to a direct channel for the publisher nonetheless.

If this endures, it represents a major reversal for a company that dissed and dropped book sales cynically over three years ago. Along with the earlier ebook-library salvation and book-inventory redemption, this seems a genuinely positive development which may negate some, though not all, of the preceding discourse. The bits about selling personal information and customer access still loom large, but print books may now have officially held their ground against a legion of online contenders aggressively promoted by a shortsighted publisher.

Okay, that may not exactly qualify as a shocker to some, but it's tough to make definitive observations about companies and domains that tend to rewrite their mission statements every other Tuesday.

Classes (3)

Jun 8-10 Seattle, WA University of Washington
Aug 24-26 Merritt Island, FL NASA, Kennedy Space Center
Oct 27-29 Vancouver, Canada T2 Systems

Other (1)

Ongoing Article, this site Python Changes 2014+

 2014 and 2013

These years were focused on two major book projects. A one-person training business is a massive undertaking, especially when travel is involved, and the book updates merited the complete and fulltime attention they finally received.

Book:1, Keyboard:0

The 5th edition of Learning Python released in this period becomes the best-selling edition so far. It will hit 100k units sales early in its tenure; push the Learning Python title's lifetime sales well past the 300k units mark by mid-2016 (and cross 350k soon after); and easily outsell my other Python texts (people still seem to want big, meaty tech books, despite what you may have heard). This edition also concludes with a warning about feature bloat and language flux in Python—a trend which continues unabated to this day (more on recent Python changes at this page).

With these years' publications, the total page count on the 14 Python books I've published over the last two decades reached 11,000. To put that number in perspective, 11,000 pages is equivalent to 22 500-page books, 31 350-page books, or 44 250-page books. To put the work in perspective, the latest Learning Python project was so intense that it killed a keyboard on a brand new Ultrabook. Yet another gadget that bravely gave its life to keep the world safe from bad programming language design (more on device tragedies in 2006 and 2005).

Books (2)

Jun-2013 Learning Python, 5th Edition Python 3.3 + 2.7 1600 pages
Jan-2014 Python Pocket Reference, 5th Edition Python 3.4 + 2.7 260 pages

Other (2)

Oct-2014 Interview, Dice.com Interview Qs for Python Newcomers
Jul-2013 Article, O'Reilly Radar Python’s New-Style Inheritance Algorithm


Unavailable for training the first part of this year (due to another cross-country relocation), and writing fulltime as of October (which eventually became a two-year training break). This year also brought more clarity on trends introduced in 2010, per the next section.

Idiocracy Cometh?

Somewhere along the way, the recession impacts training budgets; Python sheds its newness and becomes an expected-to-know skill in jobs, and an expected-to-learn subject in universities; and the world loses its mind and decides that complex technical skills like software development can be easily learned by watching a few hours of YouTube videos, copying code from unqualified GitHub sources, and following arbitrarily misinformed Stack Overflow advice.

While all three trends seem to have taken a toll on the in-person Python training field, the latter threatens a more disastrous impact on the software world at large. People may eventually realize that videos and webcasts are not training, cut-and-paste is not programming, and the knowledge of peers does not have the same innate value as that of subject-matter experts. But this may take time (and widespread software failure, unfortunately).

For my take on virtual training, see this note. For more on the cultural change underlying the drama, see the "democratization" of knowledge—a broader and strangely naive trend rooted in denigration of experts, which, if applied literally, seems destined to yield either economic decline or outright anarchy. In the software field, this trend's fruit sacrifices quality of craft in the name of a modern gold rush which is more marketing hyperbole than hiring reality. Knowledge requirements in engineering domains cannot be crowdsourced, despite what you may have heard.

Broader issues aside, a live in-person class is a tough sell to a crowd which has convinced itself that any skill can be had with a quick tour online, and for proof can point to a multitude of inane dreck available for free on the web. Trust me on this; nothing captures the impact of the Internet quite as well as watching students search for answers by wading through advertising-laden junk sites, instead of asking the real expert standing three feet behind them.

On the other hand, my books' sales in this same period are stronger than they have ever been, and will increase further in the years ahead. Perhaps there is hope for the Rebellion still.

Classes (4)

Unavailable first part of year
Aug 6-8 Burlington, MA Oracle
Sep 10-12 Phoenix, AZ Charles Schwab
Sep 24-26 Marysville, OH Scotts
Nov 27-29 Dallas, TX Lockheed Martin
Writing fulltime as of October

Other (1)

Sep-2012 Article, this site Answer Me These Questions Three...


On-site training resurges. I stopped training as of August this year to avoid being too busy; this wound up being a full year break.

Brownshirts ♥ Belts

Memories from the road this year—a snow day in Boxboro, subzero cold in Chicago, a tornado warning in Bloomington, homeless people in San Francisco, and a lost belt courtesy of an antagonistic TSA agent in Boston's Logan airport. Business travel is losing its luster.

National Insecurity

This year also saw returns to government research centers whose bread and butter is sensitive information. At one, I ran a Python online-lottery program to give away free copies of my books. This was both fun to code and an excuse to pare down my inventory, but it had a major design flaw: entering the lottery required sending an email or filling out a web form, and security restrictions at the site made this impossible—that is, until students pulled out their smartphones to get online anyhow. Good thing they don't make bombs, eh?

Classes (12)

Jan 25-27 Boxboro MA Cisco
Feb 7-11 Chicago, IL DRW (trading)
Feb 15-17 Livermore, CA Lawrence Livermore Natl Lab
Mar 7-11 Chicago, IL DRW
Mar 21-23 Baltimore, MD STSCI, Johns Hopkins University
Apr 5-7 Los Alamos, NM Los Alamos Natl Lab
May 23-25 Bloomington, IL Withheld on request: insurance
Jun 1-3 Houston, TX NASA, Johnson Space Center
Jun 27-28 San Francisco, CA Dolby
Jun 29-30 San Francisco, CA Dolby
Jul 19-21 Burlington, MA Oracle
Aug 17-19 Chantilly, VA Harris
Unavailable rest of the year


This year saw the end of public classes; the last three were held in Sarasota. In short, more and more public-class students were showing up with highly over-inflated expectations, and it became unethical to take money from individuals in this context—as the following section explains.

Expectations and Exploitations

By this time, Python's original message of a better tool for developers had become a promise of easy accessibility to everyone. Sadly, one of the byproducts of this myth was an increasing number of students enrolling in public classes with no background in programming, but expectations of mastering every topic under the sun and launching a software career after just one 3-day class.

Disreputable marketing in the publishing and training fields was no doubt a big factor behind this shift, but a general cultural change which denigrated both the software field and traditional learning was also gaining momentum (more on this in 2012). Whatever the cause, profiting from the desperation of misled people is just plain wrong. After a decade, the public classes launched in 2001 wrapped up with this year's Florida sessions.

By contrast, private classes and comprehensive books are targeted at very different audiences—the former at groups with specific job-skill requirements, and the latter at individuals seeking in-depth coverage. Although some private classes' initial expectations were wildly inflated too, the tangible reality of the format made it possible to negotiate a realistic syllabus (or pass altogether). And while book readers come in all shapes and sizes, it's difficult to imagine any mistaking 1,600-page works for quick skims.

Still, the tech education field is sorely in need of realism. Programming can indeed be fun, in the same way that climbing a mountain is fun. The journey is arduous, and part of the reward. But software engineering is not, and never will be, a trivial skill to master. Promising otherwise is at best naive, and at worst fraud. Either way, the net result is to both disappoint newcomers and dilute the field.

Books (1)

Dec-2010 Programming Python, 4th Edition Python 3.X (3.2) 1630 pages

Classes (9)

Jan 19-21 Sarasota, FL (public)
Feb 2-4 Albany, NY BMPC-KAPL
Apr 27-29 Sarasota, FL (public)
May 25-27 Milpitas, CA Intersil
Jun 8-10 Los Alamos, NM Los Alamos Natl Lab
Jul 13-15 Sarasota, FL (public)
End of public classes
Jul 19-21 Milford, MA EMC
Jul 27-28 Los Alamos, NM Los Alamos Natl Lab
Oct 19-21 Livermore, CA Lawrence Livermore Natl Lab


Most of this year was still local classes only (and referring contacts to others), but the London class in December signaled a restart of travel-based classes which continued into later years. Book update projects were also underway much of the year—necessitated by the need to cover the newly released Python 3.X. Much of the work on books this year was done during a cross-country move, and some of it on a cramped netbook.

The Python 3.X Paradox

The Programming Python update is pushed out to next year. It will be held in limbo for months by the publisher, and have to grapple with half-finished 3.X libraries that are still being brought in line with 3.X language changes, and are sufficiently incompatible to make 2.X-to-3.X migration a lot more complicated than running code through a syntax converter. In the end, many standard libraries won't correctly handle 3.X's Unicode model until years after 3.X's release—further slowing its adoption. Moral lesson: if you're going to mandate change, you should at least have the common sense to practice what you preach.

On the upside, Python 3.X will eventually become fully usable for applications work, if programmers are careful to stick with its large subset that applies to all 3.X versions (see the programs posted here programs for prime examples). Unfortunately, the siren call of latest-and-greatest inevitably lures many a coder to the rocks of incompatibility. There's more on the Python changes story here, and coverage of 3.X's near stillbirth last year.

Books (2)

Sep-2009 Learning Python, 4th Edition Python 3.0 + 2.6 1210 pages
Sep-2009 Python Pocket Reference, 4th Edition Python 3.1 + 2.6 210 pages

Classes (6)

Jan 27-30 Longmont, CO (public)
Apr 21-23 Longmont, CO Seagate
Apr 28-30 Broomfield, CO Sun Microsystems (Oracle)
May 4-6 Fort Collins, CO Hewlett-Packard
Oct 20-22 Sarasota, FL (public)
Dec 5-11 London, England Getco (trading)


This year was local classes only, a continuation of 2007's mid-year change, and a policy that also lasted for most of the next year. Even so, a single longstanding client sufficed to fill some of the time—and give my second OQO a workout when a laptop failed to project.

The Python 3.0 Preemie

The deliberately backward-incompatible Python 3.0 is released late this year—by most accounts an atrocious misstep, which is no longer mentioned in 3.X circles. The Python 3.X line will eventually become more robust and efficient, but remain a constantly morphing sandbox of ideas which will struggle to attract users, and will even alienate some former Python fans. By contrast, the Python 2.X line will soon be frozen at version 2.7 and hence immune to 3.X's thrashing; despite 3.X's emergence, 2.X will continue to see widespread use (and probably always will).

A Note from the Future: 2.X’s Retirement

By 2020, Python 3.X will be used widely enough to embolden its developers to drop support for 2.X at python.org. But it will take a full 12 years to get there, and even then 2.X will still be used by countless programmers (see ActiveState's data and blog), and supported or required by numerous systems (including IronPython, AWS, Chromium, Jython, and LLVM).

That enduring popularity won't, however, stop python.org developers from inserting a rude denigration banner at the top of every page in 2.X users' docs. For an open-source community that prides itself on being inclusive, that seems awfully exclusive.

Classes (9)

Jan 15-16 Longmont, CO Seagate
Jan 23-25 Longmont, CO Seagate
Jan 29-31 Longmont, CO (public)
Mar 25-26 Longmont, CO Seagate
Apr 22,23,25 Longmont, CO Seagate
May 12-13 Longmont, CO Seagate
May 14-16 Longmont, CO (public)
June 17-19 Longmont, CO Seagate
Oct 15-17 Longmont, CO (public)

Other (1)

mid-2008 Interview, Quantum Books Learning Python topics


This year was a turning point for training: for happy personal reasons, I stopped doing out-of-town classes at mid-year, and did only local classes (public and private) from then until December 2009—a business travel break spanning two and a half years. This was still a high-demand year and I passed along a lot of business to others, but personal lives sometimes matter more than careers.

How (Not) to Annoy Readers

This year also saw the release of the 3rd edition of Learning Python: a heavy revision that incorporated new training experiences, and dropped the material of the prior edition's coauthor (who elected not to work on the update). The new edition was also temporary host to both arguably annoying "Brain Builder" section labels and definitely distracting code section pointers added by the publisher over my objections. It enjoyed strong sales until Python 3.0 forced an update ahead of schedule.

⇨ Good ⇨ thing, ⇨ that!

Books (1)

Oct-2007 Learning Python, 3rd Edition Python 2.5 750 pages

Classes (20)

Jan 16-18 Missoula, MT US Forest Service, FSL
Jan 23-25 Longmont, CO (public)
Jan 30-Feb 1 Boston, MA iRobot
Feb 7-9 Dallas, TX Cisco
Feb 21-23 San Diego, CA Qualcomm (via TTR)
Mar 6-8 Chicago, IL Citadel (traders)
Mar 20-22 Chicago, IL Citadel
Mar 28-30 San Diego, CA Qualcomm
Apr 9-11 Pasadena, CA NASA, Jet Propulsion Lab
Apr 23-25 Santa Clara, CA VMware
Apr 30-May 2 Norman, OK University of Oklahoma
May 16-18 Boise, ID Micron
May 22-24 Boulder, CO ValleyLab
Jun 11-13 Longmont, CO (public)
Jun 25-27 Pasadena, CA NASA, Jet Propulsion Lab
Offered local classes only from here till December 2009
Oct 10-12 Longmont, CO Seagate
Oct 17-19 Longmont, CO Seagate
Oct 23-25 Longmont, CO (public)
Oct 31-Nov 2 Longmont, CO Seagate
Nov 28-30 Longmont, CO Seagate

Other (1)

Nov-2017 Interview, Dr. Dobb's Learning Python Today and Tomorrow


The peak year for training, though 2007 would have probably been similar if I hadn't taken a break from travel. I likely spent more time in hotels this year than at home. In fact, the pace was so busy that I had to pencil myself in as unavailable for classes in September to get a break (and meet someone who would change my life profoundly next year). A large book was also somehow written this year; much of the work was late-night hotel vigils.

The Google Joke

Among training notables: classes amongst the Chicago skyscrapers; a New York class near the now heavily armed Wall Street; lost luggage in Edmonton which made for an interesting wardrobe; an OQO Windows-based handheld computer doused badly in London by an errant pint of Guinness; and a class on the Google campus. The Google class almost didn't happen, because I refused to allow background checks that were more invasive than those of the NSA. (That's how I know they're different.)

Books (1)

Aug-2006 Programming Python, 3rd Edition Python 2.X (2.5) 1600 pages

Classes (43)

Jan 25-27 Longmont, CO Seagate
Jan 30-Feb 2 Chicago, IL Getco (traders)
Feb 8-10 Longmont, CO (public)
Feb 13-16 Chicago, IL Getco
Feb 20-22 Chicago, IL Fermi Natl Lab
Feb 27-Mar 1 Pasadena, CA NASA, Jet Propulsion Lab
Mar 7-9 Los Alamos, NM Los Alamos Natl Lab
Mar 21-23 Edmonton, Canada Environment Canada
Mar 27-30 Chicago, IL Getco
Apr 4-6 Chicago, IL Fermi Natl Lab
Apr 10-12 Bloomington, IL Withheld on request: insurance
Apr 26-28 Longmont, CO Seagate
May 1-5 New York, NY Opsware
May 8-12 Atlanta, GA (public: Big Nerd Ranch)
May 15-17 Montrose, CO Westslope IT
May 22-24 Mountain View, CA Google
May 31-Jun 2 San Diego, CA Qualcomm (TTR)
Jun 7-9 Longmont, CO (public)
Jun 10-11 Longmont, CO SPSS
Jun 12-14 Pasadena, CA NASA, Jet Propulsion Lab
Jun 19-23 New York, NY JPMorgan Chase
Jun 27-29 Chicago, IL Fermi Natl Lab
Jul 10-13 Los Alamos, NM Los Alamos Natl Lab
Jul 19-21 Cupertino, CA Hewlett-Packard
Jul 25-27 Boston, MA Iron Mountain Digital
Jul 31-Aug 4 London, England JPMorgan Chase
Aug 14-16 San Diego, CA Qualcomm
Aug 17-18 San Diego, CA Qualcomm
Aug 21-23 Boston, MA Bose
Aug 24-25 Boston, MA Bose
Aug 28-31 Columbia, MD Windermere Tek
Sep 6-8 San Diego, CA Qualcomm
Sep 12 Boulder, CO (tutorial, host unknown)
Sep 13-15 Longmont, CO Seagate
Unavailable for classes Sep 17-29
Oct 10-12 Washington, DC Mantech
Oct 17-18 Chicago, IL Fermi Natl Lab
Oct 23-25 San Diego, CA Qualcomm
Oct 30-Nov 1 Longmont, CO Seagate
Nov 6-10 Estes Park, CO (public: Seminar)
Nov 13-17 Atlanta, GA (public: Big Nerd Ranch)
Nov 29-Dec 1 Boise, ID Micron
Dec 4-6 Portsmouth, NH Liberty Mutual
Dec 13-15 Boston, MA iRobot

Other (1)

Sep-2006 Interview, Tech Talk Radio Discussion thread


The second-biggest year for training. Tech, Python, and programming in general were surging. This is also the last year that I attended conferences; after doing 12, they grew repetitive and stale for me, unwanted attention was becoming a burden, and I already had a heavy-duty travel schedule for training.

Da Da Dang Dang Dang

This year also saw a return to Puerto Rico (and the best shrimp on the planet); a disabled laptop (thanks to an unfortunate Diet Coke incident in Berkeley); and a hands-on look at a NASA virtual reality cave (before VR was cool). A second hurricane off the coast near St Augustine added color to the Palatka class, and a Colorado blizzard delayed arrival to West Palm Beach.

The Big Nerd Ranch public classes in this year and the next were held at a retreat in the Georgia woods, where students and instructor would stay and eat, and share a week-long learning experience while largely cut off from the outside world. Yes; cue the banjo.

Books (1)

Feb-2005 Python Pocket Reference, 3rd Edition Python 2.4 160 pages

Classes (34)

Jan 12-14 Annapolis, MD ARINC
Jan 26-28 Longmont, CO (public)
Jan 31-Feb 2 Pasadena, CA NASA, Jet Propulsion Lab
Feb 16-18 Sarasota, FL ManTech (MRSL lab)
Feb 21-25 Atlanta, GA (public: Big Nerd Ranch)
Mar 23-25 Washington, DC Conference: PyCon 3 (last)
Apr 11-15 West Palm Beach, FL South Florida Water Mgmt Dist
Apr 19-21 Chicago, IL Dana Corp
May 4-6 Pasadena, CA NASA, Jet Propulsion Lab
May 11-13 San Juan, Puerto Rico Skytec
May 17-19 Philadelphia, PA University of Pennsylvania
Jun 1-3 Denver, CO Firstlogic
Jun 8-10 Longmont, CO (public)
Jul 18-20 Boston, MA Sefas Innovation
Jul 20-22 Boston, MA Sefas Innovation
Jul 26-28 Dallas, TX Lockheed Martin
Aug 2-4 Fairfax, VA Technology Mgmt Assoc
Aug 10-12 Berkeley, CA Lawrence Berkeley Natl Lab
Aug 16-18 Dallas, TX Lockheed Martin
Aug 22-24 Boise, ID Micron
Aug 30-Sep 1 Cleveland, OH NASA, Glenn Research Center
Sep 6-8 Palatka, FL Florida River Mgmt
Sep 13-15 Ft Meade, MD NSA
Sep 19 Boulder, CO (tutorial, host unknown)
Oct 5-7 Longmont, CO (public)
Oct 17-21 Atlanta, GA (public: Big Nerd Ranch)
Oct 24-27 State College, PA Penn State University
Oct 31-Nov 4 La Crosse, WI Firstlogic (AM class 1 of 2)
Oct 31-Nov 4 La Crosse, WI Firstlogic (PM class 2 of 2)
Nov 8-10 Santa Clara, CA VMware
Nov 15-17 Santa Clara, CA VMware
Nov 28-29 Santa Clara, CA ARM
Nov 30-Dec 2 Santa Clara, CA BAE
Dec 7-9 Longmont, CO Seagate
Dec 13-15 Briarcliff, NY Philips Research


The dot-com effect ebbs, and a recovery seems to be afoot. Conferences were already starting to get old for me by this point; I stepped out of the DC PyCon to watch a US presidential campaign rally down the street.

I'll try "Spam" for $100

This year's training included a beach stay in Florida, a 1-person class in Fresno, the remnants of a hurricane in Newport News, and an NSA class which banned student CDs I brought along (training takes on a different tone when the client has automatic weapons). I was also asked to provide a final exam for students at Circuit City's HQ; so I wrote up an easy exam filled with jokes; which most of the students failed...

Classes (19)

Jan 13-15 Reynosa, Mexico Jabil Global Services
Jan 26-28 Longmont, CO (public)
Feb 18-19 Los Alamos, NM Los Alamos Natl Lab
Mar 3-5 Richmond, VA Circuit City
Mar 23-25 Washington, DC Conference: PyCon 2
Apr 5-7 Redlands, CA ESRI
Apr 19-21 Houston, TX Texas Instruments
May 3-5 Redlands, CA ESRI
Jun 1-4 San Diego, CA Hewlett-Packard
Jun 7-8 Sunnyvale, CA SanDisk
Jun 9-11 Longmont, CO (public)
Jul 6-8 Ft Meade, MD NSA
Jul 20-22 Fort Walton Beach, FL Eglin Air Force Base
Aug 10-11 Los Alamos, NM Los Alamos Natl Lab
Aug 30-Sep 3 Newport News, VA City of Newport News
Sep 13-15 Fresno, CA Fresno County Edu Office
Sep 20-22 Pasadena, CA NASA, Jet Propulsion Lab
Oct 6-8 Longmont, CO (public)
Nov 15-18 Denver, CO Land Title Guarantee Co
Dec 7-9 Los Alamos, NM Los Alamos Natl Lab

Other (1)

Feb-2004 Article, ONLamp.com When Pythons Attack


This was a low-point for training demand, and seems to be the year when the full impact of the dot-com crash's downturn hit. I cancelled only one public class due to low demand, and it was in March of this year. My publisher nearly folded in this timeframe as well. That would never happen to this field again, right?

Of Mice and Movies

Despite the decline, this year had its share of memorable training moments, including a return to Dublin, the Big Dig in Boston, and tours of both a control room at Disney World and a movie studio lot in Culver City. In the books department, Learning Python, 2nd Edition is released with new material from recent classes and Python changes; this wound up being a one-person job, but retained the prior edition's coauthor material.

Books (1)

Dec-2003 Learning Python, 2nd Edition Python 2.3 620 pages

Classes (14)

Feb 25-27 Columbus, OH Applied Innovation
Mar 4-6 Columbus, OH Applied Innovation
Mar 10-12 Boston, MA Harvard Mgmt Comp
Apr 14-16 Charlotte, NC Family Dollar
Apr 29-May 1 Dublin, Ireland Renaissance Re, LTD
May 12-14 Chelmsford, MA Mercury Computer Sys
Jun 10-11 Culver City, CA Sony Pictures Imageworks
Jun 24-27 Orlando, FL Walt Disney World
Jul 8-9 Los Alamos, NM Los Alamos Natl Lab
Jul 22-24 Lawrenceville, NJ Bristol-Myers Squibb
Aug 5-6 Los Alamos, NM Los Alamos Natl Lab
Oct 7-9 Longmont, CO (public)
Oct 29-31 Atlanta, GA CompuCredit
Dec 9-11 Chicago, IL UBS (traders)


An early high-point for training, and an apparent vindication of the career move. The dot-com burst had happened, but it hadn't hit training demand yet (see next year).

¿Dónde está la clase?

This year's trips to Barcelona and Mexico City were rewards in themselves. The former included an entire weekend to explore, with a day spent on Las Ramblas and the Mediterranean (photos here and here). The latter saw squash games, amazing food, and a tense moment when a police officer jumped into my taxi as a random kidnapping deterrent. Spoiler alert: I'll return to UW in Seattle 13 years later, when nobody will recall the class held there this year.

Classes (29)

Jan 16-18 Longmont, CO Seagate
Jan 29-Feb 1 Minneapolis, MN Jasc Software
Feb 5-6 Alexandria, VA Conference+report: IPC 10
Feb 13-15 Longmont, CO (public)
Feb 20-22 Colorado Springs, CO Intelliden
Feb 25-28 Annapolis, MD ARINC
Mar 7-8 Livermore, CA Lawrence Livermore Natl Lab
Mar 12-15 Mexico City, Mexico Aldea Systems
Mar 25-27 Plymouth, MI HKS (automotive)
Apr 1-3 Boise, ID Hewlett-Packard
Apr 9-11 Barcelona, Spain Hewlett-Packard
Apr 15-17 Ann Arbor, MI Mechanical Dynamics
Apr 22-24 Minneapolis, MN Seagate
Apr 29-30 Livermore, CA Lawrence Livermore Natl Lab
May 7-9 Oklahoma City, OK Seagate
May 22-24 Barcelona, Spain Hewlett-Packard
May 27-29 Barcelona, Spain Hewlett-Packard
Jun 3-4 Longmont, CO Seagate
Jun 10-11 San Jose, CA Schlumberger Tech
Jun 17-19 Minneapolis, MN Seagate
Jun 20-21 Minneapolis, MN Seagate
Jun 25-27 St Petersburg, FL Catalina Marketing
Jul 10-11 Minneapolis, MN Seagate
Jul 15-17 Minneapolis, MN Seagate
Jul 22 San Diego, CA Tutorial at OSCON 4
Jul 22-26 San Diego, CA Conference: OSCON 4
Sep 24-26 Portland, OR IBM (OGI)
Oct 15-17 Tacoma, WA Sagem Morpho
Oct 21-23 Seattle, WA University of Washington
Oct 28-30 Longmont, CO (public)
Nov 19-21 Oklahoma City, OK Seagate

Other (1)

Feb-2002 Article, ONLamp.com The IPC10 Python Gathering


Growing training demand, and the first of many book updates to come.

Shaken (But Not Stirred)

Among this year's training highlights: actor Richard Kiel ("Jaws" in James Bond movies) popped in at the class in Oakhurst near Yosemite; I was stranded in Seattle by an earthquake following the Vancouver class; and the Dublin class was more fun than work (think millennia of history and fresh Guinness on Grafton Street). Dublin was also part of a six-leg trip that included a cross-country drive, a conference tutorial in San Diego, and a side trip to visit relatives in Arizona; travel was now a constant.

What's in a Name?

Early public classes in this year and 2000 were hosted by a Perl training company based in Boulder, Colorado (TCPC); I eventually started holding these in Colorado myself this year. Also this year: both an OSCON (held by my publisher) and an IPC (held by Pythonfolk), though conference details this far back start to become a bit murky, due to thinning Web records (and memory); t-shirts seem the best definitive proof remaining for some. Older conferences may still be spotted here, here, and here.

This year's 2nd edition of Programming Python was a very different book than its predecessor. Given the presence of Learning Python's language tutorial and the Python Pocket Reference's quick-reference, the new Programming Python edition is able to morph from a general and broad text to a focused and more-advanced applications tutorial. This scope remains with the book in all its later editions. It probably should have been rebranded as "Applying Python" or some such at this point, but the publisher had already established the title model.

Books (2)

Mar-2001 Programming Python, 2nd Edition Python 2.0 1300 pages
Nov-2001 Python Pocket Reference, 2nd Edition Python 2.2 130 pages

Classes (22)

Feb 5-7 Richmond, VA Circuit City
Feb 13 Longmont, CO Seagate
Feb 21-23 Denver, CO Kaivo
Feb 26-27 Vancouver, Canada SPC
Mar 5-7 Long Beach, CA Conference: IPC 9 (more)
Mar 12-14 Richmond, VA Circuit City
Mar 20-22? Boulder, CO (public: TCPC)
Mar 28-30 Englewood, CO CSG Systems
Apr 18-21 Oakhurst, CA Sierra Telephone
May 1-3 Portland, OR Harland Financial Solutions
May 14-15 Livermore, CA Lawrence Livermore Natl Lab
May 23-25? Boulder, CO (public: TCPC)
May 30-01 Englewood, CO CSG Systems
Jun 6-8 Rochester, NY Nexpress Solutions
Jun 11-13 Corning, NY Corning, CCFL
Jun 25-27 Longmont, CO (public: first in Longmont)
Jul 23 San Diego, CA Tutorial at OSCON 3
Jul 26-27 San Diego, CA Conference: OSCON 3
Jul 30-31 Dublin, Ireland Renaissance Re, LTD
Sep 24-28 Seattle, WA Boeing
Oct 22-24 Longmont, CO (public)
Nov 12-14 Longmont, CO Seagate
Dec 3-5 Oklahoma City, OK Seagate
Dec 17-19 Pasadena, CA NASA, Jet Propulsion Lab

Other (1)

May-2001 Interview, ONLamp.com Programming Python topics


The first fulltime training year, and demand was high enough to justify the risk.

Two Managers Walk into a Bar...

The UK trip to Newmarket near Cambridge this year was the first overseas class (photos here and here). It would be followed by later international classes in Mexico, Canada, and Europe, with 7 training trips to the latter. Poignant memory: the New York class was held across from the World Trade Center. Geek memory: the Chicago class was for the maker of the Palm, a line of PDAs I used almost constantly until the Linux-based Zaurus justified migration (see 2006 for my later defection to Windows).

I also recall teaching a one-day Python overview in New Jersey this year which included the usual good-natured jokes about managers, only to be told later that the entire audience consisted of managers evaluating the language. Hence the silence.

Python 2.X Arrives

Python 2.0 is released this year, with full backward compatibility and minor extensions; by 2008, 3.0 will differ widely on both counts. Some of the changes that will eventually be mandated in 3.X, such as new-style classes, will premier along the way as options in the 2.X line, adding to the confusion of users trying to discern between the two. Nevertheless, the 2.X line will go on to preside over Python's primary ascendance; enjoy a de-facto standard with its freeze at version 2.7; and remain a popular production-grade tool long after 3.X appears. (Data point: the popular shared-hosting accounts on the provider that hosts the website you're viewing will still be Python 2.X-only in 2017, with a "python" that defaults to 2.4).

Classes (20)

Jan 02-09 Newmarket, England TCSI (telecom, now Rocket)
Jan 11-12 Alameda, CA TCSI
Jan 13-14 Alameda, CA TCSI
Jan 19-21 New York City, NY Starmedia networks
Feb 15-17 Boulder, CO (public: TCPC)
Mar 09-10 Livermore, CA Lawrence Livermore Natl Lab
Mar 22-24 Chicago, IL 3Com
Apr 10-11 Livermore, CA Lawrence Livermore Natl Lab
May 16-18 Boulder, CO Aspect Development
May 20 Edison, NJ Outsource Labs
May 24-26 Boulder, CO (public: TCPC)
Jun 19-21 Hillsboro, OR Intel
Jul 17-18 Milpitas, CA KLA-Tencor
Jul 19 Monterey, CA Conference: OSCON 2
Jul 20-21 Milpitas, CA KLA-Tencor
Jul 26-28 Hillsboro, OR Intel
Aug 07-08 Milpitas, CA KLA-Tencor
Aug 14-16 Spokane, WA Agilent (HP)
Sep 12 Boulder, CO Python ACM tutorial
Nov 8-10 Boulder, CO (public: TCPC?)
Dec 5-7 Fort Belvoir, VA Fort Belvoir, E-OIR


Mostly teaching classes on vacation time while working as a C++ consultant. I finally quit my "day job" in October to take a completely unjustified chance on doing training and writing fulltime; and never went back.

A Series is Born

The first Learning Python is released this year—a title that my late first editor wanted as a simpler introduction for "everyone else," and which wound up being the best seller of the bunch. This book's genesis was the tutorial appendix in the first Programming Python, which will now be free to narrow its scope. From here on, Learning covers language fundamentals that span all domains, and Programming shows what you can do with the language after you've learned it. Here's O'Reilly's original page for the new book way back in 1999; shopping carts are by now all the rage.

Books (1)

Apr-1999 Learning Python, 1st Edition Python 1.5 385 pages

Classes (6)

Jan ?-? Chicago, IL Fermi Natl Lab (?)
Mar 17-19 Washington, DC NASA, Headquarters
Mar 29-31 Austin, TX Cisco
Jun 10 Boulder, CO Python LUG tutorial
Aug 23-24 Monterey, CA Conference: OSCON 1 (T-shirt, swag)
Sep 27-29 Austin, TX Origin Systems
Independent training and writing fulltime as of October
Dec 07-08 Alameda, CA TCSI Corp

Other (1)

Jan-1999 Article, USENIX ;login: Using Python


A few classes for forward-looking organizations and assorted writing projects, while still working fulltime as a software developer (yes, people multitasked before smartphones). Training was still a very minor sidelight activity at this point, though Puerto Rico was an undisputed highlight of the year.

Pocket Change

For the Handbook below, I contributed a 120-page chapter, which was mostly an abbreviated version of Programming Python material (considerable work, but it doesn't quite count as a book in my book). The first Python Pocket Reference published this year was an expanded version of an appendix in the first Programming Python; by its 5th edition in 2014, it would become a more complete 260-page reference book (and require a substantially larger pocket).

Books (1)

Oct-1998 Python Pocket Reference, 1st Edition Python 1.5 80 pages

Classes (3)

Feb 16-18 Chicago, IL Fermi Natl Lab (?)
Sep 01-06 San Juan, Puerto Rico (telecom, name unknown)
Oct 24-27 Atlanta, GA Security First Tech
Nov 10-15 Houston, TX Conference: IPC 7

Other (1)

Jul-1998 Handbook of Programming Languages Python 1.4 120 pages


The first year of formal training—an activity I never planned to do, but which wound up fully consuming my career. People in San Jose and Livermore called to ask if I'd do a class, and I took some vacation time to accommodate them. Books probably led to the training, but in the end, the two activities wound up providing crucial input to each other. There's really no better way to hone a book's presentation than by running it past multiple critical audiences.

Early Gigs and Gaffes

From this point forward, training was an unexpected, "make it up as you go along" activity. The first class in San Jose required rebooting a room full of SGI workstations due to an infinite loop bug in Python 1.5's print, and the second in Livermore was delayed by a snowstorm in Colorado. Not exactly a stellar kickoff, but onsite training requires extreme flexibility. Early classes included paper copies of the class workbook, used overhead-projector transparencies, and provided student materials on floppy disk; that's how long ago this was.

Classes (5)

Mar 13 Boulder, CO Python FRUUG tutorial
Jul 16-18 San Jose, CA Badger Technology (first multiday class)
Oct 14 San Jose, CA Tutorial at IPC 6
Oct 14-17 San Jose, CA Conference: IPC6
Oct 27-29 Livermore, CA Lawrence Livermore Natl Lab
Nov 03-05 Chicago, IL Fermi Lab

Other (2)

Mar-1997 Talk, various groups And now, for something...
Jan-1997 Interview, CompuServe Programming Python topics

 1996 and Earlier

The first Programming Python is published: a book which arguably established Python's legitimacy, and eventually spawned both Learning Python and Python Pocket Reference—a 3-title set that would go on to sell 750k units by 2020 (not counting Safari readers, some underreported translation sales, and illegal copies fetched off the web). In 1996, I thought we'd be lucky to sell 5,000 books. Courtesy of the Wayback Machine: O'Reilly's original page for this book in 1996; neither Amazon nor online ordering was quite there yet (and Google was busy coding their first web crawler in Python).

A Book is Born

My publisher initially rejected the book idea—they were focused on Perl at the time, and Python was just one of a set of obscure tools—but relented after months of lobbying on my part. The fruits of that perseverance (a.k.a. stubbornness) seem clear: today, Python is a large and profitable domain for most technical publishers, and is generally counted among the most-widely used programming languages in the world. I also gave previews of the book at two early Python conferences listed below, the second of which spawned what proved to be incredibly shortsighted remarks about a book being unnecessary. Such is life in the ego-based world of open source.

This book's conclusion argued for Python's role in simplifying the work of professional developers, and was retained by all its editions. Two decades later, that argument still holds true: Python remains an enabling technology in the hands of skilled programmers. As discussed in 2010, though, this original premise seems to have been perverted over the years into a promise of instant accessibility for all. That was never the point. Python can be loads of fun, and I'm glad my books inspire newcomers, but mastery in this field takes more time and focus than commonly told. I hope this page has underscored the importance of honesty on that front.

For true historians out there, it's also worth noting that Programming Python was indeed the first Python book started, but not the first sold. Another book beat it to market by a few months—and seemed rushed out specifically to do so, with a primary author who had just served as a technical reviewer for Programming Python. In the end, the other book's content overlap was minor, but it also never proved to be commercially significant and soon went out of print. By contrast, Programming Python has had a 23-year shelf life. And counting.

Books (1)

Oct-1996 Programming Python, 1st Edition Python 1.3 900 pages

Talks (2)

May-1995 Menlo Park, CA Conference talk: book update at IPC2
Jun-1996 Livermore, CA Conference talk: book update at IPC4

Other (2)

May-1995 Paper, 2nd Python conference Book Preview (PP1E)
May-1995 Paper, 2nd Python conference KEL: C++/Python Integration


And before all this, there were monsters that roamed the earth, of course, and answered to names such as Perl, Tcl, and C++, but that story is beyond this page's scope. For more on my Python work, see my formal bio; this page's training photos; the relics on display here and here; the more-wordful opinion piece from my 20-year milestone; my books' index pages here, here, and here; and the 1993 post from the halcyon days of Python 0.X that got me into all this trouble.

[Home] Books Programs Blog Python Author Training Search Email ©M.Lutz