Movatterモバイル変換


[0]ホーム

URL:


insert (other file), via genhtml tag or manual(AFTER top banner or del initial

, else Firefox alone increases top spacing)5) Add at end, so space for Top without covering last content-->Teaching Python by Mark Lutz

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 aboutPython 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'sadoption, readers are invited to consider this page part of Python's historytoo.

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 Pythonclasses I taught, Pythonbooks I wrote along the way, and articles and interviews I did over theyears, 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 aphoto gallery with extra notes;enable yours if it's hiding. Second, the items below appear most-recent yearfirst; read from theend 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 40 years I've spent in the software field preceded my stumbling onto Pythonand included twodegrees in computer science, work in thecompilers andProlog realms, and a first substantial program in 1982 usingFortran on punch cards (it played tic-tac-toe against itself and somehow always won). But suchprehistory is officially outside the scope of this page.

More relevant here: today Python is generally counted as one of the top 5 most-used programminglanguages in theworld;there are hundreds of Python books available on Amazon; and the local Barnes & Noble has an entire labeled section dedicated to thelanguage. 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 (the floating Top button jumps here quickly if JavaScript is turned on):

...Etc20172016201520142013
201220112010200920082007
200620052004200320022001
20001999199819971996Etc...

Color Coding

To help organize the details on this page, its year-table entries are coloredby 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 2010for reasons you'll read aboutahead.

Class Hosts

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 quickoverviews and more links. Please note that these host lists do not constituteendorsements 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 pleasecontact me if your organization prefers anonymity (or a better link).

Current Status

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 hereand haven't made substantial changes to this page since early2025, websites are much easier to revise than books. Watch the booksstatus page, peruse the generalblog page,or check back here if you're interested in breaking news.

For the present, it's on with the past.

 ...Etcetera

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 resourcespage and its cover-image's galleryNote.

In numbers, this pushes my publishing totals up to 15 books and 12k pages, the equivalent of 24 500-page books and 40 300-page books. It may also move the sales needle for all print and ebook units to the 1M mark, though ebook piracy and the absence of data for online readers make this metric less meaningful than it once was.

More broadly, this update marks a three-decade milestone in my Python bookscareer. 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 look forward to the Python world they will shape.

Books (1)

Feb-2025Learning Python, 6th EditionPython 3.12+1200/1300 pages

 2017

This year hosted rising booksales, another book milestone, andthe continuation of a books saga born in the InternetPleistocene.Though hardly plausible, this year also marked 25 years since I discoveredPython. It's somehow managed to fill a quarter century with activity (and books withspam).

600k (and Counting)

As expected, the combined sales on mybooks reached 600,000 units this year, led by sales ofLearning Python's 5th edition (see2014). 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 forauthors);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).

Finer points aside, 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 anyhowdespite last year'sannouncement. The most notablewas 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 in2012 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 books' publisher stopped selling individual books in both print and ebook formatat its own website this year, to push subscriptions to its video-focused Safari onlineservice.Predictably, this darkened into a focus on selling customeraccess. 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 difficultnot to interpret as another milepost on the road to content's demise. Read all the sordid details at the publisher review in2015.

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 thefuture. My advice to readers is to master Python today with the latesteditions,and browse its What's New documents later if and when you needthem.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 areintroduced in earlier years here. In a nutshell,Pythonmorphed into a subject too large and convoluted to be covered by comprehensive books, and mypublisher morphed into a company seemingly focused on anything but producingthem.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 thelanguage 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 foregoreading 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 onmacOS thesedays and sometimes onAndroid). Check out the free programs I post onthis 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 manyyears.

Books (0)

Long live the books

Other (1)

OngoingProgramming Python, just for funGet free apps here

 2016

This year saw both book milestones and the expected and arguably overdue conclusion to the training story. On the former,Programming Python turned 20 yearsold this year, and sales of theLearning Python title reached the 300k units mark, not counting all the unpaid copies downloaded illegallyon 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 andPython Pocket Reference. Together, these three related books' sales reached 550k units by April this year and will continue to grow in yearsahead.

For a look back at this book's history, see the earlier years on this page, especially its birth in1996. 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 20years, 260 live and in-person classes, and more adventures than I canrecall, I finally ended my Python training business in full this year. See the formalannouncement for details. You can also read about some of the factors behind this decision in2012 and2010 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 theNorwegian 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 amazingtwo decades and hopes that thebooks 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 fewphotos from the training road and the final version of the class workbookmaterial. 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 closingcredits!

Classes (0)

End of onsite classes

Other (1)

May-2016Interview, pythonlibrary.orgPyDev of the Week

 2015

On-site classes were resumed this year after the preceding years' bookprojects 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, theNASAclass was for structural engineers, and theUW group was network administrators; Python's roles are still very diverse. On the writing front, my books' combinedlifetime sales surpassed the 500k units mark this year and are on track to reach 600k units in the next year ortwo. By my calculations, the paper units sold so far weigh in at over 650 tons(please don't tell the firs behind myhouse).

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 Pythonbookover a trivial contract issue and demoted both open source and books in general at theirwebsite. 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 latesttrends.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 forPrincipia Mathematica in People Magazine.

Notes from the Future:
☞ More Publisher Follies

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 separatepage for space and flowbut 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 readersover 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 producesbooks (now both printed ondemandand sold asebooksby third parties),and most 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 supplementalreference tools, they are not learning and can do no better than the content they scan and paraphrase. This caution especially applies to AI tools whose scans are blatantlyillicit;evil thrives only with audience support.

In the end, computer programming is a thing that requires determined, blood-and-guts problem solving of the sort that is well out of scope for AI chatbots and online blogs. If you want to do well in this field, your focus should be on deep-learning resources and hands-on experience, not quick answers which are often as inane as they are wrong.

Classes (3)

Jun 8-10Seattle, WAUniversity ofWashington
Aug 24-26Merritt Island, FLNASA Kennedy SpaceCenter
Oct 27-29Vancouver, CanadaT2Systems

Other (1)

OngoingArticle, this sitePython 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 ofLearning Python released in this period becomes the best-selling edition so far. It will hit 100k units sales early in its tenure; push theLearning 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 want big, meaty tech books, despite what you mayhaveheard). 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 atthis 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 latestLearning Python project was so intense that it killed a keyboard on a brand newUltrabook. Yet another gadget that bravely gave its life to keep the world safe from bad programming-language design (more on device tragedies in2006 and2005).

Books (2)

Jun-2013Learning Python, 5th EditionPython 3.3 + 2.71600 pages
Jan-2014Python Pocket Reference, 5th EditionPython 3.4 + 2.7260 pages

Other (2)

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

 2012

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 in2010,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, seethis 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 mayhaveheard.

Broader issues aside, a live in-person class is a tough sell to a crowd which has convinceditself 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-8Burlington, MAOracleCorp
Sep 10-12Phoenix, AZCharles SchwabCorp
Sep 24-26Marysville, OHScottsComp
Nov 27-29Dallas, TXLockheed MartinCorp
Writing fulltime as of October

Other (1)

Sep-2012Article, this siteAnswer Me These Questions Three...

 2011

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

Brownshirts ❤ Belts

Memories from the road this year—a snow day inBoxboro, subzero cold inChicago, a tornado warning inBloomington, homeless people inSan Francisco, and a lost belt courtesy of an antagonisticTSA agentin 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 tocode 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-27Boxboro MACiscoSystems
Feb 7-11Chicago, ILDRW HoldingsLLC
Feb 15-17Livermore, CALawrence Livermore NatlLab
Mar 7-11Chicago, ILDRW Holdings
Mar 21-23Baltimore, MDJohns Hopkins UnivSTScI
Apr 5-7Los Alamos, NMLos Alamos NatlLab
May 23-25Bloomington, ILWithheld on request: insurance
Jun 1-3Houston, TXNASA Johnson SpaceCenter
Jun 27-28San Francisco, CADolby LabsInc
Jun 29-30San Francisco, CADolby Labs
Jul 19-21Burlington, MAOracleCorp
Aug 17-19Chantilly, VAHarrisCorp
Unavailable rest of the year

 2010

This year saw the end of public classes; the last three were held inSarasota.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—asthe 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 launchinga 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 in2012). Whatever the cause, profiting from the desperation of misled people is just plain wrong.After a decade, the public classes launched in2001wrapped 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 (orpass 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 otherwiseis at best naive and at worst fraud. Either way, the net result is to both disappoint newcomersand dilute the field.

Books (1)

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

Classes (9)

Jan 19-21Sarasota, FLpublicclass
Feb 2-4Albany, NYBMPC-KAPLLab
Apr 27-29Sarasota, FLpublic
May 25-27Milpitas, CAIntersilComp
Jun 8-10Los Alamos, NMLos Alamos NatlLab
Jul 13-15Sarasota, FLpublic
End of public classes
Jul 19-21Milford, MAEMCCorp
Jul 27-28Los Alamos, NMLos Alamos Natl Lab
Oct 19-21Livermore, CALawrence Livermore NatlLab

 2009

Most of this year was still local classes only (and referring contacts to others), but theLondon class in December signaled a restart of travel-based classes which continued into later years. Book update projects were alsounderway 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 ona crampednetbook.

The Python 3.X Paradox

TheProgramming Python update is pushed out to nextyear. It will be held in limbo for months by thepublisher, and have to grapple with half-finished 3.X libraries that are still being brought in linewith 3.X language changes and are sufficiently incompatible to make 2.X-to-3.X migration a lot more complicatedthan 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 programsposted herefor 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 storyhereand coverage of 3.X's near stillbirth lastyear.

Books (2)

Sep-2009Learning Python, 4th EditionPython 3.0 + 2.61210 pages
Sep-2009Python Pocket Reference, 4th EditionPython 3.1 + 2.6210 pages

Classes (6)

Jan 27-30Longmont, COpublicclass
Apr 21-23Longmont, COSeagateTech
Apr 28-30Broomfield, COSun MicrosystemsInc
May 4-6Fort Collins, COHewlett-PackardComp
Oct 20-22Sarasota, FLpublicclass
Dec 5-11London, EnglandGetcoLLC

 2008

This year was local classes only, a continuation of2007's mid-year change and a policy that also lasted for most of the nextyear. Even so, a single longstanding client sufficed to fill some of the time—and give my secondOQO 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 mostaccounts an atrociousmisstep, 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 struggleto attract users and will even alienate some former Pythonfans.By contrast, the Python2.X line will soon be frozen at version 2.7and hence immune to 3.X's thrashing; despite 3.X's emergence, 2.X will continue to see widespread use (and probably always will).

Notes from the Future:
🌴 Python 2.X’s Retirement 🌴

By 2020, Python 3.X will be used widely enough to embolden its developers to drop support for 2.X atpython.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'sdataandblog), and it will still be supported or required by numerous systems (includingIronPython,AWS,Chromium,Jython, andLLVM).Python 3.X may be the future, but its dozen-year ascent hardly qualifies as a coup, and it may never eclipse 2.X's legacy in full.

The enduring popularity of 2.X won't, however, stop python.org developers from inserting a rudedenigration 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-16Longmont, COSeagateTech
Jan 23-25Longmont, COSeagate
Jan 29-31Longmont, COpublicclass
Mar 25-26Longmont, COSeagate
Apr 22,23,25Longmont, COSeagate
May 12-13Longmont, COSeagate
May 14-16Longmont, COpublic
June 17-19Longmont, COSeagate
Oct 15-17Longmont, COpublic

Other (1)

mid-2008Interview, Quantum BooksLearning Python topics

 2007

This year was a turning point for training: for happy personal reasons, I stopped doingout-of-town classes at mid-year and did only local classes (public and private) from then until December2009—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 ofLearning Python: a heavy revision that incorporated new training experiences and dropped the materialof the prior edition's coauthor (who elected not to work on the update). The newedition 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-2007Learning Python, 3rd EditionPython 2.5750 pages

Classes (20)

Jan 16-18Missoula, MTUS Forest ServiceFSL
Jan 23-25Longmont, COpublicclass
Jan 30-Feb 1Boston, MAiRobotCorp
Feb 7-9Dallas, TXCiscoSystems
Feb 21-23San Diego, CAQualcommInc (viaTTR)
Mar 6-8Chicago, ILCitadelLLC
Mar 20-22Chicago, ILCitadel
Mar 28-30San Diego, CAQualcomm
Apr 9-11Pasadena, CANASA Jet PropulsionLab
Apr 23-25Santa Clara, CAVMwareInc
Apr 30-May 2Norman, OKUniversity ofOklahoma
May 16-18Boise, IDMicronTech
May 22-24Boulder, COValleylabComp (acq)
Jun 11-13Longmont, COpublic
Jun 25-27Pasadena, CANASA Jet Propulsion Lab
Offered local classes only from here till December 2009
Oct 10-12Longmont, COSeagateTech
Oct 17-19Longmont, COSeagate
Oct 23-25Longmont, COpublic
Oct 31-Nov 2Longmont, COSeagate
Nov 28-30Longmont, COSeagate

Other (1)

Nov-2007Interview, Dr. Dobb'sLearning Python Today and Tomorrow

 2006

The peak year for training, though2007 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 theChicago skyscrapers; aNew Yorkclass near the now heavily armedWall Street; lost luggage inEdmonton which made for an interesting wardrobe; anOQO Windows-basedhandheld computer doused badly inLondon 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 which involved a private investigator and were more invasive than those of theNSA. (That's how I know they're different.)

Books (1)

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

Classes (43)

Jan 25-27Longmont, COSeagateTech
Jan 30-Feb 2Chicago, ILGetcoLLC
Feb 8-10Longmont, COpublicclass
Feb 13-16Chicago, ILGetco
Feb 20-22Chicago, ILFermiLab
Feb 27-Mar 1Pasadena, CANASA Jet PropulsionLab
Mar 7-9Los Alamos, NMLos Alamos NatlLab
Mar 21-23Edmonton, CanadaEnvironment Canada (ECCC)
Mar 27-30Chicago, ILGetco
Apr 4-6Chicago, ILFermi Lab
Apr 10-12Bloomington, ILWithheld on request: insurance
Apr 26-28Longmont, COSeagate
May 1-5New York, NYOpswareInc
May 8-12Atlanta, GApublic: Big NerdRanch
May 15-17Montrose, COWestslope IT
May 22-24Mountain View, CAGoogleInc
May 31-Jun 2San Diego, CAQualcommInc (viaTTR)
Jun 7-9Longmont, COpublic
Jun 10-11Longmont, COSPSSInc
Jun 12-14Pasadena, CANASA Jet Propulsion Lab
Jun 19-23New York, NYJPMorganChase
Jun 27-29Chicago, ILFermi Lab
Jul 10-13Los Alamos, NMLos Alamos Natl Lab
Jul 19-21Cupertino, CAHewlett-PackardComp
Jul 25-27Boston, MAIron MountainDigital
Jul 31-Aug 4London, EnglandJPMorgan Chase
Aug 14-16San Diego, CAQualcomm
Aug 17-18San Diego, CAQualcomm
Aug 21-23Boston, MABoseCorp
Aug 24-25Boston, MABose
Aug 28-31Columbia, MDWindermereTek
Sep 6-8San Diego, CAQualcomm
Sep 12Boulder, COtutorial: host unknown
Sep 13-15Longmont, COSeagate
Unavailable for classes Sep 17-29
Oct 10-12Washington, DCMantechCorp
Oct 17-18Chicago, ILFermi Lab
Oct 23-25San Diego, CAQualcomm
Oct 30-Nov 1Longmont, COSeagate
Nov 6-10Estes Park, COpublic:Seminar
Nov 13-17Atlanta, GApublic: Big Nerd Ranch
Nov 29-Dec 1Boise, IDMicronTech
Dec 4-6Portsmouth, NHLiberty MutualGrp
Dec 13-15Boston, MAiRobotCorp

Other (1)

Sep-2006Interview, Tech Talk RadioDiscussion thread

 2005

The second-biggest year for training. Tech, Python, and programming in general were surging.This was also the last year that I attended conferences; after doing 12, they grew repetitiveand 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 areturn toPuerto 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 nearSt 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 thenextwere held at a retreat in theGeorgiawoods, where students and instructor would stay, eat, and share a week-long learning experience while largely cut off from the outside world. Yes; cue the banjo.

Books (1)

Feb-2005Python Pocket Reference, 3rd EditionPython 2.4160 pages

Classes (34)

Jan 12-14Annapolis, MDARINCInc
Jan 26-28Longmont, COpublicclass
Jan 31-Feb 2Pasadena, CANASA Jet PropulsionLab
Feb 16-18Sarasota, FLManTech (MRSL)
Feb 21-25Atlanta, GApublic: Big NerdRanch
Apr 11-15West Palm Beach, FLSouth Florida Water MgmtDist
Apr 19-21Chicago, ILDanaInc
May 4-6Pasadena, CANASA Jet Propulsion Lab
May 11-13San Juan, Puerto RicoSkytecInc
May 17-19Philadelphia, PAUniversity ofPennsylvania
Jun 1-3Denver, COFirstlogicLLC
Jun 8-10Longmont, COpublic
Jul 18-20Boston, MASefas InnovationInc
Jul 20-22Boston, MASefas Innovation
Jul 26-28Dallas, TXLockheed MartinCorp
Aug 2-4Fairfax, VATechnology MgmtAssoc
Aug 10-12Berkeley, CALawrence Berkeley NatlLab
Aug 16-18Dallas, TXLockheed Martin
Aug 22-24Boise, IDMicronTech
Aug 30-Sep 1Cleveland, OHNASA Glenn ResearchCenter
Sep 6-8Palatka, FLFlorida RiverMgmt
Sep 13-15Ft Meade, MDNational SecurityAgency
Sep 19Boulder, COtutorial: host unknown
Oct 5-7Longmont, COpublic
Oct 17-21Atlanta, GApublic: Big Nerd Ranch
Oct 24-27State College, PAPenn StateUniversity
Oct 31-Nov 4La Crosse, WIFirstlogic (AM class 1 of 2)
Oct 31-Nov 4La Crosse, WIFirstlogic (PM class 2 of 2)
Nov 8-10Santa Clara, CAVMwareInc
Nov 15-17Santa Clara, CAVMware
Nov 28-29Santa Clara, CAArmLtd
Nov 30-Dec 2Santa Clara, CABAESystems
Dec 7-9Longmont, COSeagateTech
Dec 13-15Briarcliff, NYPhilipsResearch

Conferences (1)

Mar 23-25Washington, DCPyCon 3 (last)

 2004

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 inFlorida,a 1-person class in Fresno, the remnants of a hurricane in Newport News, and an NSA class which banned studentCDs 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-15Reynosa, MexicoJabil GlobalSvcs (now?)
Jan 26-28Longmont, COpublicclass
Feb 18-19Los Alamos, NMLos Alamos NatlLab
Mar 3-5Richmond, VACircuit CityCorp
Apr 5-7Redlands, CAESRIComp
Apr 19-21Houston, TXTexas InstrumentsInc
May 3-5Redlands, CAESRI
Jun 1-4San Diego, CAHewlett-PackardComp
Jun 7-8Sunnyvale, CASanDiskComp
Jun 9-11Longmont, COpublic
Jul 6-8Ft Meade, MDNational SecurityAgency
Jul 20-22Fort Walton Beach, FLEglin Air ForceBase
Aug 10-11Los Alamos, NMLos Alamos Natl Lab
Aug 30-Sep 3Newport News, VACity of NewportNews
Sep 13-15Fresno, CAFresno County EduOffice
Sep 20-22Pasadena, CANASA Jet PropulsionLab
Oct 6-8Longmont, COpublic
Nov 15-18Denver, COLand Title GuaranteeCo
Dec 7-9Los Alamos, NMLos Alamos Natl Lab

Conferences (1)

Mar 23-25Washington, DCPyCon 2

Other (1)

Feb-2004Article, ONLamp.comWhen Pythons Attack

 2003

This was a low-point for training demand and seems to be the year when the full impactof 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 toDublin, 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-2003Learning Python, 2nd EditionPython 2.3620 pages

Classes (14)

Feb 25-27Columbus, OHApplied Innovation (acq?)
Mar 4-6Columbus, OHApplied Innovation
Mar 10-12Boston, MAHarvard MgmtComp
Apr 14-16Charlotte, NCFamily DollarInc
Apr 29-May 1Dublin, IrelandRenaissanceReLtd
May 12-14Chelmsford, MAMercury ComputerSystems
Jun 10-11Culver City, CASony PicturesImageworks
Jun 24-27Orlando, FLWalt DisneyWorld
Jul 8-9Los Alamos, NMLos Alamos NatlLab
Jul 22-24Lawrenceville, NJBristol-MyersSquibb
Aug 5-6Los Alamos, NMLos Alamos Natl Lab
Oct 7-9Longmont, COpublicclass
Oct 29-31Atlanta, GACompuCredit (now?)
Dec 9-11Chicago, ILUBS GroupAG

 2002

An early high-point for training and an apparent vindication of the career move.The dot-com burst had happened but hadn't hit training demand yet (though see nextyear).This year was also my fourth and last OSCON, an event that will be held until it falls victim to publisher morph and pandemic in a distantepoch.

¿Dónde está la clase?

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

Classes (29)

Jan 16-18Longmont, COSeagateTech
Jan 29-Feb 1Minneapolis, MNJasc SoftwareInc
Feb 13-15Longmont, COpublicclass
Feb 20-22Colorado Springs, COIntellidenInc
Feb 25-28Annapolis, MDARINCInc
Mar 7-8Livermore, CALawrence Livermore NatlLab
Mar 12-15Mexico City, MexicoAldea Systems (link?)
Mar 25-27Plymouth, MIHKS automotive (link?)
Apr 1-3Boise, IDHewlett-PackardComp
Apr 9-11Barcelona, SpainHewlett-PackardSpain
Apr 15-17Ann Arbor, MIMechanical Dynamics (acq?)
Apr 22-24Minneapolis, MNSeagate
Apr 29-30Livermore, CALawrence Livermore Lab
May 7-9Oklahoma City, OKSeagate
May 22-24Barcelona, SpainHewlett-Packard
May 27-29Barcelona, SpainHewlett-Packard
Jun 3-4Longmont, COSeagate
Jun 10-11San Jose, CASchlumbergerTech
Jun 17-19Minneapolis, MNSeagate
Jun 20-21Minneapolis, MNSeagate
Jun 25-27St Petersburg, FLCatalinaMarketing
Jul 10-11Minneapolis, MNSeagate
Jul 15-17Minneapolis, MNSeagate
Jul 22San Diego, CATutorial atOSCON 4
Sep 24-26Portland, ORIBMCorp (viaOGI)
Oct 15-17Tacoma, WASagem Morpho (link?)
Oct 21-23Seattle, WAUniversity ofWashington
Oct 28-30Longmont, COpublic
Nov 19-21Oklahoma City, OKSeagate

Conferences (2)

Feb 5-6Alexandria, VAIPC 10(report)
Jul 22-26San Diego, CAOSCON 4

Other (1)

Feb-2002Article, ONLamp.comThe IPC10 Python Gathering

 2001

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 theDublin class was more fun than work(think millennia of history and fresh Guinness on Grafton Street). Dublin was alsopart of a six-leg trip that included a cross-country drive, a conference tutorial inSan 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 and2000 were hosted by aPerl training company based inBoulder, Colorado (TCPC); I eventually started holding these inColorado 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 spottedhere,here, andhere.

This year's 2nd edition ofProgramming Python was a very different book than its predecessor.Given the presence ofLearning Python's language tutorial and thePython Pocket Reference'squick-reference, the newProgramming 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 suchat this point, but the publisher had already established the title model.

Books (2)

Mar-2001Programming Python, 2nd EditionPython 2.01300 pages
Nov-2001Python Pocket Reference, 2nd EditionPython 2.2130 pages

Classes (22)

Feb 5-7Richmond, VACircuit CityCorp
Feb 13Longmont, COSeagateTech
Feb 21-23Denver, COKaivo (link?)
Feb 26-27Vancouver, CanadaSPCInc
Mar 12-14Richmond, VACircuit City
Mar 20-22?Boulder, COpublic:TCPC
Mar 28-30Englewood, COCSGSystems
Apr 18-21Oakhurst, CASierra TelephoneInc
May 1-3Portland, ORHarland Financial Solutions (acq)
May 14-15Livermore, CALawrence Livermore NatlLab
May 23-25?Boulder, COpublic: TCPC
May 30-01Englewood, COCSG
Jun 6-8Rochester, NYNexpress Solutions (acq)
Jun 11-13Corning, NYCorningInc, CCFL
Jun 25-27Longmont, COpublic: first inLongmont
Jul 23San Diego, CATutorial atOSCON 3
Jul 30-31Dublin, IrelandRenaissanceReLtd
Sep 24-28Seattle, WABoeingComp
Oct 22-24Longmont, COpublic
Nov 12-14Longmont, COSeagate
Dec 3-5Oklahoma City, OKSeagate
Dec 17-19Pasadena, CANASA Jet PropulsionLab

Conferences (2)

Mar 5-7Long Beach, CAIPC 9 (more)
Jul 26-27San Diego, CAOSCON 3

Other (1)

May-2001Interview, ONLamp.comProgramming Python topics

 2000

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 (photoshere andhere).It would be followed by later international classes in Mexico, Canada, and Europe,with 7 training trips to the latter. Poignant memory: theNew York class was held across from the World Trade Center. Geek memory: the Chicago class was for the owner ofPalm, the maker of a line of PDAs I used almost constantly until the Linux-basedZaurus justifiedmigration (see also my later defections toWindows andAndroid).

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

Despite the schism, 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.Xappears. Data point: the popular shared-hosting accounts on theproviderthat formerly hosted 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-09Newmarket, EnglandTCSICorp (acq)
Jan 11-12Alameda, CATCSI
Jan 13-14Alameda, CATCSI
Jan 19-21New York City, NYStarmediaNetworks
Feb 15-17Boulder, COpublic:TCPC
Mar 09-10Livermore, CALawrence Livermore NatlLab
Mar 22-24Chicago, IL3ComCorp
Apr 10-11Livermore, CALawrence Livermore Lab
May 16-18Boulder, COAspect DevelopmentComp
May 20Edison, NJOutsource Labs
May 24-26Boulder, COpublic: TCPC
Jun 19-21Hillsboro, ORIntelCorp
Jul 17-18Milpitas, CAKLA-TencorCorp
Jul 20-21Milpitas, CAKLA-Tencor
Jul 26-28Hillsboro, ORIntel
Aug 07-08Milpitas, CAKLA-Tencor
Aug 14-16Spokane, WAAgilentTech (HP)
Sep 12Boulder, COPython ACM tutorial
Nov 8-10Boulder, COpublic: TCPC
Dec 5-7Fort Belvoir, VAFort Belvoir,E-OIR

Conferences (1)

Jul 19Monterey, CAOSCON 2

 1999

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 chanceon doing training and writing fulltime; and never went back.

A Series is Born

The firstLearning Python is released this year—a title that my late firsteditor 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 firstProgramming Python, which will now be free to narrow its scope. From here on,Learning covers language fundamentals that span all domains, andProgramming 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 in1999;shopping carts are by now all the rage.

Books (1)

Apr-1999Learning Python, 1st EditionPython 1.5385 pages

Classes (6)

Jan ?-?Chicago, ILFermiLab
Mar 17-19Washington, DCNASAHeadquarters
Mar 29-31Austin, TXCiscoSystems
Jun 10Boulder, COPython talk atBLUG
Sep 27-29Austin, TXOriginSystems
Independent training and writing fulltime as of October
Dec 07-08Alameda, CATCSICorp (acq)

Conferences (1)

Aug 23-24Monterey, CAOSCON 1(T-shirt,swag)

Other (1)

Jan-1999Article, USENIX ;login:Using Python

 1998

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, thoughPuerto Ricowas an undisputed highlight of the year.

Pocket Change

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

Books (1)

Oct-1998Python Pocket Reference, 1st EditionPython 1.580 pages

Classes (3)

Feb 16-18Chicago, ILFermiLab
Sep 01-06San Juan, Puerto RicoSoftronexCorp
Oct 24-27Atlanta, GASecurity FirstTech

Conferences (1)

Nov 10-15Houston, TXIPC 7

Other (1)

Jul-1998Handbook of Programming LanguagesPython 1.4120 pages

 1997

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'spresentation 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 workstationsdue 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 materialson floppy disk; that's how long ago this was.

Classes (5)

Mar 13Boulder, COPythontalk atFRUUG
Jul 16-18San Jose, CABadgerTech (first multiday class)
Oct 14San Jose, CATutorial atIPC 6
Oct 27-29Livermore, CALawrence Livermore NatlLab
Nov 03-05Chicago, ILFermiLab

Conferences (1)

Oct 14-17San Jose, CAIPC 6(more)

Other (2)

Mar-1997Talk, various groupsAnd now, for something...
Jan-1997Interview, CompuServeProgramming Python topics

 1996 and Earlier

The firstProgramming Python is published: a book which arguably established Python's legitimacy, and eventually spawned bothLearning Python andPython PocketReference—a 3-title set that would go on to sell 750k units by2020(not counting Safari readers, some underreported translation sales, and illicit 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 in1996;neither Amazon nor online ordering was quite there yet (though Google was busy coding their first web crawler inPython, and ILM was beginning to use thesource).

A Book is Born

My publisher initially rejected the book idea—they were focused onPerl at the time, andPython 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 programminglanguages in theworld. 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 in2010, 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 hasunderscored the importance of honesty on that front.

For true historians out there, it's also worth noting thatProgramming 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 forProgramming 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 26-yearshelf life.And counting.

Books (1)

Oct-1996Programming Python, 1st EditionPython 1.3900 pages

Conferences+Talks (2)

May-1995Menlo Park, CABook update atIPC 2
Jun-1996Livermore, CABook update atIPC 4

Other (2)

May-1995Paper for IPC 2 conferenceBook Preview (PP1E)
May-1995Paper for IPC 2 conferenceKEL: C++/Python Integration

 Etcetera... 🦕

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 and curiously third-personbio;this page's trainingphotosand the extra notes they sprouted in 2022 and 2025;the fossils on displayhere andhere;the more-wordful opinionpiece from my 20-year milestone;my books' index pageshere,here, andhere;and the1993 post from the halcyon days of Python 0.X that got me into all this trouble.



[Home page]BooksCodeBlogPythonAuthorTrainFind©M.Lutz

[8]ページ先頭

©2009-2025 Movatter.jp