[Edu-sig] what is ~fluent Python?
kirby urner
kirby.urner at gmail.com
Tue Feb 2 13:15:14 EST 2016
On Tue, Feb 2, 2016 at 6:24 AM, Juliano <julianofischer at gmail.com> wrote:
> Hello, everybody!
>
> Taking advantage of the semantic redundancy =)
>
> It is common for Python programmers try to adapt Python to patterns
> learned in other languages. This can prevent them from learning powerful
> features available in the Python language.
>
> There is a very good book, called Fluent Python, written by Brazilian
> Luciano Ramalho, which addresses these issues.
>
>
Yes, totally a good book, I've been studying it quite a bit!
I second your opinion.
I used a tilde ~ to mean something like "not fluent" or
"the opposite of fluent" but that was maybe too cryptic.
What comes up for code school / night school teachers
like me is who to package Python-the-language into
learnable chunks.
I'm thinking of going with a martial arts schema where
one has "belts" of different color:
http://www.wmacenter.com/index.cfm?page=17
So what would that look like? I'm thinking maybe
something like:
White Belt: using Python as a calculator. Naming objects for later use.
print("Hello World")
Yellow Belt: installing Python, using an IDE. str, int, if / elif / else;
loops
Some understanding of big picture use of __ribs__ (special names)
Writing functions, a reading knowledge of classes. Some file i/o.
Orange: generator functions and expressions, itertools and iter( )
Designing / writing classes. Overloading such as __getitem__
or __setattr__ Full understanding of __call__ API i.e. **dict and
*sequence parameters.
Green: decorators, context managers, descriptors, properties,
class and static methods using decorator syntax, better understanding
of MRO (method resolution order).
[ skipping Blue and Purple but adding more from collections module and
other standard library goodies ]
Brown: numpy, pandas, web frameworks, more awareness of 3rd party
world, metaclasses
Black: event loops, threading, multi-processing, concurrency, extending
Python in other languages (e.g. C)
Note that "Black" does not connote high level mastery so much as a
complete understanding with experience. I.E. black belt = what's in
Fluent Python (the book).
To quote that martial arts site above:
Another common misbelief that needs to be clarified is the "black belt
as master" stereotype,. In reality, a black belt indicates the wearer
is competent in a style's basic technique.... and them come several
levels of "Black".
Kirby
>
> Juliano Fischer Naves
> Informatics Professor - IFRO
> D.Sc. Student - IC/UFF/Brazil
>
<https://mail.python.org/mailman/listinfo/edu-sig>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/edu-sig/attachments/20160202/2f2df3ce/attachment.html>
More information about the Edu-sig
mailing list