People will tell you that there's no such thing as a bad question, but that's not true. Anyone who has said to you "There are no bad questions!" is only trying to make you feel better because you just asked a bad question. Of course there are ridiculous questions – the trick is learning not to be embarrassed of them.
Asking basic and (retrospectively) obvious questions is a natural, unavoidable part of learning – literally everyone who learns something new will ask them. The trouble with obvious questions is that we think they make us look like oblivious people. They don't, but we feel this way anyway because we're just monkeys trying to make the flashy lights change on rocks we tricked into thinking.
And when we're too afraid to ask those questions in public, we turn to the one thing that we know for a fact has seen more ridiculous questions than anything else in the world and remains judgement-free: Google.
Google is an incredible tool for developers. But it isn't a nuanced tool – it has no understanding of our knowledge level or background, or of the context of the problem we're stuck on. It don't know what we've tried already or what won't be a viable solution for our codebase. We get broad, sweeping results for specific, subtle questions. The information we find won't always be relevant – or even necessarily accurate.
Sometimes, a broad answer is all we need, and that's great – we can snag some code from a Stack Overflow thread and be on our way. But I've found, more often, it leads me down a rabbit hole of blog posts and forum replies about situations that are almost like the one I'm dealing with, but not really. Sometimes I can wrangle a usable answer out of them...and sometimes I get sucked in and find that hours have passed while I've been following false leads, making minor (unhelpful) code tweaks, and changing the error message but not really gaining any ground.
This happened to me yesterday – after nearly two hours of troubleshooting an issue, I finally got so defeated that I Slacked my boss / mentor and asked for help. I hate doing this because I desperately want to prove that I know what I'm doing and don't need anyone's help (spoiler alert: I do not, and I do). I always worry that I'm wasting his time with my questions, and I can't shake the feeling that if I just Googled just a little more, the answer has to be out there somewhere on the internet.
But here's the thing: he solved my issue in two minutes. Seriously. I can look at the Slack timestamps and see that I sent my first message to him at 4:18 PM, and by 4:20 PM he told me what I had done wrong and I was back on track. I didn't waste his time, he could literally glance at my code and tell me what I had messed up.
Obviously, any question with a <2 min answer is probably not a great one – mine sure wasn't. But do you want to know something even worse than the question itself? The fact that I spent hours of time trying to fix it on my own before breaking down and asking someone. Does that one foolish question make me a bad developer? No, it doesn't. It happened because I'm a junior dev, and my lack of experience meant I wasn't making the right searches and therefore not turning up the right material. It wasn't a reflection on my intelligence at all. But the fear that it was is what stopped me from asking my boss for help.
When we lose ourselves down the Google rabbit hole in a desperate attempt to solve things ourselves, it's not impressive or "picking yourself up by the bootstraps" or whatever we've convinced ourselves that it is – it's just a waste of time. Keep in mind, I'm not talking about the quick Google search where you read a couple blog posts or watch a 10 min tutorial video and figure it out – I'm talking about the hours of fiddling and banging your head against the wall. My time is valuable, even if I am "just" a junior dev. And even if I can't convince you that your own time is valuable, you probably work for a company that's paying you for your time, and they would appreciate it if you didn't spend hours poking around vaguely relevant JSFiddles.
I could have spent all day Googling, and I don't know that I necessarily would have gotten the answer I needed. Maybe I could have figured out a different way to approach it entirely, or maybe I would have stumbled across the right information eventually...but I can guarantee you, it would have taken way longer than two minutes.
There absolutely are bad questions, it's just a fact. But you know what – it's so much better to acknowledge that and just ask your question so you can feel silly for 5 seconds and get to move on, instead of wasting hours on it. The question isn't going to get any less basic, whichever way you choose, so you might as well pick the option that lets you spend less time on it.
ASK YOUR OBVIOUS QUESTIONS. Embrace them. Love them. They are your silly little children. It's wonderful to make an effort at solving something yourself, it really is – but do yourself a favor and timebox it. Set an alarm on your phone; if it hits 30 minutes and you haven't made any real progress it's time to stop Googling, close your 112 browser tabs, and go ask a human who can offer you both experience and context.
Note: This article was edited to remove the original ableist language
Top comments (9)
Yes yes yes times a million. As a junior dev, I often kick myself because I spent so much time trying to figure out a question when I could have simply asked for a bit of help.
Timeboxing problems has also helped me be a lot more effective in solving them.
I will occasionally run into times where I feel like I can't ask anyone for help because I don't want to bother them/they're too busy/etc. Thankfully, I have a supportive team who pushes that I ask anyway, and I'm starting to do that more :)
Yes times a million Kathryn. I am a senior developer and I still struggle with asking the dumb questions. The fact of the matter is that we are all always learning something new and there is always someone is further on that journey than we are. Therefore, it is only logical to ask them questions. But we are paralyzed as developers to solve our own problems and think we must operate in a silo. We don't need to do that, we need to be effective programmers. Part of being effective is getting the answers you need when you need them.
Great post!
This is a great article! I'm sending it to my team :)
I find myself wanting to argue in favor of the value of the hours-long struggle, but that's probably just an attempt to rationalize all of the time I've wasted doing it myself...
Gosh, this hits me hard. I've not had much experience working with/under other programmers and my fear is that blasted imposter syndrome in realizing that I'm clueless. I'm still chipping away at square one.
When I start to know what I'm doing (maybe) I can predict that my pride may want to hold those dumb questions close and secret.
Ill try to remember this article when that time comes. Thanks for sharing!
A minor caveat from someone who's been on both sides, would be to spread the question among the team-members. If you always ask the same person, eventually they'll resent you walking near them.
Also, I've always ended my sets of dumb questions with "how could have I figured this out by myself?" and came out with much better debugging methods for the future.
I agree with you almost,But i think learn to balance the solving problem skills and time-wasted art much more importent.The skills give you confience,time manage can improve your working efficiency!
YES, I agree with you very much . balance is very important, and I love figure out a problem by myself.
Great post!
There's a Talmudic proverb that says "One who is bashful cannot learn" (the flip-side is in the rest of the quote that says "...and one who is short-tempered cannot teach")
OMG, this is great. I felt like I was reading exactly what I did today, especially about the 112 browsers. Thanks for the encouragement. :)