Ideas for Python Authors
One reason I’m learning Python is its ecosystem. A culture of documentation and the countless learning and training resources create opportunities of growing as a developer.
There are all sorts of free and paid tutorials, books, videos, courses, and other materials on all aspects of the language, the tools, and the libraries. For example, I maintain a list of free Python books.
Still, some important intermediate to advanced topics receive little or no attention.
So, I’d like to offer some suggestions and feedback to Python authors and instructors on what may interest a hobbyist like me. Here are some ideas for topics to cover. Although I found something relevant, the material I’ve seen is still missing something.
If you know of any such resources, please let me know. Not being a visual learner I’m more interested in text-based content than videos. I also prefer books to the more structured approach of courses.
But design considerations are incidental in these examples, of which the learner sees only the final version. There’s often no explicit discussion of how the code is structured or ended up like that as the focus is on demonstrating other features, like teaching a web framework such as Django or Flask.
I’d like resources that teach how to design and structure medium to large Python systems, preferably not just in highly popular domains like web development. Something that explains how an idea evolves through successive iterations from a few lines of code or a rough specification to a large, production-quality program.
The emphasis should be on the process, the design decisions and tradeoffs that move development forward.
The books and articles I’ve seen present the steps of the methodology almost mechanically, without providing the bigger picture and a path forward in the evolution of programs.
Many books discuss example programs that use web frameworks, SQL databases, or network servers but, as a hobby programmer, I wouldn't feel confident deploying on the open web something that doesn't prevent or address at least the most common security issues.
Most of the security advice I see comes from the typical computing environments of the early days of Python, such as avoiding pickle-ing from untrusted sources. What’s missing is some advice on contemporary web apps and how to design security into Python systems.
The table of contents of the Python documentation. |
There are all sorts of free and paid tutorials, books, videos, courses, and other materials on all aspects of the language, the tools, and the libraries. For example, I maintain a list of free Python books.
Still, some important intermediate to advanced topics receive little or no attention.
So, I’d like to offer some suggestions and feedback to Python authors and instructors on what may interest a hobbyist like me. Here are some ideas for topics to cover. Although I found something relevant, the material I’ve seen is still missing something.
If you know of any such resources, please let me know. Not being a visual learner I’m more interested in text-based content than videos. I also prefer books to the more structured approach of courses.
System design
Some Python books present examples longer than the typical short code snippets of up to a few dozen lines.But design considerations are incidental in these examples, of which the learner sees only the final version. There’s often no explicit discussion of how the code is structured or ended up like that as the focus is on demonstrating other features, like teaching a web framework such as Django or Flask.
I’d like resources that teach how to design and structure medium to large Python systems, preferably not just in highly popular domains like web development. Something that explains how an idea evolves through successive iterations from a few lines of code or a rough specification to a large, production-quality program.
The emphasis should be on the process, the design decisions and tradeoffs that move development forward.
Test-driven development
Test-driven development is valuable, especially for a dynamic and interactive language like Python. I’d like to learn more on how TDD, especially the "development" part, can help shape and evolve programs besides testing them.The books and articles I’ve seen present the steps of the methodology almost mechanically, without providing the bigger picture and a path forward in the evolution of programs.
Python security
Another topic rarely covered if at all, even in advanced books, is writing secure Python code.Many books discuss example programs that use web frameworks, SQL databases, or network servers but, as a hobby programmer, I wouldn't feel confident deploying on the open web something that doesn't prevent or address at least the most common security issues.
Most of the security advice I see comes from the typical computing environments of the early days of Python, such as avoiding pickle-ing from untrusted sources. What’s missing is some advice on contemporary web apps and how to design security into Python systems.