[go: up one dir, main page]

DEV Community

Cover image for What Junior Devs Get Wrong
vincanger for Wasp

Posted on • Originally published at wasp-lang.dev

What Junior Devs Get Wrong

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 :)

Top comments (51)

Collapse
 
haxwell profile image
Johnathan James

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

Collapse
 
vincanger profile image
vincanger

Ooh "First make it work, and then make it pretty" I like that!

Collapse
 
shinyjohn0401 profile image
Levi Johnson

🙏

Thread Thread
 
vincanger profile image
vincanger

:)

Collapse
 
infomiho profile image
Mihovil Ilakovac

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.

Collapse
 
vincanger profile image
vincanger

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 🤷‍♂️

Collapse
 
softwaredeveloping profile image
FrontEndWebDeveloping

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

Collapse
 
floscode profile image
Florian

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. 👀

Collapse
 
vincanger profile image
vincanger

🙏

Collapse
 
ludamillion profile image
Luke Inglis

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.

Collapse
 
vincanger profile image
vincanger

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

Collapse
 
ashleyd480 profile image
Ashley D

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! 🤩

Collapse
 
vincanger profile image
vincanger

totally! speed will come later :)

Collapse
 
jakepage91 profile image
Jake Page

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.

Collapse
 
vincanger profile image
vincanger

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

Collapse
 
zvone187 profile image
zvone187

I like the cleaning up comment 😄

Collapse
 
vincanger profile image
vincanger

😎

Collapse
 
mastro profile image
Dimitrios Mastrogiannis

Spot on advice!

Collapse
 
vincanger profile image
vincanger

Glad to hear it

Collapse
 
arunkrish11 profile image
Arun Krish

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

Collapse
 
vincanger profile image
vincanger

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

Collapse
 
softwaredeveloping profile image
FrontEndWebDeveloping

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

Thread Thread
 
vincanger profile image
vincanger

you're welcome!

Collapse
 
fernandezbaptiste profile image
Bap

Bookmarked this little gem 💎

Collapse
 
vincanger profile image
vincanger

thanks, bap!