(normally) - in two flavors. Used only to prioritize high-traffic pages for dev work, iff JS and tracker enabled. The former/defunct training site's id: ga('create', 'UA-52578333-1', 'auto'). The book site's id, now used for all: ga('create', 'UA-52579036-1', 'auto'). JS is also used if enabled for thumbspage galleries, Top buttons, TOCs, etc. Jun-2019: tell Google Analytics to anonymize IP address on receipt for privacy. More: https://developers.google.com/analytics/devguides/collection/analyticsjs/. Oct-2022: install a GA4 tag (i.e., script) alongside the prior UA tag. UA tags will stop collecting data in 2023. It's okay to use both until the cutover (and Google advises doing so), but the UA tag will be pointless after that and should be removed. This handles genhtml-insert clients; others get tags by running insert-analytics.py in package-publishing scripts. Also per Google: "In Google Analytics 4, IP anonymization is not necessary since IP addresses are not logged or stored". Let's hope so... -->
This page has additional biographical information and links beyond the summary on my formal bio page. All the items here reflect this page's latest substantial update: mid-2017. See below for more on my 20-year training history, 22-year writing career, and 25-year Python tenure. You may also be interested in the more recent (and entertaining) career-retrospective page here, and the detailed summary of my 3-decade+ software career here.
Update: After two decades, I ended my training business in 2016. You can read the announcement, find the now-public class materials online, and browse related links here.
From 1997 through 2015, I've taught 260 live Python classes to roughly 4,000 students. My classes have been held in the US, Europe, Canada, Mexico, and Puerto Rico, and my clients have represented a wide variety of software domains. The following links provide more details:
The web version of the class material and workbook are available on request to potential clients (though they are largely useless sans the class). Update: these are now available publically to all interested readers.
Much of the content and spirit of my classes is captured in my two primary books and their reference companion, available from O'Reilly Media and book sellers worldwide:
|
| The foundational book Learning Python, 5th Edition covers language fundamentals, and directly mirrors the majority of my 3 day classes. |
|
| The follow-up book Programming Python, 4th Edition focuses on applications, and reflects my more advanced topics and class sessions. |
| The reference book Python Pocket Reference, 5th Edition provides a concise companion and supplement for the other two books. |
For links to some of the online articles, papers, and interviews I've done over the years, see these items, most of which are also now chronicled in my career retrospective page. I also occasionally post random writings to this page.
Python itself continues to enjoy an active user community today. It is generally considered to be one of the top 5 or 10 most widely used programming languages in world, and is still growing in popularity by most metrics.
For more details, as well as links to Python resources on the web, please see the About Python page.