Suggested Tutorial Topics
-------------------------
Here are ideas we've collected from surveys (newest at the top):
- [PyCon 2012 as part of Tutorial Evaluations](/2013/tutorials/suggested_topics_2012/#pycon_2012_tutorial_evaluations)
- [PyCon 2012 Guidance Survey in August 2011](/2013/tutorials/suggested_topics_2012/#pycon_2012_guidance_survey_in_august_2011)
- [PyCon 2011 during the conference](/2013/tutorials/suggested_topics_2012/#pycon_2011_conference_evaluations)
- [PyCon 2011 during tutorials](/2013/tutorials/suggested_topics_2012/#pycon_2011_tutorial_evaluations)
#### PyCon 2012 Tutorial Evaluations
The following are suggestions for future tutorial topics gathered as part of tutorial evaluations at PyCon 2012, lightly organized into groups:
- Best practices, do's and don'ts (Django and general Python Dev), continuous integration, agile development, development methodologies for startups and small teams
- Web frameworks
- Django (advanced)
- Django Views
- Setting up a Django server from Scratch
- Comparsion of Python Frameworks
- Virtualenv and PIP
- web2py
- Pyramid
- websockets
- scalability
- GUI
- PyQt,
- GUIs
- GUIs PyQt, wxPython, etc
- GUI development Language bridges (PyObjC, .NET, C)
- SQL
- SQL Alchemy
- PyDATA
- More on pydata
- Google Analytics
- Google Analytics and Python
- Data analysis, Big Data, UI design using HTML5 with javascript as the new platform, javascript and Python
- Redis
- Data mining related.
- Practical NLTK tutorial
- big data and machine learning.
- Python/Hadoop interface libraries (mrjob?)
- IDE
- Using PyCharm
- IDE options for developers (Comparison)
- Diagnostics/Opitmizations
- Using the logging module and testing
- Advanced debugging techniques.
- performance optimizations
- argparse hands-on, logging subsystem hands-on
- Profiling python code with real-world examples of code that isn't written efficiently, and is improved as part of the tutorial. I would also like to see a tutorial on intermediate-advanced usage of Exceptions. A tutorial on how NOT to write bad python code.
- PyPy hacking
- Python Ecosystem
- Building consistent web development environments with vagrant. Getting up to speed with pycrypto (e.g. using public key encryption to generate user licenses). Python and cross-platform (desktop) app development: options for embedding python runtimes, writing models in python and view/controllers in native code, using python as your app's scripting language, etc.
- ctypes for fun and profit
- Programmming models
- Functional programming with Python
- more/different advanced python topics
- More on general programming advice at an intermediate level such as good practice on designing classes and testing practices.
- hand-ons and in-depth topics
- twisted
- arduino talks, beaglebone with python
- Parallel/Distributed Computing
- more performance stuff, that makes sense.
- Distributed parallel computation - cloud, message passing, large scale stuff. Auto-scaling, too.
- hand-ons and in-depth topics
- Visualization/Gaming
- Generating map data (not just web mapping with existing web data).
- More science/plotting/visualization topics.
- Python for the GIS community
- ArcGIS.
- Python specific mapping tools (Mapnik, QGIS, etc)
- practical data analysis
- Advanced video games ... Eve, Maya.
- Commercial offerings
- Boto, and other integration of Python with actual company offerings
#### PyCon 2012 Guidance Survey in August 2011
As of September 7th, 2011
- Business
- Business-related or non-programming content for programmers who are independent contractors or work in a small environment. Things like running your own consultancy, managing clients and expectations, project management, identifying tactical advantages that Python can bring to your business.
- Documentation Tools
- Project development using Python. i.e. project planning, prototyping, development, test, release in a Pythonic method, perhaps using Python in an Agile framework.
- Community
- How to Get Involved in Project X (lead in to a sprint and ongoing participation) This could be any project with a leader willing to give a tutorial walkthough of the code and the history of the project.
- How to participate in the Python community (uploading packages, how to submit & fix bugs, etc.)
- Sprint lead-in (So you want to get involved in project so & so).
- Core Python
- A detailed look at the implementation at the C Interpreter, and understanding the relationship between the Python and the C implementation.
- Advanced Python 1 and 2
- Advanced Python concepts
- Advanced Python, fiddling with AST, advanced data structures, distributed processing and data mining
- Anything about the Python language to deepen my understanding
- Core Python Development
- Decorators and properties
- Distributed Python
- Embedding python in applications distributing computing
- Hidden Treasures of stdlib tutorial
- High performance python
- Killer features of Python 3
- Language handling overviews of python structure
- Migrating to Python 3
- More about C extensions.
- Porting to Py3 and handing dual python 2/3 codebases
- Python 3
- Python 3 porting
- Python C API
- Python and C++ integration
- Review of the standard library, what tools are available to us in Python
- The standard library in-depth
- Things I might not know I can do with the standard library.
- Using the data structures in Python (not a tutorial on what data structures are)
- Wrapping C libs in python, Cython / ctypes
- Data
- AST Manipulation
- Anything having to do with maps
- BigData (mapreduce, parallelism, etc.)
- Data visualization
- Database connectivity and plugging in to things like GIS and maps
- GIS
- Large scale data processing & visualization
- NoSQL
- Non-rel
- SQLAlchemy
- Statistics in/with Python
- Storage with Python
- ZODB
- data visualization with python and other tools
- Deployment
- Automated / scripted deploy (Chef? Puppet? Fabric?)
- Best Practices on deploying projects (especially web apps).
- Continous Integration
- Fabric, gunicon
- Python webapp deployment using vagrant, chef, fabric, etc
- Tutorials to do specific things: automate a Unix Server build, build an ecommerce site in DJango
- Development
- "Learning X for Python Developers" (where X is a not-necessarily-python tool).
- A good intro to C class
- A patterns, algorithms and recipes class discussing common ways of generalizing problems.
- AI programming in Python
- API Design
- Advanced language techniques
- Anything on machine learning or genetic programming.
- Build A Compiler in Python
- Build A Processor Emulator in Python
- Computer Vision topics
- Concurrency
- Continuous Integration
- DevOps
- Front-end integrations
- Full stack web application testing (unit, browser, etc)
- Game Development
- High performance computing
- Jython Intro
- Machine learning
- Multiprocessing
- Multiprocessing with Python
- NLTK (Natural language toolkit
- Novice to Ninja
- Python toolchain: virtualenv, pip, nose, etc
- Python web development basics
- Real time web development with support of asynchronous longer running tasks
- Redis + Socketio + Gevent == Realtime web
- Social Network related development
- Test driven development
- Tools to make web development easier
- Tutorial for people coming to python from other languages - advantages, disadvantages, what to watch out for, being pythonic, etc.
- Web Frameworks
- Writing DSLs
- General
- Graph theory
- In-depth dives into limited subject matter.
- More advanced talks
- Python idioms
- The same instructor teach a tutorial in the same format, but at an advanced level.
- Thinking As a Programmer - Taking ideas and dissecting them (the how to of dissecting programs before putting them into code.
- Writing great python code
- more advanced python (less application / framework specific)
- Interface / Visual design
- 3d related material
- GUI programming
- Graphics applications
- HTML 5
- Microsoft Kinect device and pattern recognition.
- Nodebox
- Visualisation tutorials
- Visualization w. Python
- Web-based app / mobile / django or django alternatives
- making music with python
- Packaging
- Migrating to PyPy
- Migrating to distutils2 + distribute
- PyPy
- Pypy internals
- Python Packages/Frameworks
- A SciPy exclusive tutorial would be great, or a combined Numpy/SciPy exclusive tutorial.
- Cython
- Django ORM optimizations
- Django internals
- Django tutorials - beginner, intermediate and advance level
- More on Pinax, Pyramid and Turbogears (if they get Turbogears moved over to Pyramid).
- More packaging stuff. Maybe a tutorial about pyramid
- PyCuda
- Pygame
- Pyjamas
- Pylons
- Pyramid, SQLAlchemy, Celery
- Python OpenGL
- SciPy/NumPy
- Twisted Matrix
- ctypes, Cython and pyrex
- writing web applications in Pyramind
- Security
- Defending Your App From Attacks (ex. timing attack)
- Servers / Sys Admin
- AWS
- Advanced server management/deployment
- Configuration automation (chef, puppet)
- Distributed / high performance computing
- EC2
- Eucalyptus or OpenStack
- Maybe address packages like chef or libCloud
- Memory debugging
- More stuff about distributed systems and how to build them
- Network programming and libraries (twisted, gevent, etc)
- Python for sysadmins
- Scaling, dealing with caching, etc.....
- System/network level programming with Python.
- Testing, Cloud, Operations, SysAdmin
- eventlet / gevent
- wsgi
- Testing
- How Python works with web interfaces, like selenium.
- Intermediate Django Unit testing
- More packet crafting geared towards QA
- Testing
- Testing Frameworks
- Unit testing
- Unit testing web applications
#### PyCon 2011 Conference Evaluations
"Please list 3 tutorial subjects you would like to attend."
- Python 3
- SciPy/NumPy
- Graph theory
- Statistics in/with Python
- Testing Frameworks
- Web Frameworks
- API Design
- intermediate python
- writing web applications in Pyramind
- Advanced server management/deployment
- Full stack web application testing (unit, browser, etc)
- Large scale data processing & visualization
- Redis + Socketio + Gevent == Realtime web
- Python webapp deployment using vagrant, chef, fabric, etc
- Unit testing web applications
- Python idioms
- Test driven development
- Core Python Development
- AST Manipulation
- Writing DSLs
- ctypes, Cython and pyrex
- making music with python
- data visualization with python and other tools
- Django
- SQLAlchemy
- Pyramid
- porting to Python 3
- distributing Python apps
- Anything having to do with maps
- Anything having to do with django
- Advanced Python
- c extensions
- Non-rel
- A good intro to C class
- A basic Django class
- Python 3 porting
- High performance computing
- Django internals
- Django
- Core Python development
- advanced python
- real time web apps
- sqlalchemy
- Pyramid
- ZODB
- Testing
- PyCuda
- Python C API
- Python OpenGL
- Django/Pinax
- Python 3
- EC2
- DevOps
- Concurrency
- PyPy
- Machine learning
- BigData (mapreduce, parallelism, etc.)
- Advanced Python concepts
- Pygame
- AI programming in Python
- Build A Compiler in Python
- Build A Processor Emulator in Python
- Defending Your App From Attacks (ex. timing attack)
- NLTK
- numpy, data analysis, specific machine learning topics
- Nodebox
- Advanced Python data structures
- Visualisation tutorials
- Network programming and libraries (twisted, gevent, etc)
- Python toolchain: virtualenv, pip, nose, etc
- The standard library in-depth
- Multiprocessing with Python
- Porting to Py3 and handing dual python 2/3 codebases
- Configuration automation (chef, puppet)
- GIS
- Hidden Treasures of stdlib tutorial
- Cpython or pypy internals
- deep dive into scipy/numpy
- Pylons
- SQLAlchemy
- "Writing great python code"
- HTML 5
- Django
- eventlet / gevent
- Using the data structures in Python (not a tutorial on what data structures are)
- Anything about the Python language to deepen my understanding
- Review of the standard library, what tools are available to us in Python
- Django
- NLTK or similar tools
- Statistical analysis with Python
- More networking
- 102, 201, 202 level python coding
- Packaging
- Documentation Tools
- Advanced language techniques
- Novice to Ninja
- Scaling, dealing with caching, etc.....
- Jython Intro
- SQLAlchemy
- Decorators and properties
- Django ORM optimizations
- SQL, or PostgresSQL specifically
- WSGI and webframework, aka Pyramid
- Porting to python3
- Memory debugging
- Distributed / high performance computing
- Standard Library
- A 2nd Intermediate tutorial
#### PyCon 2011 Tutorial Evaluations
"What tutorial topics would you like to see in the future?"
- Graph database-backed Web applications.
- Data visualization
- Business-related or non-programming content for programmers who are independent contractors or work in a small environment. Things like running your own consultancy, managing clients and expectations, project management, identifying tactical advantages that Python can bring to your business.
- real time web development with support of asynchronous longer running tasks
- Anything having to do with maps
- I would like to see the same instructor teach a tutorial in the same format, but at an advanced level.
- A SciPy exclusive tutorial would be great, or a combined Numpy/SciPy exclusive tutorial.
- Migrating to PyPy
- Continous Integration
- Migrating to Python 3
- How to participate in the Python community (uploading packages, how to submit & fix bugs, etc.)
- Sprint lead-in (So you want to get involved in project so & so).
- more experienced topics, and topics for more experienced
- More stuff about distributed systems and how to build them
- Nodebox
- Advanced Python 1 and 2
- More topics related to Django
- Deployment, tools to make web development easier
- Visualization w. Python
- more aws, with automated/scripted deploy (chef? puppet? fabric?) Perhaps also Eucalyptus or OpenStack
- 3d related material
- High performance python
- More multiprocessing, more "Learning X for Python Developers" (where X is a not-necessarily-python tool).
- sqlalchemy, unit testing
- embedding python in applications distributing computing
- Testing, Cloud, Operations, SysAdmin
- Wrapping C libs in python, Cython / ctypes
- More packaging stuff. Maybe a tutorial about pyramid
- More python 3.
- wsgi
- Python!
- more language handling overviews of python structure
- Something using the NLTK (Natural Language Toolkit). Something using the Microsoft Kinect device and pattern recognition.
- Nodebox!
- System/network level programming with Python.
- Computer Vision topics
- Cython
- web-based app dev, django or equivalent specific
- Tutorials to do specific things: automate a Unix Server build, build an ecommerce site in DJango
- Intermediate Django Unit testing
- Thinking As a Programmer - Taking ideas and dissecting them (the how to of dissecting programs before putting them into code.
- GUI programming
- web-based app / mobile / django or django alternatives
- Distributed Python
- web-based applications, more django (or equiv) content
- more django/python framework/front-end integrations/web-based applications.
- python language specific
- Python web development basics
- pyjamas
- Game Development
- advanced stuff
- Django tutorials - intermediate and advance level
- I am interested in Social Network related development.
- More advanced talks
- Things I might not know I can do with the standard library.
- Killer features of Python 3
- Migrating to PyPy
- Migrating to distutils2 + distribute
- Continuous Integration
- How to Get Involved in Project X (lead in to a sprint and ongoing participation) This could be any project with a leader willing to give a tutorial walkthough of the code and the history of the project.
- Python 3 porting
- storage with Python
- Pyramid, SQLAlchemy, Celery
- Best Practices on deploying projects (especially web apps).
- Tutorial for people coming to python from other languages - advantages, disadvantages, what to watch out for, being pythonic, etc.
- more advanced python (less application / framework specific)
- SQLAlchemy
- Advanced Python, fiddling with AST, advanced data structures, distributed processing and data mining
- Maybe more about C extensions.
- Project development using Python. i.e. project planning, prototyping, development, test, release in a Pythonic method, perhaps using Python in an Agile framework.
- A detailed look at the implementation at the C Interpreter, and understanding the relationship between the Python and the C implementation.
- A patterns, algorithms and recipes class discussing common ways of generalizing problems.
- Graphics applications
- Maybe address packages like chef or libCloud
- a NoSQL smackdown?
- pinax workshop?
- Anything on machine learning or genetic programming.
- more advanced stuff
- How Python works with web interfaces, like selenium.
- Fabric, gunicon
- python and c++ integration
- python for sysadmins / more intermediate level courses
- more packet crafting geared towards QA
- Testing
- More on Pinax, Pyramid and Turbogears (if they get Turbogears moved over to Pyramid).
- Database connectivity and plugging in to things like GIS and maps make two topics.
- In-depth dives into limited subject matter. The subjects, of course, must be immediately relevant to whatever-it-is I'm wanting to learn at the time. ;)
- An advanced-level Django tutorial would be very cool
- Twisted Matrix