What is considered an "advanced" topic in Python?

Steven D'Aprano steve at pearwood.info
Fri May 29 13:55:36 EDT 2015


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




More information about the Python-list mailing list