[HN Gopher] The hardest part of being a junior developer ___________________________________________________________________ The hardest part of being a junior developer Author : pzrsa Score : 48 points Date : 2023-01-16 21:03 UTC (1 hours ago) (HTM) web link (rachsmith.com) (TXT) w3m dump (rachsmith.com) | apozem wrote: | One time, as a junior, I was struggling with an old company API. | I tried and tried to figure it out but finally broke down and | asked a senior. He explained the problem and unblocked me. | | The incident always stuck with me because this problem was | literally un-Googleable. It was an internal system that required | a super specific method of interaction you'd never discover by | accident. The _only_ way to use it was to ask for help. | | So yeah, I agree with the author. Timeboxing tasks for juniors is | a good way to teach them when to ask for help or clarify | requirements. | debacle wrote: | I give all my juniors a score from ~2-4, which is a multiplier on | the estimate for any task they're assigned. | | If it would take me N hours to do something, I expect them to | take no more N*M hours to finish the task, and if at any point | they feel that estimate is wrong they should let me know. | | Usually it takes them 2-3 tries to realize that this system is in | place to help ensure: | | 1. They understand the scope of the task | | 2. They don't spin their wheels too long on any one thing. | | When hiring juniors (mostly interns to direct hire), the two | biggest things I look at are: | | 1. Do you do things outside of your coursework to enrich | yourself? | | 2. Do you ask a ton of questions in the interview? | | The best intern we ever had (he is at Apple now) asked so many | questions during the usually 45 min interview that I think it | went to almost 2 hours. He was a phenomenally conscientious hire | and managed his own time impeccably well. | madeofpalk wrote: | Hell, as a reasonably mature-ish senior-ish developer I struggle | with this! Whenever I run into a road block or struggle to figure | something out, I get that wave of imposter syndrome-ish where I | think "No, you're a senior dev, you can't be asking for help!" | Scubabear68 wrote: | This is not limited to juniors. I know some | fairly senior devs who are afraid to say "I don't know" or admit | they are stuck. Particularly when they are working on someone | else's legacy code that may be of dubious quality. It is a | shame, because in many cases just a little humility and admission | they are human would make them much stronger developers. | | As it is, it leads to a level of distrust and uncertainty within | the team and with management. | sibeliuss wrote: | At the company I work for we've cultivated a very strong level of | trust in terms of asking questions, and encouraging such. | However, as the OP noted, it's never that easy. | | The best formulae I've found is to gently prod jrs towards a | solution, but to also keep an eye on their progress and then, if | things are taking too long, to reach out and suggest that even | though the task isn't complete, to go ahead and open a WIP pr for | the team to look at. This encourages them to "let go" of the | hangup and to put the work out there, effectively making things a | team effort. The sooner they learn that code isn't personal | (which is admittedly hard), the sooner they're on their way to | more senior levels. | marmetio wrote: | Time boxing progress their is good, but it also helps to explain | how to ask for help. I tell them if they get stuck to give me a | short writeup on the objective, what they tried, why it didn't | work, and their questions. It makes them reflect on their work | and helps me understand what they need. After a few times, they | can usually solve most of their own problems. | Justsignedup wrote: | I solved this problem, quite well, and still do this all the damn | time: | | 1) try to solve the problem | | 2) Gee, it's hard. shit. okay think think think | | 3) okay ask for help. wait... let's write a slack message. First | write the problem, explain exactly what you tried, and ideas for | next attempts. Explain your confusions. | | 4) OMG I SOLVED IT | | or | | 4a) Hit send. | | I find that 70% of the time, I don't hit send. 30% of the time it | was worth asking. | tomkarho wrote: | Before slack, Stackoverflow was my rubber ducky. | bob1029 wrote: | I have an additional trick - If you are the person of whom help | is frequently asked, employ a nominal delay before you get into | it. | | "Sure - let's get on <conference line> in 5 minutes" | | I've found this to work well. "hang on I'm going to try 1 more | thing". And, then you don't hear from them until tomorrow. | jedberg wrote: | Being a good manager is all about setting context. Timeboxing is | actually helpful for senior engineers too, but for a different | reason. | | When I ask for something that I have no idea how long it should | take, I'll say something like, "don't spend more than half a day | trying to get this to work. If we can do it that amount of time | then it's worth it to the business, otherwise it's not worth the | effort". | | If they can't get it done, no problem. I just ask them to | document what they tried so that if someone tries it again later | they have a starting point. | | Setting the context let's them know how much effort to put in | regardless of junior or senior, it's just for a junior employee | the context is less "value to the business" and more "here are my | expectations". | cke wrote: | This one hits home for me. | | Early on in my career, I had a "mentor" tell me to try it on my | own before asking any questions only to swear under his breath | when I messed up. It was a massive source of anxiety balancing | between asking a question and the risk of messing up. | | When working with junior engineers nowadays, I go out of my way | to let them know that any question at any time is acceptable. | I'll put down what I'm doing and help them through a problem and | then celebrate the solution with them. I never want them to feel | the fear of work and failure that I did. | Raed667 wrote: | Agreed, but with the caveat of not making every single problem | you encounter become your team's or your manger's problem. I've | seen this especially with some interns, where given the (valid) | advice of not being afraid to ask questions, go overboard and | make every single task they might have everyone else's task as | well. | c7DJTLrn wrote: | >Early on in my career, I had a "mentor" tell me to try it on | my own before asking any questions only to swear under his | breath when I messed up | | May I ask how long ago this was? Although shit colleagues and | shit workplaces still exist, it feels like these days it would | be shut down pretty quick by HR in the average company. | TexanFeller wrote: | I have seen HR get involved in situations like this zero time | in my career. I wouldn't want them to either. | sshine wrote: | I had a hard case of impostor syndrome at my first full-time | job and spent an unnecessary amount of time being stuck because | I was too scared to ask. | | I make sure that anyone in my office who is new or is my junior | knows that I'm the person they can always interrupt. People | never interrupt too much. | drunkpotato wrote: | I have junior engineers try solving their problem on their own | for an hour. If they make no progress, ask for help. If they | make some progress, repeat. I think it's a good learning | experience while also providing a safety net, and I've gotten | positive feedback from juniors on this advice. | rejectfinite wrote: | Same in IT in general. Probably a lot of knowledge based jobs. | mkl95 wrote: | I loathed my time as a junior developer. Being a senior dev is | like working in a different industry. Leverage beats jerks like | rock beats scissors. | kiachnish wrote: | As a fresh grad SWE I have felt this insecurity as well. "Seven | Tips for a Junior Developer" [0] has some good parts on asking | for help, and on the pendulum between unblocking yourself versus | reaching out to others. I would love to read anything else on the | topic. | | [0] https://www.pearlleff.com/seven-tips-for-a-junior-developer | Waterluvian wrote: | I had a mentor at my last job who clearly really didn't want to | be one. It was to the point that I would sit paralyzed behind | him, loathing turning around to get his help. In all fairness, I | had yet to learn a good way to get help without interrupting his | hard work. I'm not sure he ever fully knew he was my mentor, but | without his help I was completely blocked on making any progress | on the deep-end project I was thrown into. | | What we both needed was the company setting very clear, explicit | expectations. "X is your mentor. X's main job is to mentor you | and help you swim in this deep end." Though I think the entire | company was learning a ton of stuff at that phase. | | Thanks X for all your tolerance over those years. You have no | idea how much you saved me, despite my loathing to bother you yet | again. | saghm wrote: | > What we both needed was the company setting very clear, | explicit expectations. "X is your mentor. X's main job is to | mentor you and help you swim in this deep end." Though I think | the entire company was learning a ton of stuff at that phase. | | It's been a while since I've mentored someone, but that was | always one of the things I made sure to mention in my first | conversation with any interns/new grads I'd mentor: "While | you're here, mentoring you is the highest priority thing for me | to do. If there are ever any times when I have something so | time sensitive that it would take priority over answering your | questions, I will explicitly let you know. Otherwise, always | assume that it's okay to ask me something, because if for some | reason I can't answer and you don't know that, it's my fault | for not telling you." It helped that the company where I worked | at the time had very explicit time periods where someone was | considered a "new grad" versus a full team member (since they | actually would rotate on 3 teams before ending up on one of | them full time), so this strategy might not work as well in | places where the expectations for mentors are not laid out as | well, but I honestly think that it will almost always be the | best strategy to just be open and communicative with anyone | you're mentoring. Mentees are just people like anyone else, and | them being inexperienced as engineers doesn't make them any | less able to understand clearly communicated guidelines, and if | you need to adjust the guidelines as you go, there's no reason | they can't understand that too. | TideAd wrote: | I have a couple quasi-mentors like this. I'm stuck between | feeling grateful for what they taught me (a whole lot) and | feeling absolutely sure that I will never be that neglectful to | a junior dev in my own career as they were with me. | pydry wrote: | Onboarding is hard even as a senior. | | On the one hand interruption is expensive: | https://heeris.id.au/trinkets/ProgrammerInterrupted.png | | On the other hand, spinning your wheels trying to figure out | something for an hour is expensive. | | I've never really found a solution to maximizing my "interruption | budget". Inevitably I end up both spinning my wheels too long | sometimes and interrupting too much at other times. | | Meanwhile trying to solve this problem also consumes way too many | brain CPU cycles. | pickledish wrote: | I like the advice! I think giving such a specific figure (one | hour of spinning your wheels) might seem arbitrary to some | people, but I can think of several folks right now (even myself | in the past) who would have really benefitted from some kind of | loose framework like this, instead of just "feel free to ask a | question anytime" | halfmatthalfcat wrote: | I just had to talk with a couple more junior people on my team | about this. | | We're having difficulty on people wheel spinning and taking too | long to reach out when there's problems but it's not because they | _can 't_ but there's a sense you develop as you gain more | experience on what that "red line" is when you need to reach out. | | It's a combination of experience with the task (language, | codebase, etc), agile point values (or just "level of effort") | and how easy it is to approach those with the answers. As they're | continuing to do work, evaluate where the time you've currently | spent matches up to each of those three things. If you've hit | that red line, time to start sounding alarm bells (relatively). | | It really is a learned skill and takes time, juniors shouldn't | feel bad and seniors/leads shouldn't make them feel bad. | Seniors/leads should also be planning for learning this skill | into their estimates to stakeholders. | pm90 wrote: | Setting explicit time frames is really useful for both the mentor | and mentee (or manager and employee etc). | | If someone is unable to complete a task within a set time, but | _explains their thought process and what they tried_ , I consider | that to be a completely valid use of their time. Even if they are | completely honest and say: "This seemed too hard and I tried for | the first 15 minutes and then got bored and procrastinated" that | is also ok. We're all humans after all. | | Its when someone spends their time on excuses and fobs that is | really annoying and unproductive. Generally: most people will | invent excuses. People that went to college (I went to college!) | get really good at this since you need to invent excuses all the | time to get past annoying social activities and classes. | | In most cases, providing the space to fail and proceed allows | developers to gain the confidence to be upfront. Of course there | will always be those that don't get the message, or try to game | the system. But they tend to fall really really far behind and it | becomes pretty obvious that they're not doing well. ___________________________________________________________________ (page generated 2023-01-16 23:00 UTC)