From the ExperiencedDevs subreddit, this developer wanted to understand what are the best qualities for a junior developer?
📄 Auto-Generated Transcript ▾
Transcript is auto-generated and may contain errors.
All right, folks. We're going to go to the Experience Dev subreddit. This is my third take doing this because my camera cannot keep a charge even while it's plugged in, which is insane. Um, this topic is something we've talked about on the channel before, but I think it's a good one to go over. And this person was asking about um sort of best qualities, best characteristics, things that people look for uh in junior developers. And this is them asking this to the more experienced developers on the experienced dev subreddit. So, I'm going to try my best to to capture the best of the previous two takes I've done on this. Um, and hopefully it's not as scatterbrained the third time around. Um, so for context, uh, if you're new to the channel, I try to talk about things from different perspectives, but ultimately like it carries my own bias, right?
So, um I wanted to encourage anyone who's kind of watching this if, uh if you have experience working with more junior developers, um things that have worked well or have, you know, been challenging or if you are a junior developer and you have some thoughts on on this as well. Uh I think it would be great to be able to share that in the comments because I think that um you know, if you if you aren't a content creator, you may not realize this. Maybe you do, but sometimes it only takes, you know, one comment, one message for someone to kind of stumble upon and read and it makes a big difference for them. So, uh, I would encourage you to kind of share. I think it's helpful. And then one more thing, um, because we're going to be talking about junior developers, I just wanted to share, um, a little bit of background for me so you know where I'm coming from on this stuff.
Then you can see where the bias comes from as well. But, um, I, uh, I was an intern for like six internships. Um, I've, you know, been in my professional career for like 14 years now. I've had interns every single year. Um, for the first eight years of my career, I had interns like at all times of the year, not just like a summer intern kind of thing. So, I've worked with, you know, junior developers, people very early in career, uh, for a significant portion of my career. And that's been at both startups and big tech. So, I will try to talk about different aspects of these things. Um so with that all said um I have two primary things that I I think drive a lot of um sort of the downstream conversation for me on this. But um number one I would say is like uh being proactive.
Okay. So um what I mean by that is proactive in terms of asking questions and communicating with status. I say this because um especially when we think about how a lot of work environments are set up now with a lot more remote work, distributed teams, that kind of thing. Um I think this compounds the problem or the challenge I should say. And then I wanted to mention that I I've kind of seen complete opposite ends of this spectrum and sort of like I I don't think it made a difference if the person was like you know uh extra skilled or talented or smart or not. Um but being at either end of this spectrum in terms of proactive communication uh made enormous differences in someone's ability to ramp up and perform. So um to elaborate a little bit further, if um dig one end of the spectrum completely.
So say someone is maybe they're remote. Um they don't have to be remote just as an example, but say they're remote. Uh so they're kind of a bit more detached from the team. Um they're not reaching out to ask for help or ask questions, right? Um, and then even if you have someone on the team who's kind of not not just the manager even, but like someone who's kind of like a onboarding buddy or like, you know, you're you're kind of partnered up with them because as a new hireer, you want to make sure there's a, you know, a solid contact for the person to work with. even if that person's reaching out and checking in and having like some resistance or like avoidance around like what's going on, like it's really really difficult to get someone like that ramped up and get some momentum and then kind of get into the groove of developing things.
Um it's it's a bit of a vicious cycle, right? Like they're not asking questions, so they're not learning the things they need to do. They can't un, you know, ask questions to unblock themselves. And then even when people are poking and proddding to try and help them, it's like they can't they can't help others help them. Uh so it makes it really really challenging. And I'm going to come back to this in a moment on my thoughts on this a little bit more. But if you take the opposite end of the spectrum, I have seen people that are you know totally comfortable reaching out asking questions to people on the team. um whether it's like they're finding out who on the team uh kind of has specific knowledge in areas just asking in a team chat like just being comfortable asking um and then on
status things like if people are stuck after trying a little bit for looking into things um reporting that and just being like hey like I'm I'm blocked on this can someone like help get me unstuck um if there's milestones things like that where work is wrapping up it could it can be positive or negative but like this proactive communication around what's going on I think is like tremendously valuable and so like I said I've seen both ends of this and I find that uh you know skill level experience and everything else can be roughly similar right people are even brand new in their career and the on the proactive side just makes a world of difference with someone to be able to get momentum uh ramping up in terms of the domain productivity But I I wanted to comment here and say like I get it when people are um you know when they're not reaching out.
I I I can understand that there's a lot of different factors that can um make people make people feel certain ways about about reaching out, asking for help, sharing like if they're blocked and that kind of stuff. I've I've heard many flavors of this over the years. So like um while while I'm I'm saying like hey I think this is can be like detrimental to to making progress I I can empathize with where it's coming from right I think some people are nervous to reach out and ask for help right um some people will have this and I've heard this I'm I'm not making this statement I'm I'm saying I've literally heard this where people will say they don't want to come across as stupid right if I'm asking questions I don't want people to think I'm stupid I don't want people to think that I'm not capable that I'm not able to um you know that I'm not suited for the role.
Like we've talked about imposter syndrome and stuff a lot on this channel. So people sometimes avoid asking questions because they don't want to come across that way. You know, people that don't want to ask questions or engage because they they don't want to bother people on the team, right? Oh, I'm just being a nuisance to them, right? Like I've had to ask Bob 10 questions and like Bob's going to hate me. like I don't want to like Bob's been helpful but like I don't I don't want to you know have Bob hate me and then like you know I just started on the team like I don't want this to to kind of go off on the wrong foot. So there's all sorts of different you know explanations for this. This person's tailgating me like crazy on this on-ramp. All sorts of different explanations for this.
But the the reality is like um yeah I want to encourage more people Buddy, like come on. You have a headlight out. You're trying to pass absolute stupidity. You feel better now? You got one car length ahead. You're going to hear my angry Canadian come out. Those guys beat up Toyota. Nothing against Toyotas, but this one's pretty beat up. It's missing lights on it. Um, yeah, I I think it's, you know, it works against you if you're not doing the the reach out. Not trying to be proactive, but I I also understand where where that comes from. So, what I was saying before idiot face tried to almost cut me off on the on ramp was that signal stuck on too.
um want to encourage people to be more proactive, but also for people on on teams that are taking on, you know, new hires and stuff like that, uh junior developers, please keep in mind that like while you can say, uh, hey, like we're always willing to help, ask questions, like you know, you're never going to bother us. Please do keep saying that, but also like demonstrate it, right? like reach out to people, make sure that you're asking them questions, checking in, making the time with them so that you can kind of prove it's a safe place to do it because I promise it will make a difference when you have the actions to back up the words. Okay. Um, so that's like I would say like one of the number one things with uh new developers is is focusing on that. I think it is incredibly helpful.
Uh number two is also not like some secret like you know you better know this programming language or this programming technique and like that's going to unlock everything. No. Um number two is really like this uh this like willingness to to learn and eagerness to kind of jump into new challenges. And my disclaimer here is as someone who is like naturally resistant to that kind of thing. Uh like self- admitted, right? Um I think it's a really really really good quality for developers to have, especially junior developers to start embodying early on. Um but I will absolutely be the first to admit that for myself, um this kind of thing is really difficult. Um, I literally need to use experiences from my own career to remind myself every single time there was a situation where I was like, "Oh man, like I don't think I
know this or this is going to be uncomfortable or whatever it is, right?" I've had many forcing functions in my career that have given me no choice but to like be in something new. And yeah, it's wildly uncomfortable for me. I I really like I get like anxious thinking about that kind of scenario, but when I reflect on it every single time, it's been like tremendously helpful with um like my growth, my learning, uh advancing my career, right? So, I need to remind myself every time when I get that feeling of like, oh, like I don't want to do this. I'm not I'm not going to be an expert. I'm going to be starting from zero. um imposter syndrome kicks in, you name it. Hey, look Nick, like every time something like this has happened, look what it's done for you, right? So, I need to do that for myself.
Now, the reason I say that this is such an important thing is that uh like let's imagine that I'm hiring someone and I'm like, "Hey, I need someone who has experience in ABC, right? if we're doing AB and C now like that's really helpful if someone comes on board and they have experience in ABC or they have interest in ABC right works out really well but the reality is like software changes over time right um what we're building why we're building it how we're building it uh these things grow and evolve right like um software ends up kind of uh you know seeming like a living system at some point and uh the teams and skills and things that we need around that also grow and evolve. So if you have someone who is eager to learn things, it means that as things change on the team, there's new challenges, right?
They're going to be able to like dive into those. Uh if you like hypothetically imagine a scenario where you have someone who's very intelligent or skilled in an area, right? If uh if the work you're doing happens to align really well with that, like that's really awesome because you get a lot of benefit out of having that skill and experience. But if things change over time, right? What you really don't want to have is someone who is so good at like this one vertical, this one specific focus area. Things change. The need for that is lessened. And you know that this person's awesome, but if they're unwilling to like try learning in the other areas to also get good in those other areas, they're kind of like stagnant or stuck. And then all of a sudden all of this tremendous value they were bringing is is lessened.
So like this is a you know a generalization if you were to think about like oh the old the old cranky developer who knows has a bunch of like war stories from from coding back in the day but they're not willing to like learn the new tech stack or like they they won't touch a new language or something. um some people may have worked with people like this but it makes it really difficult. So, as a junior developer, right, like my thinking is that I think it's really helpful if from early on you set yourself up to to be like, cool, like that's a new challenge that I don't know anything about and like the only Okay, buddy. I see you. You got to make up your mind about the speed you're going, though. Something's got to give here. Come on. I'm going to miss my exit now.
Awful. Sorry about that. Someone was blocking the lane and then deciding not to pick a speed that would be adequate for uh either deciding to pass or to slow down. So, could not merge and then had to go around everyone. And the most awkward part about that whole thing, I don't know if you could see in the camera based on the lighting, but there was a So, I have to speed around to get all the way from the right lane to the left lane so I can get back around. Um, and like while I'm doing that, there's a cop passing me on the left. So, uh, but there was no more space. I had to do it before I get the exit. Okay. Um, what was I saying before before dummy? um working through oh like uh you know new challenges right the only way that you're going to get better at these types of things is to actually have experience in them.
So um you can kind of go through your career avoiding challenges right so resisting it avoiding it and then you don't build up the experience in those areas or right you kind of accept like hey part of part of solver engineering is jumping into new challenges there's always going to be new things right always always always um which by the way like it's kind of like a a weird thing to think about but when you get a few years into to it. It's kind of like, man, like that can be tiring. It can be tiring to like try always keeping up with learning new things cuz there's there's always so much. But, um, it's part of it, right? It's part of what we're doing. So, I think that is the second trait that I would say if you start embodying that early on, it will help a lot.
So, the two primary things that I recommend new developers focus on are like proactive um communication. That's asking for questions or asking questions to get answers. That's sharing status if you're blocked or hitting milestones. Um and then this other thing around um you know, willingness to learn, eagerness to learn and and jump into new challenges. Uh the I'm going to run out of time here cuz I'm almost at CrossFit. This car is beeping at me and there's literally five bus lengths ahead. There's a bus. So, I don't know what's going on. Um, sort of the the next trait that I talked about in my previous takes of this was around uh accountability. And I gen I genuinely think that from my experience, there's been a correlation with people that start having accountability early on with people that have two of the things I was already mentioning.
Um, it's not a guarantee. It's not I'm not saying it's a causation thing, but um, that's been my experience. So, um, I would recommend that we think about accountability, ownership, and this kind of thing again early on if you're able to demonstrate it. That means taking responsibility. Um, you know, if you're assigned a task, some of the tasks you're going to get early on as a more junior developer are probably more straightforward, less complex hopefully. And then you know if you're hitting challenges and like whatever else like hey like again proactively communicate take ownership on like how are you going to to work through it and then the next time you have to pick up some work right like same type of thing like you want to show that you're learning from the previous challenges that you're kind of building on things but you're accountable
people can rely on you to deliver things and rely on you that if you're stuck you'll ask right you start building up this accountability demonstrating this kind of ownership, people can rely on you. That means like like as a as a manager who's on boarding someone, right? Trying to ramp up with more junior developers, I can start to go, cool, Billy on the team, I'm just picking random names. um you know is uh he's been able to take on the first few tasks like um navigating asking questions and like I think he's able to take on something a little bit more complex now because I can trust that if he's stuck then he'll ask for help he or she in this case right um and then that that like allows you to start building momentum as a as a developer working on more complicated tasks because that's the the name of the game over time, right, is that the work you're doing becomes um more ambiguous, more complex, and bigger impact.
What did the front of the car just hit? Gross. Probably just a bit of the plastic under the front bumper or Okay, cool. Camera survived. It's plugged in. We went from 72% battery, which is what it was able to charge the entire night, down to 67 while it's plugged in. Sony, you have to do better. This is insane. But anyway, thanks for watching. If you got questions about software engineering, career development, that kind of stuff, leave them below in the comments. Otherwise, you can go to codemute.com. You can submit stuff anonymously that way, and I will make a video response for you and the rest of the channel. Take care.
Frequently Asked Questions
These Q&A summaries are AI-generated from the video transcript and may not reflect my exact wording. Watch the video for the full context.
- What are the two primary traits I recommend junior developers focus on?
- I think the two primary things that I recommend new developers focus on are proactive communication and willingness to learn. I believe being proactive means asking questions, sharing status, and signaling when you're blocked or need help. I also value the willingness to learn, which means eagerly taking on new challenges and growing as the software evolves.
- Why is proactive communication important for junior developers?
- I believe proactive communication around what's going on is tremendously valuable, especially with remote or distributed teams. I see proactive communication as including asking questions, reporting when you're blocked, and sharing milestones. I have seen both ends of the spectrum, and proactive communication makes a world of difference in ramping up and productivity.
- Why is willingness to learn and jump into new challenges important for junior developers?
- I think it's a really good quality for developers to have, especially junior developers to start embodying early on. I will absolutely be the first to admit that for myself it's difficult, but every time I've faced a new challenge it's been tremendously helpful for my growth and learning. I believe software changes over time, and if someone is unwilling to learn new areas as those changes happen, their value can fade.