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
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.
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

Linux: Beyond ls and cd
Linux: Beyond ls and cdLinux: Beyond ls and cd
Linux: Beyond ls and cd
jacko91
 
Learn python
Learn pythonLearn python
Learn python
mocninja
 

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

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

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern Enterprise
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using Ballerina
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 

Happy Little Accidents - The Art of Debugging