Having recently started a new internship as a Junior Software Developer, I can't help but feel like I (significantly) annoy everyone with my (very) frequent questions.
Don't get me wrong, I know in myself that it's a necessity to ask questions as a Junior Dev, because after all that's how you learn and gain experience, right? So I understand that I am not in the wrong by asking questions, but I often do wonder, does this get annoying for the people (most often Senior Devs) answering my questions? After all I'm taking them from their time pressured work, I'm asking them to explain something that I'm finding difficult but they probably can do in their sleep and I'm generally taking time from their day.
So my question is, do you ever get frustrated with your Junior Developer?
Latest comments (70)
I never got. It was absolutely wonderful that someone asked question. I also noticed Juniors have a lot of good ideas, which I did not know of. So, recommended to engage in Q&A!
No. I find Juniors a clean slate and wonderful to work with. Most good directors and CTOs will tell you the same. If you accept that you are paying a lot less for the junior, and that they come with certain obvious additional needs, I have never met a CTO or director that otherwise doesn't like juniors.
Statistically, the hardest developers to work with are usually mid-level. They may think they are senior, but that is part of the problem isn't it? ;)
Also, if a Junior developer is fortunate enough to be taught by an actual senior developer instead of another mid-level developer, or, even better, if the Junior can be taught by an actual architect or director, then the Junior never really gets into the "mountain of stupidity" that plagues normal mid-level developers.
How can you train or work with someone who thinks they know better?
Psychologically, humans are easier to get along with both when they first start something, and after they have finished climbing the 1-4 year "mountain of stupidity"; the mountain that makes them think they know things they do not. This is always the most difficult time to deal with someone.
This issue is in fact so common that it's known as the Dunning-Kruger Effect. A lot of science has been done on this, and it plagues all fields equally, not just development.
So, all personality quirks and other issues with normal human behavior that has nothing to do with knowledge aside, this human tendency to act within the Dunning-Kruger effect regarding knowledge is certainly the real issue we're all actually discussing.
In 2020, if you aren't getting paid over $150,000 a year as a developer, and you think you know a lot, you are either very, very wrong and are still climbing "Mt. Stupid", or you're severely underpaid. If you read this paragraph and think you're the latter, failing miserably will take you into the "valley of despair", i.e. place you where you belong: on the way to true wisdom.
Or, you know, it will get you paid over $150,000, which is great.
Either way, you will be sure to get over that mountain!
Yes, Juniors are annoying, but it's the way of life. Don't worry, you will someday have someone to annoy you.
I get annoyed at almost everything a Junior Developer does:
when they say they've done the work and they haven't.
when they don't ask questions and say they've understood everything.
when they have 0 attention to detail.
when they consider themselves a backend or frontend developer when they've only been working for 6 months and use it as an excuse for poor quality.
when they expect me to fix their problems.
To be honest, the answering questions is the least annoying part of working with a Junior. I wish I would get asked more questions so that we wouldn't have to spend so much time fixing or reviewing code.
I always ask junior devs to come with possible answers and I can then help them finding the right answer. That way I know whether they have done enough homework before asking questions.
I try to ask StackOverflow and Google before I go to anyone else. I can image it would be annoying to be asked questions that are easily discovered with a quick search. Googling things also helps with learning, in my experience.
I'd be lying if I said I didn't get frustrated with more junior developers on occasion, but only really if they are particularly difficult or disruptive when I'm involved in something. Most of the time, I enjoy mentoring my junior colleagues and like collaborating to solve problems - pair programming is something I find very interesting. Also, I always come to understand something a lot better by mentoring others about it because I have to think about it in a different way.
The job of a senior developer, at least in part, is to be not just a mentor for junior devs, but a force multiplier. It's been my experience that in a team of mixed ability, then if there's sufficient scope for code review and cross-training, the junior devs will quickly pick up knowledge and best practices from their more senior colleagues. Once that's happened, the role of the senior dev becomes more of an occasional troubleshooter for complex problems, which tend to be more interesting and satisfying to resolve. If I'm in a team with more junior devs, part of my job is to help them avoid the mistakes I made earlier in my career because I was a solo dev with no-one to pull me up on bad practices that came back to bite me down the line.
My advice is to make an effort to avoid disturbing your colleague's workflow. If you have a messaging system like Slack, use that to ask questions, and throw it open to the whole team so anyone who can spare the time can pick it up with you.
If you're going to ask questions, make sure you've spent some time Googling so you can ask good questions and demonstrate you've at least identified some specific options.
"I want to do X. I've thought about doing it this way and that way. I'm not sure which would be best because this part is unclear. /or/ I think this would be best because XYZ, what do you think?"
If you're just lost on where to start, ask the other dev for a point in the right direction so you could come back later with some specifics.
And then once you get your advice / answer run with it and really understand it. Dive deep to show your appreciation, and follow up with another thank you, showing off what you've learned. Any senior dev worth their salt would love that, and you'll encourage them to invest more time in you.
I get more annoyed when the junior devs don't ask questions or feel like asking questions is somehow a waste of time. I'd rather they take a few minutes of my time instead of wasting days or their time.
I only get frustrated if you don't ask me questions. I want you to ask me questions. I enjoy helping people and seeing them learn.
I remember being an intern and the same situation. I was always afraid that I would bother my leads. I learned being there longer to never be afraid to ask questions.
My advice: don't be afraid to ask questions. But also do not be afraid to ask WHY we are doing something a certain way and why not this way. What I like to see more than anything is for someone to learn why or why not we are doing things and not just taking whatever we say as the gospel.
I ask lots of questions and started to get worried they were too many at some point so I've addressed my colleagues directly by asking them. Turned out in the end most of them enjoyed it as they could go through their ideas with me at a slower pace and were happy to teach me stuff!
Additionally, I found out the ones who might not enjoy too many questions as much as the others and would bother them less.