You find yourself fully committed to solving a problem, you think if I just do x then it's smooth sailings and it'll all be done. A couple hours pass and you've nailed x, but actually y and z seem pretty challenging, and now you have to fix x in order to make y and z as slick as possible.
You my friend are down the rabbit hole.
Handling your time well, and deadlines being a comfortable distance away, the rabbit hole can be an adventure into things you've never come across before.
For me, this usually involves discovering some super useful feature of the Pandas package. In my most recent rabbit hole adventure, I discovered that Pandas has the ability to provide you with the nth largest things from a dataframe. This tiny little bit of code can help save you writing so much more - check it out here!
The curse comes when those deadlines are a little too close for comfort. You lose sight of what you're actually trying to do, and you go diving head first into the problem.
You find yourself on the 1000th Stack Overflow page, you're looking at different modules, different blogs, different reviews. You're stuck down the rabbit hole with no way out. For me, it's tough to come out of, sometimes I just need to play it out. What I know of coding is self-taught, and those moments where it feels like there's no way out is my way of working through the problem and teaching myself ready for the future. To some extent, it's having the self-belief that I will get out eventually, I've just got to keep going (and a fresh cup of coffee doesn't hurt either).
Regardless of whether you're down a rabbit hole out of choice or not, it's not necessarily a bad thing. When you finally find your way out, odds are you've learnt something for the future. It might be that you must remember to avoid those holes, or maybe you've learnt a new approach which you had never considered before. Just ride it out and see where it takes you.
Previously published at https://www.automateall.co.uk/TheRabbitHole