What is considered an "advanced" topic in Python?

Mike Driscoll kyosohma at gmail.com
Fri May 29 16:38:07 EDT 2015


Hi Steven,

On Friday, May 29, 2015 at 12:55:48 PM UTC-5, Steven D'Aprano wrote:
> On Sat, 30 May 2015 02:01 am, Mike Driscoll wrote:
> 
> > Hi,
> > 
> > I've been asked on several occasions to write about intermediate or
> > advanced topics in Python and I was wondering what the community considers
> > to be "intermediate" or "advanced". I realize we're all growing in our
> > abilities with the language, so this is going to be very subjective, but I
> > am still curious what my fellow Python developers think about this topic.
> 
> 
> I would consider these advanced topics:
> 
> 
> Metaclasses.
> Descriptors.
> Futures.
> Asynchronous processing, including multiprocessing and threads.
> Writing C or Fortran extensions.
> Function/code object internals.
> Byte-code hacking.
> Manipulating ASTs.
> OS-specific features like the os.exec* functions, os.fork, daemons, etc.
> Multiple inheritance, mixins, traits, etc.
> Coroutines.
> Dynamic programming.
> Neural nets.
> Distributed processing, including remote procedure calls.
> Fuzz testing.
> 
> 
> I would consider these intermediate topics:
> 
> 
> Closures.
> Using classes and functions as first-class values.
> Second-order functions.
> Decorators.
> Functional idioms (map, filter, reduce).
> Viewing byte-code using the dis module.
> Unicode, code pages, codecs and encodings.
> Regular expressions.
> SQL and dealing with databases.
> The complexities of floating point, including Decimal.
> Writing your own context managers.
> Generators and iterators.
> Unit testing, doctests, etc.
> Code generation and metaprogramming.
> Writing your own classes.
> State machines.
> The structure of URLs (they're more than just "http://blahblah.com").
> Anything to do with HTTP (client or server).
> Commandline argument processing (argparse, optparse, etc.)
> 
> Some of the intermediate topics start at an intermediate level, but can go
> on to include more advanced uses.
> 
> 
> 
> -- 
> Steven

That's a really good list of topics. Thanks so much for sharing your ideas.

Mike



More information about the Python-list mailing list