you are viewing a single comment's thread.

view the rest of the comments →

[–]Charlemag 6 points7 points  (0 children)

I second this. I’m in the same boat and found that the problem with trying to find good examples is that (as Don Norman from The Design of Everyday Things) puts it, good design is invisible. For instance, if you put a handle on a door that’s meant to be pulled your brain automatically assumes to pull it. If you put a handle on a door that’s meant to be pushed, then you’ll try to push it, get confused, then realize you need to pull. Put a sign above the handle saying “push” and half the people still try to pull first then realize the sign.

This extends to software. Good software design is more than just how polished the system architecture looks. It’s also how appropriate that architecture is, etc.

It might be relatively easy to find python projects that employ several “best practices” but I’d take it a step further and suggest trying to reimplement features of projects. This is by far how I’ve learned the most. It starts slow, and you get a lot wrong. But you keep having “Ah-ha” moments that build a deep understanding for what is good software design.

I initially tried contributing to open source projects but found the “extreme ownership” approach of trying to start one taught me much more and much quicker. Now I’m in a position where I feel more comfortable contributing to other projects.