A couple of months ago I was approached by an organisation that provided programming training to staff at companies. They asked me if I was interested in becoming a trainer for them based on my experience running Software Carpentry workshops.
After seeking clarification and looking through the teaching materials, I refused.
I’ve included the email documenting the reasons for my refusal below (I certainly didn’t refuse based on the remuneration which was significant compared to the stipend a PhD candidate lives off).
The crux of the matter was that they were promising to cover a significant amount of content in a single day for people with no background in programming. This was a terrible idea.
My warning to organisations that are interested in providing training to their staff is not to hire a company based purely on how much they say they can cover in a day. You’ll end up blazing through topics without giving people enough hands on experience to properly learn.
Dear Mr. [surname],
I was about to sign the NDA and send it back to you, but I noticed how some [company name] trainers online had received poor reviews online from attendees for not covering all of the materials as advertised.
I reexamined the course outline you sent me for a one day introductory course and noticed how extensive the list was:
- Motivation to use Python
- Brief history of Python
- Installations and Versions
- Grammar
- Errors and Exceptions
- 
Modules and Packages
- Object Oriented Programming in Python
- Execution Model of a Python application
- Architecture/ Design of Python
- Standard Library
- 
Integrated Development Environments
- 
Python Enhancement Proposals
As someone who has taught at many workshops for the past four years, I honestly do not know how you can cover the basics of Python through to OOP, the standard library and architecture without pretty much zipping through the day. This would work for teaching experienced programmers a new language, but would not be an effective method for training beginners.
I also noticed in the contract how poor reviews would result in me receiving no pay and I believe that I cannot do a competent jobs teaching all that content in the brief time permitted to beginners. By promising too much content, I am concerned that the students will be frustrated if we do not get through all the materials.
If more time was permitted to train beginners, the materials were split into multiple seperate courses, or the trainees were experienced programmers, the situation would be different and I would be happy to sign the NDA and be a trainer for your organization. However, as I do not wish to place myself in a situation where I could damage my reputation and receive poor reviews, I would have to decline your offer to become a trainer based on the current state of the training materials.
If you were open to reevaluating your workshop syllabus so that the materials could be covered in the time permitted, I’d be happy to assist with the training.
Regards,
Jack
Funnily enough, they never bothered to respond or take me up on my offer to improve the materials.