| ★ wanayoo — archive 1999 http://shell.rmi.net/~lutz/mytrain.html | Nouvelle recherche | Portail wanayoo |
Learning Python
A Python training course
Looking for professional, on-site Python training? Mark Lutz, author of multiple O'Reilly Python books, is now offering a general 2 or 3-day Python training course, taught at your company or organization. Starting in 2000, this class will also be held regularly in Boulder, Colorado.
Python is a popular object-oriented scripting language, used for a wide variety of programming tasks. In this course, Mark provides an intensive, hands-on introduction to the Python language, as well as common Python tools and applications. Through lectures and laboratory work, students learn the basics of Python programming. In addition, each student receives a 250-page course handbook filled with material and examples used in the course, in both HTML and hardcopy form.
This document describes the course outline and schedule, the course fee
structure, and the instructor's background. It's composed
of the following sections:
For more information on Python training, please send email to the course instructor, at "lutz@rmi.net" (click here), or see the other contact points listed near the end of this page. References from prior clients of this course are available on request; for a partial list of prior class sessions, see the instructor's calendar page.
Mark Lutz is one of the primary figures in the Python community. He has been involved with Python since 1992, and was one of its earliest adopters and evangelists. More recently, the instructor wrote the definitive book about Python: Programming Python, published by O'Reilly & Associates in October, 1996. This book is generally considered to be the most comprehensive source of Python information available. Since 1996, Mark has also written a 120-page chapter about Python for a book published by Macmillan, authored O'Reilly's Python Pocket Reference, and co-authored O'Reilly's new book Learning Python, which is based in part on this course. Mark earns his living as a Python trainer, writer, and contract developer.
Besides Python experience, the instructor is also a software engineer with 13 years experience, and holds Bachelors and Masters degrees in computer science from the University of Wisconsin. His work background includes compilers, development environment GUIs, network programming, client/server systems, and business applications. His full resume is available on-line, at URL http://rmi.net/~lutz/resume.html.
This course has been presented at a variety of organizations in and outside of the country, ranging from small companies, to large research centers. For a partial list of places where this course has already been held, please see the instructor's Python commitments calendar. Besides this course, the instructor's training background includes in-company Python training, as well as end-user training for a C-like scripting language. In addition, he has given talks at Python conferences, and UNIX and Linux user group meetings (see the abstract and materials from a past UNIX group talk).
This section describes the high-level outline and time schedule, for the full 3-day course session (2-day sessions generally cover a subset of the topics listed here). This is intended to be a flexible course plan. Other modules and topics may replace the standard material here, and/or selected topics may be given more or less time, depending on your training needs.
The current offering is a general Python course, composed of four main sections:
This course is designed to provide a hands-on, interactive learning experience. The course includes 30 minutes of lab work after each 1 hour of lecture time. Lab sessions are scheduled four times a day, with extra time at the end of the day for further work. I have given this course without lab sessions, but they tend to be a crucial component of the class, and are strongly recommended.
The labs ask students to write simple programs, as well as modify pre-coded examples. Later exercises demonstrate more advanced concepts and tools (simple Tkinter GUIs, C integration, etc.). The final lab (day 3) also points students to online Python resources, provided the lab machines have Internet access. Answers to all lab exercises (as well as source code for all examples) will be provided on disk with the course materials.
To give you a better idea of what the course will be like, here is a typical schedule for the 3-day course with lab time. Note that this is just a general guideline: it will vary depending on course customizations and student needs. 2-day courses pick and choose from the topics and sessions listed here.
The standard course is 3 training days, running 9-5 each day (8 hours). The course provides 4 hours lecture per day, with 4 30-minute labs each day, an extra hour for more discussion or lab work, and breaks for lunch. That comes out to roughly 12 hours of lecture, 6 hours of labs time, and 3 hours for extra needs.
Day 1
General Python introduction 30 min 9:00 - 9:30
Using the interpreter 30 min 9:30 - 10:00
lab 1 30 min 10:00 - 10:30
Types and operators 1 hour 10:30 - 11:30
lab 2 30 min 11:30 - 12:00
lunch 1 hour 12:00 - 1:00
Basic statements 1 hour 1:00 - 2:00
lab 3 30 min 2:00 - 2:30
Functions 1 hour 2:30 - 3:30
lab 4 30 min 3:30 - 4:00+
extra time 1 hour
Day 2
Modules 1 hour 9:00 - 10:00
lab 5 30 min 10:00 - 10:30
Classes 1 hour 10:30 - 11:30
lab 6 30 min 11:30 - 12:00
lunch 1 hour 12:00 - 1:00
Exceptions 30 min 1:00 - 1:30
Built-in tools 30 min 1:30 - 2:00
lab 7 30 min 2:00 - 2:30
System interfaces 30 min 2:30 - 3:00
GUI programming 30 min 3:00 - 3:30
lab 8 30 min 3:30 - 4:00+
extra time 1 hour
Day 3
Python object persistence 1 hour 9:00 - 10:00
lab 9 30 min 10:00 - 10:30
Text processing 30 min 10:30 - 11:00
Internet scripting 30 min 11:00 - 11:30
lab 10 30 min 11:30 - 12:00
lunch 1 hour 12:00 - 1:00
Extending Python in C/C++ 1 hour 1:00 - 2:00
lab 11 30 min 2:00 - 2:30
Embedding Python in C/C++ 1 hour 2:30 - 3:30
lab 12 30 min 3:30 - 4:00+
Packages and resources 30 min 4:00 - 4:30
extra time 30 min
The following paragraphs describe the components that you may be billed
for, depending on your needs. All applicable fees should be described
in the training agreement. Like the outline, this is just a standard fee
structure; it can vary depending on your requirements. Also note that this
section only applies to on-site classes; see the announcements section for
links to per-student fee information, for classes held in Boulder.
To calculate your cost, add the fees for all four fee categories above
which apply to your situation. For instance, here are a few typical fee
scenarios:
The next few paragraphs go into further details on other aspects of the fees and contract.
In addition to the $5500 or $7000 base fee, the client picks up the cost for the instructor's travel to the training site, as described above. I'm flexible as to how to arrange for travel expenses. You can either (1) arrange transportation and lodging for the instructor ahead of time, or (2) have the expenses added to the bill after they are incurred. In either case, a "not to exceed" clause for travel expenses in the contract is acceptable. If I pay any travel expenses, I will submit a detailed invoice after the course, listing all billed expenses, along with receipts.
Besides the training materials, each student should have a copy of Programming Python, from O'Reilly & Associates. The course will refer to examples, sections, and exercises in the book. This book will also serve as a source of supplemental information. If you don't already have copies on hand, this text can be purchased directly from O'Reilly (see URL http://www.ora.com); for orders of 10 or more, they generally give 25% discounts off the list price. Online stores such as www.amazon.com sell at discounts as well.
I strongly recommend (but don't require) students to have copies of the Python Pocket Reference book too; this small book is an easy-to-use Python reference, and will be valuable to students after the course. The new O'Reilly book, Learning Python may also be useful as a course supplement, but is optional reading; much of it is the same as class materials.
To keep things simple, I prefer to charge the $5500/$7000 flat-rate fee (plus expenses) for the course. But as a basis of comparison, at the $5500 2-day rate, this comes out to $2750 per day, or $366 per student (for 15 students). At the $7000 3-day rate, that's $2333 per day, or $466 per student. Depending on your situation, also add in the copying costs and travel expenses to get more accurate day/student figures.
At this time, I'm only offering the customizable 2 or 3-day general Python course, held on-site at your company or locally in Boulder. However, additional course time in advanced subjects can be scheduled on a specialized basis. Moreover, it's simple for me to split the class into a 2-day Introduction to Python class, to be followed by a 2-day Advanced Python class. Some clients have also asked about having me on site for more than three days; if you're interested in this option, let me know. I'm available for extra days of training, and I also do Python contract development and consulting on an hourly basis.
If you shop around, I think you'll find that my course fees are competitive by training standards. For instance, comparable Perl language training can typically cost $2500 to $3000 per day plus expenses, and training houses often charge much more (in fact, up to 3 times more, for classes offered by large companies).
Now for the legalese. Payment is normally due on delivery of services. You can either pay the instructor on site, or be billed by me after the course. I prefer the former, but some travel expenses may not be known while I'm still at your location, and some companies have standard accounts payable policies in place (e.g., net 30). We can prepare a contract, purchase order, or verbal agreement, but the following sorts of details should be worked out ahead of time:
The following is a comprehensive checklist of everything you should do to prepare for a successful class at your site, along with a few optional things that have helped in prior sessions.
Required items:
Optional items:
I live in Colorado, just outside Boulder. So, out-of-town for me means anything outside the area from Denver to Fort Collins.
Please inquire at my email address or phone numbers below. The upcoming commitments list at this page is only updated rarely, so it's usually out of date. As a general rule, it's good to allow a few weeks between reaching an agreement and the course itself (especially if you ask for customized materials), but I have been known to fly out with just a few days notice.
Email is usually the best way to get in touch with me, but here are my other coordinates for your records:
name: Mark Lutz
Independent Python Trainer
email: lutz@rmi.net
phone: (303) 684-9565
web: http://rmi.net/~lutz
address: 1907 24th Avenue
Longmont, CO. 80501
Note: as of 10/15/99, the old phone number that used to be listed here, 303-581-4732, is no longer active. Please use one of the other contact points above, instead.
Copyright 1997, 1998, 1999, by Mark Lutz
Back to my homepage