Beyond basic programming : intermediate Python - Nauman, Mohammad (Packt Publishing, 2018)
"How do you go from a novice programmer to an expert? How do you become a professional? This course answers this question. In it, we will build on top of your existing basic understanding of the Python language (and programming in general). We will cover concepts that will take you to the next level of programming expertise. These will include language constructs that are typically not covered in a beginner-level course--concepts such as generators, decorators, callbacks, higher-order functions, context managers, and more. We will also discuss some tools that are not difficult but are essential to the life of a professional programmer. An example of this is logging for tracking down bugs, a simple technique that is used in all production-level software but is never touched upon in typical programming courses. We will discuss parallel programming, multi-threading, and synchronization issues--another important concept you must understand to code in a production environment. We discuss these through a case study to explain WHY you need them as well as HOW to use them."--Resource description page