When we write code, oftentimes things are not working as expected. We followed the tutorial and yet we got an error. We introduce a new feature but something else broke.
Having to deal with bugs is inevitable. Trying to "debug" what happened or what caused the problem can be really frustrating and timewasting.
The aim of this talk is go give ways to think & steps to take when we are faced with the process of debugging.
The language for the examples is going to be Python & the tools used - from the python ecosystem.
The talk will be practical, with a lot of real-world examples.
The goal is to cover the following scenarios by showing different ways to approch the problem:
- You followed a tutorial but it's not working. What to do?
- You introduce new feature but things broke somewhere else in the project. What to do?
- You are using a popular 3rd party library but something breaks. What to do?
- A bug occurs and you have no idea what or who caused it. What to do?
- You can't fix or find the bug. What now?
- You want to generalize your debugging skills. How to do that?
We will be talking about critical changes, binary search, problem isolation, interactive debuggers, printing, testing, greping and other interesting things.