This document is intended to reach multiple, different readers. It presents arguments which address the particular complaints commonly received. This argument is leapt into without introduction. For a more thorough, linear introduction to official Python Training and Certification, please read the Certification Proposal.
"I think the certification is inherently bad. Anyone doing it should be caught and given a stern talking to."
A lot of people are opposed to certification as a matter of principle. "It can become something which only has value when sorting resumes, a conveyor of false information and a means to provide recognition to those who cannot achieve it on their own merits. The PSF should fight against certification in order to prevent it become a means to exclude people, not a means for recognition of quality."
Well, I think we can all agree that bad certification does this. If the certification is based on poor training and simple targets, it then becomes easier to gain 'Python Certification' than it is to actually become good at Python programming. This is to be avoided. But, is it necessarily so? Will certification always punish good programmers and reward the mediocre? Can certification be used to enhance ones own skills? Can it become a real badge of honour? If it can do good things, should we in fact do it? It seems to me that it is deserving of consideration that a certification scheme could be used to advance positive goals, if done properly.
Let's suppose that it is an open question that certification may be able to advance positive goals. What are the positive goals which might be advanced through certification? Are they important enough to take a risk with a certification scheme? Do they outweigh the possible downsides? I will start with a list of the possible downsides, not least to convince the readers that these objections have, in fact, been considered during the construction of the training & certification proposal.
Downside Risks from Certification
- The certification scheme may reward mediocrity
- Good programmers may be excluded because it will cost money
- Actual contribution to the Python community and language may be valued less than achieving certification
- It may cost a lot of money to implement
- It may cost a lot of time to implement
- It may distract from other, more important, PSF activities
- Commercial goals may be placed ahead of community goals
Now that we have established that we recognise, and need to respond to, these downside risks, it would be appreciated if readers would take the time to consider with an open mind these upside possibilities...
Upside Possibilities from Certification
- The certification scheme will encourage programmers to better themselves
- Good programmers will be formally recognised under the scheme
- Certification can be used to strengthen the connections within the Python community, through recognition of community activities
- Certification may be profitable for the PSF
- Commercial goals and community goals may be linked sustainably
- Certification will help establish Python as a significant part of the commercial world
So, how can we possibly evaluate the alternatives? Is certification a black box with uncertain outcomes, a risky a dangerous undertaking? Or can we look under the hood and draw conclusions about the likelihood of achieving a good result? Let us first look to some other objections...
"I think training is inherently bad. It's a free world, but we shouldn't do it ourselves."
A lot of people are opposed to training as such. They believe that it only results in a net loss to society and therefore should be fought, not embraced. Well, tough luck. Regardless of the opinions that some people might have, Python training courses are already being run. Scandalously , this is happening despite the lack of explicit approval from the PSF or the community. There are only two options here: training done right and training done wrong. If training cannot be done right, then it makes sense not to be involved with it. However, if it is possible to provide either good training, or even less-bad training, the net social outcome will be maximised. The question is not "should we oppose training?", but rather "can we do a good job of training, and if so, is it worth our efforts?".
"Okay, so why is training so great?"
- It can engender community values among those being trained
- It can raise the average standard of Python programmers
- It can give opportunity to Python programmers
- It can raise the visibility of the Python language
- It can make Python a more acceptable commercial choice
- Python trainees can contribute directly to the Python community
- Python's brand can be enhanced
"Marketing is evil. Training is evil. Real programmers discover Python through direct binary insight."
It is clear that the DIY ethic is strong, especially in the Python community. Right down to the lack of private variables and interfaces, the ability to mess with powers you couldn't possibly understand is a deep part of the Python culture. Selling a contiki-tour version of learning Python really galls some culturally-minded Pythoneers. "That's like sitting in a tour bus while driving through the Rocky Mountains! We want people to really visit Python, or not come at all!"
Well, a lot of people like contiki tours. I like contiki tours of languages and technologies. They are comfortable, well-run and give a degree of insight into a new technology or idea which just might not fit into my tight daily schedule. There are many exciting new technologies which I fail to take advantage of. The flipside of that is those same new technologies fail to gain traction in my work. Somebody probably worked really hard on those technologies, and I couldn't even be bothered recompiling it to suit my build environment.
Well there is an element of Python's culture which supports contiki tours. Python comes with batteries included. That doesn't need to stop when the programmer checks in their code. It can be extended all the way out to how Python treats new users, how Python treats those who are in a rush and how Python treats commercial organisations. Offering official Python training gives a stamp of recognition to those who have gone to the effort of learning Python's ways. For those who need to learn a new technology quickly, for an organisation wanting to make sure it can skill up its workforce, or for someone seeking recognition as an expert, Python training is part of what it means for the batteries to be included.
"Why the Foundation and not Somebody Else?"
So they don't mess it up. If you want something done properly...
"I'm still reading. Go through your arguments, I'm listening. Convince me already!"
Fantastic! The Certification Proposal has a top-down discussion of the whole thing which is the appropriate place to go now...