Pythondebugging
Pythondebugging
What is debugging?
The debugging mindset
Common types of bugs (syntax errors, runtime errors, logical errors)
Introduction to debugging tools
2: Built-in Debugging Tools
Using print statements for basic debugging
The pdb debugger (step-by-step execution, setting breakpoints, examining variables)
Using the logging module for structured logging
3: Exception Handling
Introduction to exceptions (try-except blocks)
Common exceptions in Python
Using exceptions for robust error handling
Raising custom exceptions
4: Advanced Debugging Techniques
Debugging with linters and static code analysis tools
Using a debugger with a graphical user interface (GUI)
Debugging asynchronous code
Debugging multithreaded code
5: Debugging Best Practices
Writing code with debuggability in mind
Using version control systems (Git) for tracking changes
Debugging through effective logging
Testing strategies for catching bugs early
6: Case Studies and Exercises
Real-world debugging scenarios from various Python applications
Hands-on exercises to practice the learned techniques
Debugging challenges to test your problem-solving skills
Total :16 hours
1: Introduction to CI/CD
Traditional software development lifecycle vs. CI/CD approach
Benefits of CI/CD: Faster feedback loops, improved code quality, reduced risk of regressions
Key stages of a CI/CD pipeline: Version control integration, builds, automated testing,
deployment
2: Introduction to Jenkins
Introduction to Jenkins: Open-source automation server for CI/CD pipelines
Setting up and configuring Jenkins
Jenkins user interface and core functionalities
3: Building CI/CD Pipelines with Jenkins
Introduction to Jenkins Pipelines: Declarative (Jenkinsfile) vs. Scripted Pipelines
Building pipelines with common stages: Code checkout, build execution, unit testing, code
coverage analysis
Using Jenkins Pipeline DSL (Domain Specific Language) for defining pipeline stages and
steps
4: Integrating with Version Control and Build Tools
Integrating Jenkins with version control systems (Git integration for triggering builds on code
changes)
Using Jenkins with popular build tools (Maven, Gradle, npm) to automate builds
Total : 8 hours