If you're a junior dev, you're making one of these two mistakes....and here's how to fix them
Tags: beginners, career, programming, codenewbie
Published: 2022-09-18 13:51:21

So you finally passed all of your interviews, you got an offer, and landed your dream coding job (or at least _a_ coding job).  And now you're working with a team of devs writing code.  Today, you've been handed your first ticket to work on all by yourself and...

## The "Hey you got a minute"
    
...you immediately run into an issue.  You get an error when you try to build the code, you can't replicate the bug, or you are not quite sure where you should start making these code changes. That first minor inconvenience you run into causes you to quickly whip your head towards the developer next to you and ask for help.

You have stopped what you're doing and asked for help so quickly you don't even know how to describe the problem.  "Have you seen this before?" you say, as you turn your monitor towards them.  "Yeah", they say "It's git _pull_ not git _puul_".  You look down and sheepishly say thank you as you go back to your work, only to say a few minutes later "Hey, have you seen...."

## The "Crickets"

But you're nothing like that developer, you think to yourself smugly right now. I always solve my own problems.  When I run into an issue I won't bother the devs next to me with something trivial.  I will just keep digging until I find the answer.

Then three days later your tech lead finally walks over and says, let's see what you got so far.  They look at your screen and all they see is:

```
// TODO put working code here
```
 "Why didn't you ask for help sooner?" they say. You shyly respond "Well, I have been working on it, and looking into it, but I'm having trouble getting started"

## The solution

It's ok.  Really, it's ok not to know something.  I have been doing this for 12 years and there's a lot of things I still don't know.  But if you always ask for help without trying to solve a problem yourself you'll never learn how to solve your own problems, let alone solve someone else's.  And if you never ask for help then you're going to spend hours or days spinning your wheels in the mud before someone finally shows up and solves a problem in 5 minutes.  

I'm here to tell you, there's a middle way.  

> If you run into a technical issue, you **HAVE** to ask for help if you haven't gotten any **CLOSER** to solving it in the last 15 minutes

There's two important points here.  First, at some point you MUST ask for help.  It's not optional.  Second, you only ask for help AFTER you have tried solving the problem on your own, for a minimum of 15 minutes.  Sometimes problems are "bigger", and would take longer than 15 minutes to figure out.  That's ok, if you feel you are making progress towards solving the problem, keep going.  Even if you don't get all the way to the finish line, you'll still learn useful things along the way.  But if you've been stuck for about 15 minutes and haven't learned anything new, then it's time to ask someone for help.

There are obviously exceptions to the above.  Like if you don't know the password to the test environment, you should probably just ask someone, rather than wait 15 minutes before you do.  But if you run into a technical problem, I encourage you to try and solve it on your own, within reason, before asking for help.  It will teach you things you likely wouldn't have learned if someone had just handed you the answer.  And it will help you grow the skills needed to solve problems.

And one last point, feel free to make it 10 or even 5 minutes depending on the problem.  But I have found 15 minutes to be a good tipping point where if I've been stuck on a problem for that long, then more time usually doesn't help too much.  Other people do.

## But how do I even solve my own problem?

I'm going to be honest.  95% of the time I help another dev with a technical issue, or am trying to solve one of my own, I figure out how to solve it by doing one of the following (depending on the issue):

1. Google it
1. Search the code base for it or some key word that is related to it
1. I actually read the exception that was returned.  Like, not just the error message, but the stack trace itself (and see if any code we own is in the stack trace), any additional exception causes or messages, and if there's more than one error message or exception that occurred.
1. Read the code that's broken and ask yourself how that could have happened
1. Restart the IDE / build it on the command line and see if that works
1. Try running it again
1. Clear your browser cache and then try running it again

If you do most of the above and still don't know what's wrong, then maybe it's time to ask for help ;)

Find me on [Linked-in](https://www.linkedin.com/in/kevin-masur-b537b8192)!