Your Future With Python
This lesson includes the following topics:
Python is a rapidly growing language that attracts programmers all over the world. In the early 1990s an International Python Conference was started, which became the principal forum for live discussion of Python's uses and development (naturally extensive discussions were also held online, as they continue to be—but face-to-face meetings are still incredibly useful, and usually more productive than mailing list dicussions).
In 2002, I was asked by Guido van Rossum to chair a new type of conference, one that involved the community members far more, and was priced to allow those who didn't have professional budgets to come along and contribute. That first PyCon, in March 2003, attracted over 250 people, and established community conferences as the preferred mechanism for meeting up with other Python users (following in the footsteps of EuroPython, which had been held in Gotheborg, Sweden, a couple of months before). I chaired the first three conferences (by which time attendance had swollen to 450) and then handed the torch to Andrew Kuchling.
At the same time, PyCons were growing up in other countries, whose Python enthusiasts started to run national PyCons, and other, smaller, conferences are now held regionally in the USA (the first three of these were PyOhio, PyTexas and PyArkansas). PyCon Ireland, Kiwi PyCon, Python Brasil, PyCon AR (Argentina), PyCon UK, PyCon Italy, and many others. The Asia Pacific region recently started a pan-Asian conference (PyCon Asia Pacific) to support Python users in that region. It seems as though soon it will be impossible to avoid Python events clashing with each other simply because there are so many in the worldwide calendar.
In 2011 PyCon had 1200 delegates, and it currently looks set to start capping growth some time in the next two to three years (there is a general feeling that over-large conventions run the risk of losing the "community" flavor that is such an important part of conferences like PyCon). PyCon even runs a financial assistance scheme that regularly helps people who would otherwise not be able to afford to travel and attend PyCon. To learn more about these conferences, the best starting point is the root PyCon web site.
There are also a growing number of local user groups throughout the world. Some such groups use the popular MeetUp system to organize their groups, as it allows people to easily sign up for meetings and allows the meeting administrators reasonable control over attendance and the like.
All these activities are, in essence, run by members of the community (though certainly the larger ones like PyCon US are assisted by professional conference companies: volunteers cannot have their depth of experience, and must often make their contributions outside office hours.
As a conference matures and the organizers acquire more experience, you will often see tutorials offered at very reasonable prices. World authorities on various aspects of Python offer tutorials to help the Python Software Foundation to raise funds through the conference.
These tutorials are an amazing bargain, and an incredible way to learn new Python skills and techniques. Many of them cannot be taken anywhere else, and would alone be worth the price of conference registration.
The talks are the "meat" of most conferences, and Python conferences are no exception. Any given conference might include papers for beginners about some more obscure aspect of the language, intermediate papers on applications, or advanced stuff on how a particular framework achieves a certain effect using aspects of Python to achieve high efficiency (or other desirable aspects of their case).
Talks will typically be thirty minutes to an hour long, including time for questions. A lot of conferences are now putting out live video streams as the talks are presented (though with more than a couple of independent tracks this can get rather demanding in bandwidth). The same video stream will be recorded, and there is a huge amount of Python-related material saved and available on the web. The primary searchable resource is the Python Miro Community, which tries to organize and index the material.
Much favored by experienced conference-goers, the hallway track is the discussions that take place between people outside the meeting rooms where talks are given. These discussions often arise completely spontaneously, but give better value than the rest of the conference. Even if you are new to conference-going, you should definitely keep your schedule open enough to take in the hallway track. And don't be surprised if some random conversation leads you to abandon your plans and use the hallway track instead.
Many conferences now set aside space for participants to use for activities of their own choice. There are particular rules traditionally associated with the term "open space," but sometimes (to the annoyance of purists) the Python community simply interprets it as "rooms you can use for pretty much any conference-related activity." It is not unusual for speakers to invite interested audience members to an open space session where their questions can be answered in a more participative framework. You can get to meet some anazing people in open space.
Often the most entertaining sessions of the whole conference, the lightning talk sessions use five-minute slots in which speakers, who can often only sign up in person at the conference, must complete their presentation within the slot or be cut short by the session chairman.
If you are interested in becoming a conference speaker, presenting a lightning talk is a good way to dip a toe in the water. Audiences are very forgiving to new speakers and those who are not presenting in their first language. Topics are often light-hearted (one I particularly remember was "How I replaced myself with a small Python script"), and quite often introduce you to novel technologies that you would otherwise not have come across. Because the talks are short, the sessions go by quickly, and every speaker gets a round of applause.
These are usually evening sessions, not formally organized but often using rooms in the conference venue, where people with a common interest in one specific area (testing, Django, numerical computing, Twisted networking, ...) get together and just share information in any suitable way. The Testing BOF has become a tradition on Saturday night at PyCon US, and runs lightning talks all of its own. In 2011 Testing BOF speakers were required to wear a white lab coat.
Conferences are often followed by sprints—focused efforts on getting some aspect of a project up and running, by a team that might be scattered around the world when not actually at the same conference.
Sprints are a great place to learn about existing code bases: you can often get to talk with and learn from the people who wrote and/or are maintaining the code. Once you have met some of the people who contribute to the development, it is far less intimidating to join in and become a contributor yourself. The open source world only exists because people like us roll up their sleeves and start building things.
Whether local, national, or regional, Python conferences are an amazing way to improve your Python knowledge and increase your skill level. They are social as well as technical events, and when you become a regular conference-goer you will doubtless find, as do I, that there are people you look forward to meeting again and again, even if you only ever meet them at conferences.
Python is employed in such diverse ways, it is hard to think of an area of life that isn't affected by it one way or another. Google is well-known as an organization where Python is used extensively. Many organizations, including most of the USA's 100 largest newspapers, use a Python-based web framework called Django to build their web sites and maintain journalistic content.
In the scientific and engineering world, Python is equally versatile. The SciPy and Numpy packages put blazingly fast calculations and publication-quality graphics into the hands of scientists. This is done by using Python as a "glue" Language to hold together high-speed logic written in compiled languages like Fortran and C, with most of the computation taking place in the compiled code.
| Note | The PyPy Python project is now reliably producing benchmark results that are several times faster than those of the CPython interpreter, although at present only available for Python 2.7. If this progress continues, Python could become a viable language in which to write numerical algorithms! |
| Modern Python | PyPy has come a long way since this was written. It now supports Python 3.x and continues to deliver impressive performance improvements over CPython for many workloads. Separately, the mypyc compiler and the Cython project also allow Python code to be compiled to C extensions for further speed gains. |
If you enjoy programming and want to carry on doing it, you will probably always find something to do. Programming is a great career if you like to find out about how things are (or can be) done. Of course, for many people programming will only be a part of their job, but that does not mean they can't enjoy it. Python can be used in so-called "embedded devices," the computers that are increasingly built into other equipment to act as a controlling element. Technicians of all kinds will find themselves thrust into programming as a part of their jobs, and having the introduction to Python that this Certificate Series has produced is a great introduction to programming generally (if you can program in Python, it is much easier to learn other languages).
If you want to know what jobs are currently available, the Internet is as usual your friend. The Python Software Foundation maintains a Jobs Board on which employers post jobs. Track that page for a while to get an idea of the range of jobs likely to be available, but many employers never find out about the Jobs Board. How do you find the other jobs? Well, the conventional ways all apply. For example, you can go to job search sites and enter "Python" as a keyword. You will find that many large companies are looking for Python skills.
In fact, as these words are being written, there is a crisis in software development. Many large corporations have radically reorganised their software development efforts on the assumption that work formerly done by juniors will in future be performed by LLMs–large language models. Developers have been encouraged, and in some cases required, to use such systems. Since employers were silly enough to use AI consumption as a measure of programmer worth it was unsurprising that, for example, Uber exhausted its entire planned 2026 AI coding budget in just four months.
As a student of these classes you have, over the course of your studies, been required to demonstrate understanding of the material and practical skills in applying it. You can show actual code you have written, and can prove that you understand it and can talk sensibly about its structure. Even if you have not been studying for vocational reasons, I hope that you have found these methods helpful; if you're looking for work, they will set you apart from applicants whose programming experience is limited to copying and pasting code. Emphasize your practical experience: employers should regard it as valuable.
This lesson is not intended to recruit Python core developers, but I am quite happy to encourage people with a sense of adventure to consider becoming one. Some beginners feel that they will not be wanted, or that their efforts will be unappreciated. This can seem so if the new developer's contributions are not reviewed sensitively, but people being people, this does not necessarily always happen.
Although not all developer-specific, most of the lists mentioned on the Python Mailing Lists page are concerned with some aspect of Python development or applications. The one exception is the general "comp.lang.python" list, which is a broad church in which you might expect to find anything from using a C debugger to whether Schrodinger's cat really does exist in two parallel states. It is fairly eclectic, and threads can ramble all over the place.
There is a new core-mentorship mailing list started specifically so that those with an interest in becoming a developer could interact with a gentler group than the whole developers list, and get a more welcoming reception. Once they have been inducted into the necessary processes, they are introduced to the rest of the developer community. Introductions are easier once someone has made an initial contribution.
Do not make the mistake of assuming that because the CPython interpreter is written in C you have to know the C language before you become a core contributor. The standard library and its test suite have lots of code written entirely in Python, and it needs maintenance just like everything else. Your Python skills are needed if you want to join the open source community!
There is quite a bit of material intended to help and encourage the new or would-be Python developer, concentrated in the python.org site. Although there may be a steep learning curve, contributing to Python's development can give you awesome rewards in terms of self-respect, and will also earn you kudos in the open source world that should transfer into other areas too.
There is no stored collection of tips and wrinkles for you to rummage in (though the web can be very helpful in this respect). Our tips and wrinkles have been passed on as you have proceeded through your course work, and through the training materials you have used. They are embedded in the code you have written, and muscle memory plays a part (which is why I encouraged you to type the code in rather and just pasting it in).
You may even by now have begun to develop some sense of what is and is not "Pythonic", which should have improved the quality of your code somewhat. The simple rules continue to apply: as you write, express your code in the simplest way you can. Code that is easy to write is easy to read, and code that is easy to read is easy to maintain. Code that is easy to maintain saves money in the long run because computer costs nowadays tend to be dominated by the costs of the people to program and run the systems.
Thus, if you stick with what you have learned, you should be able to get Python to help you do pretty much whatever you want it to do. That practical skill is the added value behind these classes.
This is the final lesson in the fourth course of our Python Certificate Series. We sincerely hope that you have enjoyed these courses, and that you feel better able to tackle Python programming as a result.
