More Information
  • Cross-cutting tools (logging and testing)
  • Caveats in using lists 
  • Intermediate Python concepts such as decorators, generators, and context managers
  • Parallel programming, multithreading, synchronization, and locks 
  • Asynchronous programming (asyncio) and data plotting 
  • Regular expressions (and how to avoid headaches when using them)

So you have taken an initial programming course or have learned the basics on your own. However, when you look at other people's code, or listen to their discussions, you see many concepts that seem alien and that you don't understand. So, the question is: 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.
Closely related to this, a highly important concept in today's programming practice is the idea of asynchronous programming, more commonly known as asyncio. Python and JavaScript, two of the most influential languages in today's development, are heavily focused on this new paradigm and we will cover this in a very intuitive, easy-to-understand manner.

All the code files are placed at

Style and Approach

For all concepts, this course is designed into a case-based teaching and Problem-based Learning approach and explains why we need the concepts we're using and how everything fits together.

  • Take your Python skill to the next level
  • Master cross-cutting tools (logging and testing)
  • Use asynchronous programming (asyncio)
  • Plot data
  • Modular Regular Expressions
Course Length 3 hours 9 minutes
ISBN 9781838559458
Date Of Publication 18 Dec 2018


Dr. Mohammad Abdur Razzaque

Dr. Mohammad Abdur Razzaque is a senior lecturer in the School of Computing and Digital Technologies, Teesside University, UK. He has more than 14 years of research and development and teaching experience on distributed systems (Internet of Things, P2P networking, and cloud computing) as well as experience in cybersecurity. He is an expert in end-to-end (sensors-to-cloud) IoT solutions. He offers consultancy in the areas of IoT solutions and the use of machine learning techniques in businesses. He has successfully published more than 65 research papers in these areas. He holds a PhD in distributed systems (P2P wireless sensor networks, mobile ad hoc networks) from the School of Computer Science and Informatics, UCD, Dublin (2008).