This book is suitable for all software engineering practitioners who are
interested in software design or learning more about Python. It is assumed
that the reader is already familiar with the principles of object-oriented
software design and has experience writing code.
It will appeal to team leads, software architects and senior software
engineers who want to learn good Python coding techniques to create
projects from scratch or work on their legacy systems to save costs and
The book is organized in such a way that the content is in increasing order
of complexity. The first chapters cover the basics of Python, which is a
good way to learn the main idioms, functions, and utilities available in the
language. The idea is not just to solve some problems with Python, but to
do so in an idiomatic way.
Experienced programmers will also benefit from the topics in this book, as
some sections cover advanced topics in Python, such as decorators,
descriptors, and an introduction to asynchronous programming. It will helpthe reader discover more about Python because some of the cases are
analyzed from the internals of the language itself.
Scientists using Python for data processing can also benefit from the
content of this book, and to that end, several parts of the book are dedicated
to setting up projects from the ground up, in terms of tools, configuration of
environments, and good practices to release software.