Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Magic and Science of Debugging (RubyConf 2021)

The Magic and Science of Debugging (RubyConf 2021)

It was the best of times, it was the worst of times: it was debugging time. Debugging is an inevitable reality of writing software; every developer has had a piece of code behave unexpectedly at some point or another.

But debugging can feel like magic: Where do you start looking for the bug, and how do you know where to find it?

In this talk, we'll learn what makes debugging hard, and the cognitive process behind it. We'll also explore using the scientific method as a debugging process model in order to help us get better at finding the bugs in our own Ruby programs. Let's become better debuggers together!

53f67e3899c7ca2ca340b795cf80d3c4?s=128

Vaidehi Joshi

November 12, 2021
Tweet

Transcript

  1. @vaidehijoshi The Science + Magic of Debugging

  2. hello

  3. it’s been a minute

  4. i’m vaidehi!

  5. None
  6. None
  7. joy of learning

  8. debugging

  9. magical

  10. how do I know what I know?

  11. what are we doing when we debug?

  12. debugging

  13. problem solving

  14. 50%

  15. an inherent part

  16. debugging is hard

  17. — Brian Kernighan “Everyone knows that debugging is twice as

    hard as writing a program in the first place. So if you’re as clever as you can be when you write it, how will you ever debug it?”
  18. context

  19. “combinatorial complexity”

  20. mental model

  21. approximations

  22. what’s happening in our brains?

  23. None
  24. None
  25. the steps the programmer took

  26. bloom’s taxonomy

  27. None
  28. None
  29. None
  30. None
  31. None
  32. None
  33. None
  34. None
  35. higher order thinking

  36. None
  37. None
  38. None
  39. None
  40. bloom’s taxonomy is how we learn

  41. we climb bloom’s taxonomy while debugging

  42. when we’re debugging, we’re learning

  43. how do we gather our knowledge?

  44. None
  45. None
  46. End yes no

  47. None
  48. None
  49. None
  50. None
  51. None
  52. None
  53. None
  54. None
  55. None
  56. scientific method

  57. None
  58. None
  59. scientific method bloom’s taxonomy +

  60. bloom’s taxonomy

  61. to be good debuggers, we need to be good at

    gathering knowledge
  62. scientific method

  63. to be good debuggers, we must always check our assumptions

  64. approximations

  65. assumptions

  66. what are we doing when we debug?

  67. None
  68. learning

  69. learning applying

  70. iterative learning applying

  71. everyone can do it

  72. None
  73. make debugging more accessible

  74. debugging is not magic!

  75. we can all be great debuggers

  76. thank you!🪄💛 @vaidehijoshi