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

    View Slide

  2. J OEL C LERMONT / @ jcl ermon t
    Hi, my name is Joel


    and I’m a developer

    View Slide

  3. J OEL C LERMONT / @ jcl ermon t
    Most days it’s great

    View Slide

  4. J OEL C LERMONT / @ jcl ermon t

    But some days…
    N O T S O M U C H

    View Slide

  5. J OEL C LERMONT / @ jcl ermon t

    This was just working!!

    View Slide

  6. J OEL C LERMONT / @ jcl ermon t
    Maybe I’m not that good

    at this after all

    View Slide

  7. J OEL C LERMONT / @ jcl ermon t
    You are not alone

    View Slide

  8. J OEL C LERMONT / @ jcl ermon t

    View Slide

  9. J OEL C LERMONT / @ jcl ermon t

    Goal: How to get unstuck

    View Slide

  10. J OEL C LERMONT / @ jcl ermon t

    8 Key Principles

    View Slide

  11. J OEL C LERMONT / @ jcl ermon t


    masteringlaravel.io

    View Slide

  12. J OEL C LERMONT / @ jcl ermon t

    Story time

    View Slide

  13. J OEL C LERMONT / @ jcl ermon t

    Bug 1: Unknown column in factory

    View Slide

  14. J OEL C LERMONT / @ jcl ermon t

    View Slide

  15. J OEL C LERMONT / @ jcl ermon t

    View Slide

  16. J OEL C LERMONT / @ jcl ermon t

    View Slide

  17. J OEL C LERMONT / @ jcl ermon t

    View Slide

  18. J OEL C LERMONT / @ jcl ermon t

    View Slide

  19. J OEL C LERMONT / @ jcl ermon t

    View Slide

  20. J OEL C LERMONT / @ jcl ermon t

    View Slide

  21. J OEL C LERMONT / @ jcl ermon t

    Principle 1

    Pay attention to formatting

    View Slide

  22. J OEL C LERMONT / @ jcl ermon t

    Principle 2

    Read the whole error message

    View Slide

  23. J OEL C LERMONT / @ jcl ermon t

    View Slide

  24. J OEL C LERMONT / @ jcl ermon t

    Principle 3

    Simplify the problem

    View Slide

  25. J OEL C LERMONT / @ jcl ermon t

    Bug 2: ZeroMQ in package

    View Slide

  26. J OEL C LERMONT / @ jcl ermon t

    Bug 2: ZeroMQ in package

    View Slide

  27. J OEL C LERMONT / @ jcl ermon t

    What do you think is happening?

    View Slide

  28. J OEL C LERMONT / @ jcl ermon t

    Is it really this package?

    View Slide

  29. J OEL C LERMONT / @ jcl ermon t

    Progress! We get an error!

    View Slide

  30. J OEL C LERMONT / @ jcl ermon t

    Principle 4

    Eliminate layers of abstraction

    View Slide

  31. J OEL C LERMONT / @ jcl ermon t

    Bug 3: Validation rule not enforced

    View Slide

  32. J OEL C LERMONT / @ jcl ermon t

    View Slide

  33. J OEL C LERMONT / @ jcl ermon t

    View Slide

  34. J OEL C LERMONT / @ jcl ermon t

    View Slide

  35. J OEL C LERMONT / @ jcl ermon t

    View Slide

  36. J OEL C LERMONT / @ jcl ermon t

    View Slide

  37. J OEL C LERMONT / @ jcl ermon t

    Principle 5

    Be a human code interpreter

    View Slide

  38. J OEL C LERMONT / @ jcl ermon t

    Bug 4: When is a CSV file not a CSV file?

    View Slide

  39. J OEL C LERMONT / @ jcl ermon t

    View Slide

  40. J OEL C LERMONT / @ jcl ermon t

    View Slide

  41. J OEL C LERMONT / @ jcl ermon t

    View Slide

  42. J OEL C LERMONT / @ jcl ermon t

    View Slide

  43. J OEL C LERMONT / @ jcl ermon t

    View Slide

  44. J OEL C LERMONT / @ jcl ermon t

    Principle 6

    Don’t be afraid to dive deep

    View Slide

  45. J OEL C LERMONT / @ jcl ermon t

    Principle 7

    Use all available tools

    View Slide

  46. J OEL C LERMONT / @ jcl ermon t

    Principle 8

    Know where to stop

    View Slide

  47. J OEL C LERMONT / @ jcl ermon t

    View Slide

  48. J OEL C LERMONT / @ jcl ermon t

    8 Key Principles
    Use your tools Refine the problem

    View Slide

  49. J OEL C LERMONT / @ jcl ermon t

    8 Key Principles
    Use your tools Refine the problem
    Pay attention to formatting


    View Slide

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


    View Slide

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


    View Slide

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

    View Slide

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


    View Slide

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


    View Slide

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


    View Slide

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

    View Slide

  57. J OEL C LERMONT / @ jcl ermon t

    Know when to ask for help

    View Slide

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

    View Slide

  59. J OEL C LERMONT / @ jcl ermon t

    Think of it like a puzzle

    View Slide

  60. J OEL C LERMONT / @ jcl ermon t

    Are you stuck right now?

    View Slide

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

    View Slide

  62. J OEL C LERMONT / @ jcl ermon t

    masteringlaravel.io/get-unstuck

    View Slide