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

How to get unstuck

How to get unstuck

Regardless of how long we’ve been coding, we can bump into unexpected bugs or behavior where we can’t immediately figure out the issue. We can feel stuck. This presentation uses four real-world bugs to highlight eight key principles for getting unstuck.

Joel Clermont

July 20, 2023
Tweet

More Decks by Joel Clermont

Other Decks in Programming

Transcript

  1. J OEL C LERMONT / LA RACON US 2023 How

    to Get Unstuck ™ L E T S T A L K A B O U T m as t er i n g l ar a ve l .i o
  2. J OEL C LERMONT / @ jcl ermon t Hi,

    my name is Joel and I’m a developer ™
  3. J OEL C LERMONT / @ jcl ermon t Most

    days it’s great ™
  4. J OEL C LERMONT / @ jcl ermon t ™

    But some days… N O T S O M U C H
  5. J OEL C LERMONT / @ jcl ermon t ™

    This was just working!!
  6. J OEL C LERMONT / @ jcl ermon t Maybe

    I’m not that good 
 at this after all ™
  7. J OEL C LERMONT / @ jcl ermon t ™

    Goal: How to get unstuck
  8. J OEL C LERMONT / @ jcl ermon t ”

    ™ masteringlaravel.io
  9. J OEL C LERMONT / @ jcl ermon t ™

    Bug 1: Unknown column in factory
  10. J OEL C LERMONT / @ jcl ermon t ™

    Principle 1 
 Pay attention to formatting
  11. J OEL C LERMONT / @ jcl ermon t ™

    Principle 2 
 Read the whole error message
  12. J OEL C LERMONT / @ jcl ermon t ™

    Principle 3 
 Simplify the problem
  13. J OEL C LERMONT / @ jcl ermon t ™

    Bug 2: ZeroMQ in package
  14. J OEL C LERMONT / @ jcl ermon t ™

    Bug 2: ZeroMQ in package
  15. J OEL C LERMONT / @ jcl ermon t ™

    What do you think is happening?
  16. J OEL C LERMONT / @ jcl ermon t ™

    Is it really this package?
  17. J OEL C LERMONT / @ jcl ermon t ™

    Progress! We get an error!
  18. J OEL C LERMONT / @ jcl ermon t ™

    Principle 4 
 Eliminate layers of abstraction
  19. J OEL C LERMONT / @ jcl ermon t ™

    Bug 3: Validation rule not enforced
  20. J OEL C LERMONT / @ jcl ermon t ™

    Principle 5 
 Be a human code interpreter
  21. J OEL C LERMONT / @ jcl ermon t ™

    Bug 4: When is a CSV file not a CSV file?
  22. J OEL C LERMONT / @ jcl ermon t ™

    Principle 6 
 Don’t be afraid to dive deep
  23. J OEL C LERMONT / @ jcl ermon t ™

    Principle 7 
 Use all available tools
  24. J OEL C LERMONT / @ jcl ermon t ™

    Principle 8 
 Know where to stop
  25. J OEL C LERMONT / @ jcl ermon t ™

    8 Key Principles Use your tools Refine the problem
  26. J OEL C LERMONT / @ jcl ermon t ™

    8 Key Principles Use your tools Refine the problem Pay attention to formatting
  27. J OEL C LERMONT / @ jcl ermon t ™

    8 Key Principles Use your tools Refine the problem Pay attention to formatting Read the whole error message
  28. J OEL C LERMONT / @ jcl ermon t ™

    8 Key Principles Use your tools Refine the problem Pay attention to formatting Read the whole error message Don’t be afraid to dive deep
  29. J OEL C LERMONT / @ jcl ermon t ™

    8 Key Principles Use your tools Refine the problem Pay attention to formatting Read the whole error message Don’t be afraid to dive deep Use all available tools
  30. J OEL C LERMONT / @ jcl ermon t ™

    8 Key Principles Use your tools Refine the problem Pay attention to formatting Read the whole error message Don’t be afraid to dive deep Use all available tools Simplify the problem
  31. J OEL C LERMONT / @ jcl ermon t ™

    8 Key Principles Use your tools Refine the problem Pay attention to formatting Read the whole error message Don’t be afraid to dive deep Use all available tools Simplify the problem Eliminate layers of abstraction
  32. J OEL C LERMONT / @ jcl ermon t ™

    8 Key Principles Use your tools Refine the problem Pay attention to formatting Read the whole error message Don’t be afraid to dive deep Use all available tools Simplify the problem Eliminate layers of abstraction Be a human code interpreter
  33. J OEL C LERMONT / @ jcl ermon t ™

    8 Key Principles Use your tools Refine the problem Pay attention to formatting Read the whole error message Don’t be afraid to dive deep Use all available tools Simplify the problem Eliminate layers of abstraction Be a human code interpreter Know where to stop
  34. J OEL C LERMONT / @ jcl ermon t ™

    Know when to ask for help
  35. J OEL C LERMONT / @ jcl ermon t ™

    Your homework… A c t u a l l y t r y t h i s . I t ’ s n o t d u m b
  36. J OEL C LERMONT / @ jcl ermon t ™

    Think of it like a puzzle
  37. J OEL C LERMONT / @ jcl ermon t ™

    Are you stuck right now?
  38. J OEL C LERMONT / @ jcl ermon t ™

    If When you get stuck in the future Yo u w i l l . W e a l l d o .
  39. J OEL C LERMONT / @ jcl ermon t ™

    masteringlaravel.io/get-unstuck