upvote
As a mentor, I like to set explicit expectations for how much time someone should spend digging before asking for help, and I encourage others to do the same.

For an intern or new grad whose information gathering skills likely have gaps they don't even know about, I'll tell them to come check with me if they're completely blocked and haven't made progress for an hour, as it's frequently a small pointer or hint from me that can get them back on track. As they get more more knowledge about the systems and experience unblocking themselves, this grows to half a day, a day, and more from there.

The same applies even for experienced engineers who are new to the team, though the timeboxes grow much faster. There will always be little things to learn, and there's no point burning a day of chasing threads if it's some quirk in the system you just happen to not be aware of.

reply
Let me add a nuance to this after seeing the replies. I've got 40years of experience. I'm not an intern. I still feel this. Just because I could write Linux, Photoshop, or Unreal Engine from scratch doesn't mean I know my particular company's massive infrastructure or their million file code base.
reply
As an intern I feel the same everyday. It feels more natural to me to just keep digging into the codebase until I figure something out instead of asking for help.

Part of it is what you mentioned, as well as the fact that I sometimes feel bad for "wasting" a much more productive engineer's time.

reply
It's also not clear from the other side. Do you give a lot of guidance, so the intern becomes reliant on always having someone telling them what to do exactly on the micro level? Or let them work it out slowly, and during that process get familiar with the systems more closely? I find that having a clear task to solve actually gets me more of an understanding of how everything works, than reading a top-down documentation where I don't have any context of "why".

Also interns can differ a lot. They can need different levels of guidance and can come with widely different levels of prior experience, even in unrelated debugging and troubleshooting like fixing network ports for LAN gaming or whatever kids these days might be doing. Setting up VPN to evade geoblocking or whatever. Others may have no idea what to even do. And those who can do it may take widely different time.

I think an internship is, in fact, a good place to learn these meta-lessons too. You ask for some guidance, then you see it was maybe too much. Another time you don't and spend a lot of time, and have your supervising engineer say "oh I could have told you XYZ very quickly", then you update and recalibrate. There is no single short message that can convey this. That's why experience is valuable.

reply