SlideShare a Scribd company logo
1 of 12
Download to read offline
Happy Little Accidents
The Art of Debugging
@hamatti
Hi, I’m Juhis!
Developer. Dreamer. Adventurer.
@hamatti



Hobby Developer
Mentor @ Koodimentori
Founder @ Turku 💛 Frontend
Little Happy Accidents
or how your boss calls them: bugs
You can’t beat ‘em all - they will happen.
Debugging skills help you
+ spot ‘em
+ fix ‘em

+ patch ‘em in a PR
Logical errors vs syntax errors
Little Happy Accidents
- PRINTING -
Python <3.0: print x || Python 3.0+: print(x) || Ruby: puts x
Little Happy Accidents
- PRINTING -
Python <3.0: print x || Python 3.0+: print(x) || Ruby: puts x
Little Happy Accidents
- DEBUGGER -
Python <3.7: pdb || Python 3.7+: debugger || Ruby: pry
Happy Little Accidents - The Art of Debugging
Little Happy Accidents
- LOGGING -
Printing gives access when you’re driving.
Logging gives access to history of problems.
Tools like Elasticsearch or Bugsnag make your
life easier.
Happy Little Accidents - The Art of Debugging
Little Happy Accidents
- TESTS -
Write tests to
- prevent little happy accidents
+ create tests while developing
- make sure they don’t happen again
+ create tests after finding a bug
Little Happy Accidents
- RUBBER DUCK -
https://twitter.com/msdev/status/558006121471164416
THANK YOU!
@hamatti
http://hamatti.org

More Related Content

Similar to Happy Little Accidents - The Art of Debugging

Pythonlearn-01-Intro.pptx
Pythonlearn-01-Intro.pptxPythonlearn-01-Intro.pptx
Pythonlearn-01-Intro.pptxMrHackerxD
 
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
The Dirty Little Secrets They Didn’t Teach You In Pentesting ClassThe Dirty Little Secrets They Didn’t Teach You In Pentesting Class
The Dirty Little Secrets They Didn’t Teach You In Pentesting ClassRob Fuller
 
Py4 inf 01-intro
Py4 inf 01-introPy4 inf 01-intro
Py4 inf 01-introIshaq Ali
 
Letting your designer tweak your iOS app
Letting your designer tweak your iOS appLetting your designer tweak your iOS app
Letting your designer tweak your iOS appRobert Van Loghem
 
Linux: Beyond ls and cd
Linux: Beyond ls and cdLinux: Beyond ls and cd
Linux: Beyond ls and cdjacko91
 
Learn python
Learn pythonLearn python
Learn pythonmocninja
 

Similar to Happy Little Accidents - The Art of Debugging (12)

It Works On Dev
It Works On DevIt Works On Dev
It Works On Dev
 
Pythonlearn-01-Intro.pptx
Pythonlearn-01-Intro.pptxPythonlearn-01-Intro.pptx
Pythonlearn-01-Intro.pptx
 
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
The Dirty Little Secrets They Didn’t Teach You In Pentesting ClassThe Dirty Little Secrets They Didn’t Teach You In Pentesting Class
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
 
Don't do this
Don't do thisDon't do this
Don't do this
 
Ignite
IgniteIgnite
Ignite
 
A false digital alibi on mac os x
A false digital alibi on mac os xA false digital alibi on mac os x
A false digital alibi on mac os x
 
PyParis2017 / Performant python, by Burkhard Kloss
PyParis2017 / Performant python, by Burkhard KlossPyParis2017 / Performant python, by Burkhard Kloss
PyParis2017 / Performant python, by Burkhard Kloss
 
Py4 inf 01-intro
Py4 inf 01-introPy4 inf 01-intro
Py4 inf 01-intro
 
Letting your designer tweak your iOS app
Letting your designer tweak your iOS appLetting your designer tweak your iOS app
Letting your designer tweak your iOS app
 
Linux: Beyond ls and cd
Linux: Beyond ls and cdLinux: Beyond ls and cd
Linux: Beyond ls and cd
 
Learn python
Learn pythonLearn python
Learn python
 
clicks2conversations.pdf
clicks2conversations.pdfclicks2conversations.pdf
clicks2conversations.pdf
 

More from Juha-Matti Santala

Debugging Django @ HelPy, Juha-Matti Santala 24.5.2022
Debugging Django @ HelPy, Juha-Matti Santala 24.5.2022Debugging Django @ HelPy, Juha-Matti Santala 24.5.2022
Debugging Django @ HelPy, Juha-Matti Santala 24.5.2022Juha-Matti Santala
 
Learning Rust - experiences from a Python/Javascript developer
Learning Rust - experiences from a Python/Javascript developerLearning Rust - experiences from a Python/Javascript developer
Learning Rust - experiences from a Python/Javascript developerJuha-Matti Santala
 
Contemporary Documentation @ PyAmsterdam, 2021-03-10
Contemporary Documentation @ PyAmsterdam, 2021-03-10Contemporary Documentation @ PyAmsterdam, 2021-03-10
Contemporary Documentation @ PyAmsterdam, 2021-03-10Juha-Matti Santala
 
Contemporary Documentation @ sthml.js
Contemporary Documentation @ sthml.jsContemporary Documentation @ sthml.js
Contemporary Documentation @ sthml.jsJuha-Matti Santala
 
Contemporary Documentation, Django Day Copenhagen
Contemporary Documentation, Django Day CopenhagenContemporary Documentation, Django Day Copenhagen
Contemporary Documentation, Django Day CopenhagenJuha-Matti Santala
 
Debugging Python - Python Users Berlin 14.5.2020
Debugging Python - Python Users Berlin 14.5.2020Debugging Python - Python Users Berlin 14.5.2020
Debugging Python - Python Users Berlin 14.5.2020Juha-Matti Santala
 
Debugging Javascript - Munich Frontend Developers 13.5.2020
Debugging Javascript - Munich Frontend Developers 13.5.2020Debugging Javascript - Munich Frontend Developers 13.5.2020
Debugging Javascript - Munich Frontend Developers 13.5.2020Juha-Matti Santala
 
HelsinkiJS: 11ty + Ghost: Static Sites with Great Editor UX
HelsinkiJS: 11ty + Ghost: Static Sites with Great Editor UXHelsinkiJS: 11ty + Ghost: Static Sites with Great Editor UX
HelsinkiJS: 11ty + Ghost: Static Sites with Great Editor UXJuha-Matti Santala
 
PyCon Estonia: Contemporary Documentation
PyCon Estonia: Contemporary DocumentationPyCon Estonia: Contemporary Documentation
PyCon Estonia: Contemporary DocumentationJuha-Matti Santala
 
Contemporary Documentation - HelsinkiJS
Contemporary Documentation - HelsinkiJSContemporary Documentation - HelsinkiJS
Contemporary Documentation - HelsinkiJSJuha-Matti Santala
 
Contemporary Documentation - TampereJS
Contemporary Documentation - TampereJSContemporary Documentation - TampereJS
Contemporary Documentation - TampereJSJuha-Matti Santala
 
“Graphical Perception and Graphical Methods for Analyzing Scientific Data” - ...
“Graphical Perception and Graphical Methods for Analyzing Scientific Data” - ...“Graphical Perception and Graphical Methods for Analyzing Scientific Data” - ...
“Graphical Perception and Graphical Methods for Analyzing Scientific Data” - ...Juha-Matti Santala
 
PyCon CZ 2019 Lightning Talk: 7 Days to Ostrava
PyCon CZ 2019 Lightning Talk: 7 Days to OstravaPyCon CZ 2019 Lightning Talk: 7 Days to Ostrava
PyCon CZ 2019 Lightning Talk: 7 Days to OstravaJuha-Matti Santala
 
Inspiration, Learning and Experimentation in Codepen
Inspiration, Learning and Experimentation in CodepenInspiration, Learning and Experimentation in Codepen
Inspiration, Learning and Experimentation in CodepenJuha-Matti Santala
 
You should have FOMO: What you're missing out if you're still using Python 2.7
You should have FOMO: What you're missing out if you're still using Python 2.7You should have FOMO: What you're missing out if you're still using Python 2.7
You should have FOMO: What you're missing out if you're still using Python 2.7Juha-Matti Santala
 
OuluES Human Accelerator: Dream Workshop
OuluES Human Accelerator: Dream WorkshopOuluES Human Accelerator: Dream Workshop
OuluES Human Accelerator: Dream WorkshopJuha-Matti Santala
 
Minimum Viable Product: the workshop
Minimum Viable Product: the workshopMinimum Viable Product: the workshop
Minimum Viable Product: the workshopJuha-Matti Santala
 
Stockholm syndrome: or how I learned to love the editor
Stockholm syndrome: or how I learned to love the editorStockholm syndrome: or how I learned to love the editor
Stockholm syndrome: or how I learned to love the editorJuha-Matti Santala
 

More from Juha-Matti Santala (20)

Debugging Django @ HelPy, Juha-Matti Santala 24.5.2022
Debugging Django @ HelPy, Juha-Matti Santala 24.5.2022Debugging Django @ HelPy, Juha-Matti Santala 24.5.2022
Debugging Django @ HelPy, Juha-Matti Santala 24.5.2022
 
Learning Rust - experiences from a Python/Javascript developer
Learning Rust - experiences from a Python/Javascript developerLearning Rust - experiences from a Python/Javascript developer
Learning Rust - experiences from a Python/Javascript developer
 
Contemporary Documentation @ PyAmsterdam, 2021-03-10
Contemporary Documentation @ PyAmsterdam, 2021-03-10Contemporary Documentation @ PyAmsterdam, 2021-03-10
Contemporary Documentation @ PyAmsterdam, 2021-03-10
 
Contemporary Documentation @ sthml.js
Contemporary Documentation @ sthml.jsContemporary Documentation @ sthml.js
Contemporary Documentation @ sthml.js
 
Contemporary Documentation, Django Day Copenhagen
Contemporary Documentation, Django Day CopenhagenContemporary Documentation, Django Day Copenhagen
Contemporary Documentation, Django Day Copenhagen
 
Debugging Python - Python Users Berlin 14.5.2020
Debugging Python - Python Users Berlin 14.5.2020Debugging Python - Python Users Berlin 14.5.2020
Debugging Python - Python Users Berlin 14.5.2020
 
Debugging Javascript - Munich Frontend Developers 13.5.2020
Debugging Javascript - Munich Frontend Developers 13.5.2020Debugging Javascript - Munich Frontend Developers 13.5.2020
Debugging Javascript - Munich Frontend Developers 13.5.2020
 
HelsinkiJS: 11ty + Ghost: Static Sites with Great Editor UX
HelsinkiJS: 11ty + Ghost: Static Sites with Great Editor UXHelsinkiJS: 11ty + Ghost: Static Sites with Great Editor UX
HelsinkiJS: 11ty + Ghost: Static Sites with Great Editor UX
 
PyCon Estonia: Contemporary Documentation
PyCon Estonia: Contemporary DocumentationPyCon Estonia: Contemporary Documentation
PyCon Estonia: Contemporary Documentation
 
Contemporary Documentation - HelsinkiJS
Contemporary Documentation - HelsinkiJSContemporary Documentation - HelsinkiJS
Contemporary Documentation - HelsinkiJS
 
Contemporary Documentation - TampereJS
Contemporary Documentation - TampereJSContemporary Documentation - TampereJS
Contemporary Documentation - TampereJS
 
The Art of Side Projects
The Art of Side ProjectsThe Art of Side Projects
The Art of Side Projects
 
“Graphical Perception and Graphical Methods for Analyzing Scientific Data” - ...
“Graphical Perception and Graphical Methods for Analyzing Scientific Data” - ...“Graphical Perception and Graphical Methods for Analyzing Scientific Data” - ...
“Graphical Perception and Graphical Methods for Analyzing Scientific Data” - ...
 
PyCon CZ 2019 Lightning Talk: 7 Days to Ostrava
PyCon CZ 2019 Lightning Talk: 7 Days to OstravaPyCon CZ 2019 Lightning Talk: 7 Days to Ostrava
PyCon CZ 2019 Lightning Talk: 7 Days to Ostrava
 
I teach, therefore I learn
I teach, therefore I learnI teach, therefore I learn
I teach, therefore I learn
 
Inspiration, Learning and Experimentation in Codepen
Inspiration, Learning and Experimentation in CodepenInspiration, Learning and Experimentation in Codepen
Inspiration, Learning and Experimentation in Codepen
 
You should have FOMO: What you're missing out if you're still using Python 2.7
You should have FOMO: What you're missing out if you're still using Python 2.7You should have FOMO: What you're missing out if you're still using Python 2.7
You should have FOMO: What you're missing out if you're still using Python 2.7
 
OuluES Human Accelerator: Dream Workshop
OuluES Human Accelerator: Dream WorkshopOuluES Human Accelerator: Dream Workshop
OuluES Human Accelerator: Dream Workshop
 
Minimum Viable Product: the workshop
Minimum Viable Product: the workshopMinimum Viable Product: the workshop
Minimum Viable Product: the workshop
 
Stockholm syndrome: or how I learned to love the editor
Stockholm syndrome: or how I learned to love the editorStockholm syndrome: or how I learned to love the editor
Stockholm syndrome: or how I learned to love the editor
 

Recently uploaded

Things you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceThings you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceMartin Humpolec
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
Do we need a new standard for visualizing the invisible?
Do we need a new standard for visualizing the invisible?Do we need a new standard for visualizing the invisible?
Do we need a new standard for visualizing the invisible?SANGHEE SHIN
 
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataCloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataSafe Software
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
Spring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfSpring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfAnna Loughnan Colquhoun
 
Babel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxBabel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxYounusS2
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
Introduction to Quantum Computing
Introduction to Quantum ComputingIntroduction to Quantum Computing
Introduction to Quantum ComputingGDSC PJATK
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 

Recently uploaded (20)

Things you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceThings you didn't know you can use in your Salesforce
Things you didn't know you can use in your Salesforce
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
Do we need a new standard for visualizing the invisible?
Do we need a new standard for visualizing the invisible?Do we need a new standard for visualizing the invisible?
Do we need a new standard for visualizing the invisible?
 
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataCloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
Spring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfSpring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdf
 
Babel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxBabel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptx
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
Introduction to Quantum Computing
Introduction to Quantum ComputingIntroduction to Quantum Computing
Introduction to Quantum Computing
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 

Happy Little Accidents - The Art of Debugging