What Junior Devs Get Wrong
vincanger

vincanger @vincanger

About: Learning, Building, Sharing

Joined:
Dec 1, 2022

What Junior Devs Get Wrong

Publish Date: Apr 2 '24
283 51

Asking Senior Devs

ask

We recently took to the web dev community on Reddit to ask Senior Devs the question:

What are the most damaging misconceptions amongst junior devs?

We wanted to know what junior devs get consistently wrong, and what they can do to improve. Surprisingly, the senior devs we asked gave us a ton of responses -- more than 270 to be exact!

And because there was so much valuable information here, we've decided to summarize the replies in this article.

So, have a read, and then let us know in the comments what you think :)

The Most Common Themes

Among the responses were lots of great, specific examples, but we noticed a lot of common themes within them:

  • Code Quality
  • Managing Time & Expectations
  • Effective Communication & Teamwork

These seemed to be the topics senior devs had the most to say about. And it makes sense -- these are the things that, when you get to the core of the issues, can make or break almost any career.

It was also interesting to see that the most popular replies were issues that encompassed all of these themes. For example, here is the top-voted reply:

Clean things up later

First Quality & Then Velocity

High code quality only indirectly affects users. The main purpose is to keep development velocity high which benefits all stakeholders
  — zoechi * r/webdev

In the "quality" debate there were effectively two camps, with those who thought quality code was about:

  1. writing clean, readable code, that's easy to maintain
  2. writing code that gets shipped on time and works.

The balance between meeting deadlines, shipping features, and writing the best possible code is obviously a tricky one to get right.

Some people had the opinion that business realities mean that teams often don't have time for clean code patterns. The most important point is to meet deadlines and keep clients happy.

On the other hand, many senior devs thought quality code should be the priority, and that by making it a priority you can actually increase long-term velocity, even if short-term deadlines aren't met.

You don't have to touch all the code

This discussion can distract from Junior developers priorities though, which are to grow and improve as a developer, not lead the team to success. Therefore, we think it's probably best for Junior devs to focus on quality first, and then improve their speed of delivery second.


Btw, we're building Wasp, a full-stack React + NodeJS framework with superpowers, to be one of the best ways to level up your skills as a full-stack web developer.

By starring our repo on GitHub you're helping us continue to make web dev faster and easier, and bring content like this to you every week.

https://media1.giphy.com/media/ZfK4cXKJTTay1Ava29/giphy.gif?cid=7941fdc6pmqo30ll0e4rzdiisbtagx97sx5t0znx4lk0auju&ep=v1_gifs_search&rid=giphy.gif&ct=g

⭐️ Thanks For Your Support 🙏


Stay Humble & Manage Expectations

As a Junior developer, it's not expected that you're going to get everything right the first time.

There is an assumption that you will learn the best practices over time, and along the way you might produce inconsistent work, make mistakes, or even possibly break some things along the way.

stupid

But that's okay.

It's part of the process. It's expected. And it's important to remember that this is not a reflection of your value or worth as an engineer or individual.

In the replies, there were also many developers who recognized another developer's desire "to fix things later" as a way to brush off criticism towards their work. They generally viewed this as a bad habit to get into, as it is often one that plagues developers even as they gain more experience.

For example, "Code reviews should not be taken personally", was a common point being made by senior devs.

So being able to take criticism graciously is an important skill to develop.

After all, seniors are there to guide you towards making better decisions based on their own experiences. And juniors are there to learn.

Senior Developer Doesn't Know Everything

But how often should you seek a Senior's advice? Should you do what they said, or what some dude told you is the only way to do x on YouTube or in some blogpost ;) ?

Should you ask for help every time you get stuck, or should you compromise your sanity and struggle alone for days?

Well, it depends on who you ask. But most of the replies made it clear that:

  1. You should try it out yourself first.
  2. Use the resources available to you (ChatGPT, Stack Overflow, Google) to try and figure it out.
  3. Ask for help once you considerably slow down on making any progress.
  4. If you have a possible solution and it differs from the senior dev's suggestion, that doesn't mean it's wrong -- there can sometimes be many possible ways to achieve the same goal!

Bothering seniors with questions

Be Flexibile & Open to Change

Nothing changes faster than the world of technology. As a developer, you need to constantly be learning and adapting to new technologies and trends. If you don't like change, well then being a software developer probably isn't the right career for you.

Everything takes longer than you think

On top of things changing constantly, it's the kind of job that challenges your assumptions. For example, what you think might be the best solution turns out to be incompatible with your team's desired goals or end product, and you're forced to use a "sub-optimal" solution instead.

Why? Because it might the best way to
get the job done given your team's constraints. ("Sorry, pal, but we can't use your favorite framework on this one.")

The developers who stay flexible and open-minded are often at an advantage here.

They're the ones that are less dogmatic about a particular technology or approach, and are more willing to adapt to the situation at hand. They're typically the ones that progress faster than their peers, and they're the ones that get the job done well.


If you found this useful so far, please show us your support by giving us a star on GitHub! It will help us continue to make more stuff just like it.

https://res.cloudinary.com/practicaldev/image/fetch/s--OCpry2p9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bky8z46ii7ayejprrqw3.gif

⭐️ Thanks For Your Support 🙏


So, what do you think?

Ok, so that's our summary.

developers

What do you think about these opinions? Are the senior devs right in their assessment, or are they missing something?

Have you realized something recently that you wish you had known earlier? If yes, then share it with us in the comments!


Psst! my colleague and I also discussed the results and weighed in with our opinions at greater length in this YouTube video below. So check it out, if that's your sort of thing :)

Comments 51 total

  • Mihovil Ilakovac
    Mihovil IlakovacApr 2, 2024

    So being able to take criticism graciously is an important skill to develop.

    Sheeesh, this gets me even after 10 years in dev. Having patience and not taking things personally is a must.

    • vincanger
      vincangerApr 2, 2024

      It's good to remember that a lot of times others are just trying to help. Even if they are being condescending, there's nothing to gain from being defensive 🤷‍♂️

      • FrontEndWebDeveloping
        FrontEndWebDevelopingApr 5, 2024

        I agree. If the shoe fits, wear it. Fighting back won't improve your skills as a dev one lick.

  • Matija Sosic
    Matija SosicApr 2, 2024

    wow, this is super useful. I also remember how as a junior I felt ashamed to ask anything as it would show that I don't know what I'm doing. As a senior, that's pretty much the only thing I do :D.

    • vincanger
      vincangerApr 2, 2024

      Haha the "no shame senior" strategy. I like it :)

  • Jake Page
    Jake PageApr 2, 2024

    Such a great idea, taking to Reddit like that. So cool to see so many diverging opinions! Thanks for the blog summary though, that turned out to be a long reddit thread. Fair play.

    • vincanger
      vincangerApr 2, 2024

      Yeah. Reddit loves when you ask them for an opinion, especially with regards to what people do wrong 😆

  • Juraj
    JurajApr 2, 2024

    Except for when you think it's going to take very long, then it can be done in half a day

    This one resonated with me 😆

  • Louis Weston
    Louis WestonApr 2, 2024

    Love it, cool article!!

  • Jack Bridger
    Jack BridgerApr 2, 2024

    Awesome

  • vincanger
    vincangerApr 2, 2024

    thank you!

  • EROS
    EROSApr 2, 2024

    I love it, thanks for those advices

  • Dimitrios Mastrogiannis
    Dimitrios MastrogiannisApr 2, 2024

    Spot on advice!

  • Johnathan James
    Johnathan JamesApr 2, 2024

    Regarding the question: "First Quality & Then Velocity", this falls under my general maxim, "First make it work, and then make it pretty". The idea is that the reason we are coding, in most cases, is for the business, for our clients. They are most effective when we can give them working code, even if we can think of ways to make it better. Some of those ways we will do! But they may not be worth holding up releasing functionality.

    This kind of thing you only learn on the job. That is why I started the Mock Programming Job. You participate on an active team of developers, and take tasks like you would in a real programming job. We organize ourselves using Agile and we use best practices like code review, continuous integration, cloud deployment (AWS) and more. It's all free, and you get resume-worthy experience. Join us, and we will match your work!

    discord.gg/2hk4aCTuJ8

  • zvone187
    zvone187Apr 2, 2024

    I like the cleaning up comment 😄

  • Florian
    FlorianApr 2, 2024

    Thanks for this article! The advice to take criticism seriously but not as a personal attack is a valuable reminder which can only make life easier in the long run. Can't wait to see what further insights your YouTube video provides on this topic. 👀

  • Madhu Saini
    Madhu SainiApr 3, 2024

    Nice article!!

    Thanks for sharing

  • Smileyfavour
    SmileyfavourApr 3, 2024

    Thanks for this article, it really helped alot!!

    • vincanger
      vincangerApr 3, 2024

      Oh wow. That’s great to hear :)

  • Vivek Upadhyay
    Vivek UpadhyayApr 3, 2024

    great share

    • vincanger
      vincangerApr 3, 2024

      thanks. glad you like it :)

  • elbasiri
    elbasiriApr 3, 2024

    Hello, everyone!

    As a junior web developer, I recently encountered a concept that caught me off guard: the emphasis on quality over velocity. Starting a new job, I initially believed that speed was paramount. However, upon reflection, I realized the importance of combining both quality and speed. Despite my initial struggle to balance the two, I've come to prioritize quality, investing significant time into producing the best code possible. Admittedly, this approach has consumed more time than anticipated. Moving forward, I recognize the need to refine my skills, accumulate experience, and then shift my focus towards enhancing speed without compromising quality.

    • FrontEndWebDeveloping
      FrontEndWebDevelopingApr 5, 2024

      When did you start developing Elbasiri?

      • elbasiri
        elbasiriApr 5, 2024

        Like 8 month ago i got into an internship i already been passionate about programming i started using python in 2019 but now i am a web developer php js and of course html/css

  • Levi Johnson
    Levi JohnsonApr 4, 2024

    So helpful article!!
    Thanks for sharing. :)

    • vincanger
      vincangerApr 4, 2024

      glad you found it helpful!

  • Arun Krish
    Arun KrishApr 4, 2024

    Thanks for this article. I'm a beginner in this field, this is more helpful for me. Write more beginner friendly articles like this. ( Star given to your repo ⭐ )
    Best regards,

    Arun Krish

    • vincanger
      vincangerApr 4, 2024

      Thanks for the star! I will definitely write more articles like this! Thanks for the encouragement

      • FrontEndWebDeveloping
        FrontEndWebDevelopingApr 5, 2024

        I too am a beginner. I found this helpful. Thankyou for taking the time and trouble to make it available.

  • Jeff Chavez
    Jeff ChavezApr 4, 2024

    I need to hear this.

    Be Flexibile & Open to Change

    Thank you.

    • vincanger
      vincangerApr 4, 2024

      You're welcome! Plus, things change very quickly. We have to be ready to adapt :)

  • Luke Inglis
    Luke InglisApr 4, 2024

    On the topic of thinking 'That they are bothering a senior by asking questions.'; On thing that junior devs need to know is that they are going to get it wrong and need input. In any team worth its salt they will get that input but it's a matter of when.

    If you ask a question of a senior dev you will get input from them when you need it. And while we (seniors) may sometimes feel bothered to be interrupted etc. most of us really do like to talk shop and even if we were bothered initially as long as we know that you are engaged with our input than we will feel like the interruption was worth it.

    If you don't ask a question but try to just 'get it done' then you will get your input when a senior reviews your code. This isn't greatl you as a dev are not getting input when you need it. I, as a reviewer, am giving my feedback in a less personal and more prescriptive manner. Which, at least for me personally, feels a lot more like work.

    Worst case scenario is that your code makes it through review without being improved/fixed. In this case you are going to get your 'input' in the form of a grumpy senior who has to fix your code later.

    TL;DR - Most senior devs would rather engage in discussion/collaboration early on in your process than give you a list of fixes on a PR. We'd rather work with you than for you.

    • vincanger
      vincangerApr 8, 2024

      nicely put -- "we'd rather work with you than for you"

  • Bap
    BapApr 5, 2024

    Bookmarked this little gem 💎

  • Ashley D
    Ashley DApr 8, 2024

    Reading this as a current student in bootcamp week 8. I love what you shared on:

    "we think it's probably best for Junior devs to focus on quality first, and then improve their speed of delivery second."

    At first, I felt bad for taking longer to complete the homework and labs vs my classmates, but taking the time to slow down can help me learn the concepts right and to echo your point- ensure I'm putting forward quality and accurate work. Excellent share! 🤩

    • vincanger
      vincangerApr 8, 2024

      totally! speed will come later :)

  • val von vorn
    val von vornApr 12, 2024

    What Junior Devs Get Wrong: Asking Senior Devs

    I don't think was the intended meaning, but sometimes it can be wrong to ask senior devs - and try to imitate them, ignoring the different context and abilities. Maybe they had their own ways for certain reasons but that is not the current best practice.

Add comment