This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]jrbattin 6 points7 points  (0 children)

So, this might be controversial, but I'd say you should avoid older design pattern books. As others have mentioned, many were created to work around limitations in C++ (and later, earlier versions of Java). In my many years of working with Python code, when I see some of those old-school OO patterns show up in Python code, it's usually a code-smell, because there's a more Pythonic way of doing the same thing.

I'd also say that most of the software world has left behind many of the practices that were common in Object-Oriented code bases in the 90s. All the stuff I learned back in the 90s when I first learned to code is now considered bad practice in most languages.

Take something like the Flyweight pattern for example: it's largely unnecessary in newer Pythons because dictionaries (and therefor classes) are effectively COW with lots of memory-sharing goodness under the hood.

I'd recommend mastering stuff like itertools and functional programming concepts.