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 -- stuff that you don't understand. So, the question is: how do you go from a beginning level programmer to the expert level? How do you become a guru?
This course answers this question. In it, we will be building on top of your existing basic understandingof 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 like generators, decorators, callbacks, higher order functions, context managers and others.
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.
Remember: the most important reason you're paying for a course is support. So, please ask questions in the Q&A forum if you ever get stuck. I have a maximum response time of around 15 hours -- not average, maximum. Please use this to your advantage -- ask questions and you should be able to breeze through this course and go beyond a basic level of programming to the next level where your code will take less time to write ... will be clean and much easier to maintain.
What will I learn?
- Cross-cutting Tools (logging and testing)
- Caveats in usage of lists
- Intermediate Python concepts such as decorators, generators, context managers
- Parallel programming, multithreading, synchronization, locks
- Asynchronous programming (asyncio)
- Plotting data
- Regular Expressions (and how to not have headaches when using them)
About the instructor:
- Teacher and researcher by profession
- PhD in Security and a PostDoc from Max Planck Institute for Software Systems, Germany
- 17+ years of working with computers and 15+ years of teaching experience
- 10+ years of working professionally as a Linux System Administrator/VoIP DevOp -- including 5+ years of provable track record on UpWork (with 5.0 star rating there)
- Has a basic understanding of Python but wants to take their skills to the next level
- Wants to learn the tools and techniques used by expert professional programmers
What you need to know:
You should have knowledge of basic usage of Python (variables, conditionals, loops, basic list and dictionary usage, basic file handling)
- Logging (and how to debug code in realtime) FREE PREVIEW
- Practical Activity: Logging
- Testing and Test Driven Development (TDD)
- Testing Examples
- Practical Activity: Testing
- List Mutability and Deep Copying
- Practical Activity: List Mutability
- Generators and Memory Efficiency
- Generators Case Study
- Higher-Order Functions
- Practical Activity: Generators
- Decorator Case Study - Memoize
- Practical Activity: Decorators
- Context Managers
- More on Context Managers
- Practical Activity: Context Managers
- Multithreading - Multiple Tasks Simultaneously
- Synchronization Issues and Locks
- Practical Activity: Multithreading
- Practice Activity: Locks
- Asynchronous Programming (Asyncio, Async/Await)
- Practice Activity: Asynchronous Programming
- Basics of Functional Programming, Map
- Filter and Reduce, Rationale for Functional Programming
- Practice Activity: Functional Programming
- Plotting Intro
- Plotting Case Study
- Practical Activity: Plotting
- Pattern Matching with Regular Expressions
- Modular RegExp (and How Not to Have Headaches with RegExp)
- Extracting Matched Strings with RegExp
- Practical Activity: Regular Expressions
- Course Resources Download
PhD, programmer, researcher, designer and teacher.
I have a PhD in Computer Sciences and a PostDoc from the Max Planck Institute for Software Systems. I have been programming since early 2000 and have worked with many different languages, tools and platforms.
I have an extensive research experience with many state-of-the-art models to my name. My research in Android security has led to some major shifts in the Android permission model.
I love teaching and the most important reason I upload online is to make sure people can find my content.
Mohammad Nauman Forever All Course Bundle
Unlock this bundle today to start enjoying every Mohammad Nauman course for life including every course uploaded so far and all future courses!