Learning Python: Some of the perennial favorite tutorials at PyCon are our beginning and intermediate Python classes -- but that is not surprising considering that almost half of the attendees at PyCon are new to the language and relatively new to Python. This year, however, we are making an effort to cater to a number of different audiences and learning styles.
For those wanting an introduction to Python, we have three different teachers with three different styles. We are excited to annouce that we will be offering Python 101 by Stuart Williams, Beginning Python by Matt Harrison, and Python For Total Beginners Using "Learn Python The Hard Way" by Zed Shaw.
First, we are pleased to announce the return of "Python 101" by Stuart Williams. Stuart is a software developer in the financial services industry and previously taught an Introduction to Computer Science instructor at the Canadian Mennonite University in Winnipeg, Manitoba. He has taught Python 101 at PyCon for a number of years to great reviews.
Second, we have Matt Harrison's "Hands on Beginning Python" and "Hands on Intermediate Python." Matt's tutorial last year on the "Meaty parts of Python" was one of the surprise hits of the tutorial schedule. For this year Matt has integrated test-driven development with his exercise-based classes to bring beginning programmers up to speed in Python. For those with more experience, Matt's "Hands on Intermediate Python" will reprise many of the meaty topics from last year's tutorial.
We are also excited to have Zed Shaw presenting "Python For Total Beginners Using 'Learn Python The Hard Way.'" While many people know Zed as a prolific writer, coder and Internet personality, not as many people know that he has been called one of the finest technical presenters currently active. Zed's "Learn Python the Hard Way" has received rave reviews, and it will be a treat to have him present it in person.
Advanced Python Classes: We have traditionally not had as many tutorials focusing on advanced Python functionality, so it was a surprise to us when our poll indicated that the number one requested subject for PyCon tutorials -- by far -- was advanced tips and tricks for using Python. With such an outpouring of interest, we did not want to disappoint. We have four tutorials that fit the bill: Advanced Python I and Advanced Python II by Raymond Hettinger, Faster Python Programs through Optimization by Mike Müller, and Doing Data Structures in Python by Howard Whitson.
Raymond Hettinger is a core Python developer and consultant. His talk from PyCon 2010, "Mastering Team Play," was rated as one of the best talks of PyCon for its clear exposition of how to use the tools in the Python standard library to solve interesting and difficult problems in a clear and Pythonic manner.
Our other presenters are similarly distinguished. Mike Müller is a regular on the PyCon tutorial lineup, with his "Faster Python Programs through Optimization" a regular sellout for its practical and example-intensive approach. Howard Whitston is an instructor at the University of South Alabama with 27 years of teaching experience. His tutorial on data structures in Python focuses on choosing the right tool -- stacks, queues, binary search trees, and priority queues -- to handle data problems both big and small.
High level, low level: Our second-most-popular topic from the poll was using Python together with C. Python and C are both powerful languages, but their focus on high versus low-level programming makes them suitable for different parts of the stack. We picked a couple of excellent tutorials to guide attendees through the wilds of memory management: A (Re-)Introduction to C for Pythonistas by Noah Kantrowitz, and Writing Python extensions in C by Noufal Ibrahim.
Noah Kantrowitz is a full-time developer at Atari, with a number of projects (including the well-known project management tool Trac) under his belt. His (Re-)Introduction to C is designed to help programmers familiar with Python and other high-level dynamic languages to get down to the bits and bytes by focusing on writing clear, concise, and idiomatic C code.
Once attendees have finished with Noah's (Re-)Introduction to C, they can move on to Noufal Ibrahim's introduction to the C-Python API. Noufal is a professional trainer in Bangalore, India and works regularly with developers who need to wrap an existing API for use with Python.
In a similar vein is Justin Heath's "Packet Crafting with Python." For years Justin was a principal engineer on Snort, the well-known network intrusion system. Justin's tutorial will dive in to the very lowest levels of networking with Python, showing how to use tools like scapy, dpkt and impacket to read, build, manipulate, and replay network data.
Web Frameworks: It should not be surprising that the next biggest area of interest came from addressing the web and the various ways Python can make it easier to create web applications. Django and Web2Py both ranked highly in terms of developer interest, with other aspects of web development also receiving a number of votes. For those working on the web, we are happy to present a variety of classes that will make your web work faster and more efficient.
- Pinax Solutions, by Daniel Greenfeld and Brian Rosner: Danny and Brian are Pinax core developers both using Pinax to develop and deploy websites every day. "Pinax Solutions" will take attendees from Pinax installation up through deployment, with instructive stops dealing with authentication, extending Pinax, media handling, and working with the Pinax and Django communities.
- Web2py Secrets by Massimo Di Pierro: Massimo is the BDFL of the Web2Py community and a professor at DePaul University in Chicago. Web2Py has been embraced by a number of developers for its core focus on getting things done. Massimo will show how Web2Py's internal design and modular architecture can be used to build rich, AJAX-ready interfaces.
- Python/Django deployment workshop by Jacob Kaplan-Moss: We are glad to include in PyCon 2011 a return of Jacob's highly rated Django deployment workshop. Attendees last year raved about Jacob's meticulous preparation and engaging style - and this year promises to be even better. Jacob is possibly the most qualified person on earth to talk about mastering Django deployment issues; come and learn from the Django BDFL himself.
Cloud computing: One of Python's strengths is that it is a popular choice for cloud computing. From Amazon AWS to Google App Engine, we are grateful to have a variety of experts teaching how to effectively leverage the cloud services available to build applications that scale.
We start with "Distributed and Cloud computing with Python" by Aaron Staley. As a cofounder of PiCloud, Aaron has extensive experience dealing with many different cloud computing solutions. Aaron will present an overview of running Python in the cloud with examples showing the use of Pyro, Oracle's Grid Engine, Google App Engine, MapReduce using Hadoop, and PiCloud's distributed function facility.
Moving from the general to the specific, the most prominent cloud computing provider today is Amazon. ThoughtWorks consultant Cosmin Stejerean will present "Deploying web applications to the cloud," focusing on the step-by-step process of moving a Django application to Amazon AWS and configuring it to take advantage of Amazon's load balancing, auto scaling, content delivery, and relational database services. Participants can use Amazon's recently released "free" development tier to gain hands-on experience deploying to the cloud.
For those focusing more on Google App Engine, we are excited to have Googler Wesley Chun presenting the "Google App Engine workshop." Wesley is an experienced speaker, writer, and consultant, and shows how to leverage the newest tools provided by AppEngine to create applications that run distributed over Google's massive data-crunching facilities.
GUI Development: Of course, we know that not all development is web development. We are glad to have professional engineer Paul Kippes teaching a two-part course on GUI development with PyQt. By the end of the course attendees will have an understanding of the Qt library and tools and be able to create simple but useful GUIs in Python.
Python 3: Another up-and-coming topic in the Python community is the movement to Python 3. Python 3 cleans up some of the "warts" of Python and makes it cleaner, lighter, and more consistent -- at the price of backwards compatibility with Python 2.
PyCon 2011 will feature a pair of tutorials focusing on Python 3, both with David Beazley as a presenter. David Beazley is best known as the author of the Python Essential Reference and the creator of SWIG. When he's not breaking the GIL, he spends his time teaching a variety of diabolical Python training courses.
The first Python 3 tutorial is a repeat of last year's "Mastering Python 3 I/O," our number-one-rated tutorial. "Mastering Python 3 I/O" takes a top-to-bottom tour of the entire Python 3 I/O system and provides practical advice for programmers porting code from Python 2 to Python 3.
"Cooking with Python 3" brings in Brian Jones, co-editor of the new all-Python-3 edition of the Python Cookbook, for a fun and interactive tour through what's new in Python 3. David and Brian will take on all a variety of challenges through a lively mix of interactive demos, examples, and discussion.
Data and Science with Python: Another consistent theme from the responses to our poll was that people want to learn more about data and science applications with Python. Our tutorial selections for PyCon 2011 were also designed to help scientists, engineers, and geographic information specialists.
Our first tutorial in this group is Mike Müller's "Scientific Python Tools not only for Scientists and Engineers." In this tutorial, Mike addresses the wealth of tools that Python offers for the interactive exploration of data, including NumPy, matplotlib, IPython, Cython, and others.
Moving to some more specific topics, we are delighted that Matthew Russell, author of O'Reilly's "Mining the Social Web" will be presenting "Mining and Visualizing Data from the Social Web with Python." Matthew regularly presents as part of his effort to get people busy hacking on social data. As he puts it, "The possibilities are immense, and I'd like to raise awareness and show people how low the bar to entry really is."
Continuing in the same sphere is Olivier Grisel's "Applied Machine Learning in Python with scikit-learn." Olivier is an R&D engineer at Nuxeo working on text analytics and natural language processing, where he uses scikit-learn to build machine learning applications for a number of different areas. Scikit-learn integrates machine learning into NumPy, SciPy, and matplotlib making it easy to integrate classical machine learning into any data-wranglers toolset.
For those working more on geographic information systems, PyCon will include Andrii Mishkovskyi's "Building your own tile server using OpenStreetMap." OpenStreetMap is a Creative Commons-licensed set of map tiles that are continually being improved by an international group of volunteers. Andrii's professional work as a GIS developer will help him walk attendees through the process of building their own Google-maps-like tile server that they can use to explore geographic points of interest.
For those wanting something more advanced, Roy Hyunjin Han's " Geospatial Computation and Visualization Cooperative Lab" is designed to move beginning GIS developers up into the ranks of the experienced by working in small groups on an extensive set of guided exercises with provided solutions.
The Meaty Parts of PyCon: Last, but certainly not least, are some of the most useful tutorials included in PyCon. Sometimes the hardest challenges are come in mastering the mechanics of an important task. For these tasks, we have a series of tutorials that will help attendees with the practical tasks associated with building and maintaining an active codebase.
Our first of these tutorials is Christopher Perkins' "Packaging, Documenting, and Distributing your Python Codebase." Christopher is a long-time developer and contributor to Turbogears, Sprox, and c5t, among others. He has the experience to help attendees make their personal and professional projects fit for release.
The second tutorial is Brandon Craig Rhodes' "Documenting Your Project with Sphinx." "Documenting Your Project with Sphinx" is a requested repeat from last year's tutorial selections, and Brandon's engaging style makes any topic - including writing documentation! - enjoyable and engaging.
Whew! It is an amazing lineup of tutorials - and PyCon 2011 will be an amazing conference. Remember, we will be capping registration for PyCon 2011 at 1500 delegates, so register today to reserve your spot.
Also, for those who have already registered, you will be able to go back in to add or specify tutorials. The ability to do so will be up shortly.