DEV Community

What Defines a "Junior" Developer? 🤷🏻‍♀️

Brenda Limón on July 28, 2018

How do you define a “Junior” Developer? Is it by the amount of experience they have? Does a developer’s age indicate seniority? Do you assign this title to developers at lower salary tiers? 🤷🏻‍♀️

Collapse
 
cheetah100 profile image
Peter Harrison

The terms junior, intermediate and senior are primarily related to responsibility. A junior has no responsibility. Juniors are generally not given critical path jobs, rather given reasonably easy to complete tasks that are not critical. At this point a senior developer or team lead is responsible for them. A intermediate developer is one who is trusted to implement code responsibly. They are trusted to complete tasks or stories with minimal oversight. A senior extends responsibility beyond their personal efforts. This may involve mentoring, system design, team building, scheduling and development practices.

This is not about age or development skill as such, it is about increasing responsibility and ownership. Such progression is not necessarily automatic. You can get locked into restrictive roles which do not allow you to take on additional responsibilities. I have found smaller startups provide roles that are less strict in terms of separation of roles, which allows people to develop their skills. Larger companies tend to be more inflexible, but there is a rather wide variation in company culture.

To be honest the terms themselves can be potentially corrosive unless you clearly communicate to developers what is required to advance in terms of responsibilities.

Collapse
 
kateyanko profile image
Kate Yanko

As a Junior myself, this was exactly the definition I needed to see. It makes so much sense!

Collapse
 
kienngo profile image
ken

Very well-explained!

Collapse
 
emgodev profile image
Michael

Spot on, this this is really what titles are about.

Collapse
 
ben profile image
Ben Halpern

I'd say it means different things to different people, and that can be pretty frustrating.

So regardless of individual definitions, it's largely irrelevant.

But thing's associated with "juniorness" in relation to other titles, I think juniors are expected to be able to execute given a set of instructions, but won't necessarily be expected to think about the bigger picture and identify good problems worth solving.

Collapse
 
acoh3n profile image
Arik

Best definition for a senior engineer that I've ever seen:

I believe a senior engineer is more than just technical prowess. It is more than how many languages, best practices, or frameworks you know. I would say it's all about attitude. A senior engineer owns their work. Most engineers do what they are told, do the specific work, and hand it in like it is homework. A senior engineer takes full ownership of their work. They will deep dive into the problem, understand how their work fits in the system, understand what value their work brings to the business, and support their work after completion. Senior engineers have an attitude of growth for the business, such as seeking out how to make the business more efficient through technology, mentor and guide junior engineers and other senior engineers. A senior engineer owns their career, they are constantly learning and constantly trying to teach and help others around them.

If you can do that. I don't care how much experience you have.

Collapse
 
courier10pt profile image
Bob van Hoove

I really like this bit:

.. and support their work after completion.

If you support your work after completion you get to deal with the consequences of your decisions, IMO the best way to improve.

Collapse
 
ikemkrueger profile image
Ikem Krueger

I want to be someone like that.

Collapse
 
offendingcommit profile image
Jonathan Irvin

One simple definition I have is personal ownership. As a junior, I found myself in a position of execution and not so much innovation. As I progressed in my career, that changed slightly to where I'm engineering solutions that made the area's discipline even more refined.

I would often tell the newer developers, "when you see code or commits and it bothers you on a spiritual level where you have to fix it right now, then you know you're a Senior"

Collapse
 
kayis profile image
K

Juniors are given work, seniors choose their work.

But I think it's a spectrum and you can be junior in some areas of your work while being senior in others.

Like, you're a senior JS dev, but a junior Angular dev. So you find your JS tasks by yourself, but need help finding and solving Angular tasks

Collapse
 
davidchase profile image
David Chase

well put :)

Collapse
 
alainvanhout profile image
Alain Van Hout

'Junior' and 'senior' tend to mean different things to different people, so when I do use these terms, I make sure that it's understood what I mean with them (as with all things, good/effective communication is key).

What I mean with these terms focuses mostly on what 'senior' means: when you present a senior developer with something that needs to be done, you can be sure that you no longer have to worry about it: they will get either get it done (with them taking care of what's necessary), or you'll get concrete feedback on why it's not possible. And they'll do this in a way that doesn't harm potential time tables. Note that this says nothing about the number of years of experience or even the breadth of their skill set. It's all about reliability.

In case of an 'intermediate' developer, you'll need to give some initial guidance, and ideally check up on them every so often. In case of a 'junior' developer, you need to provide closer supervision, to ensure that they're correctly interpreting the requirements (which isn't self-evident), that they're generally using the right tools and approaches (which comes with experience), and that they don't bury themselves in yak stacks (which can just as well happen to solitary senior devs).

Collapse
 
rapidnerd profile image
George

I've always seen junior and senior developers defined in very different manors, and often the work environment these developers are in have different definitions of a junior and a senior dev. First things first no matter if you're a jr or a sr you're still a dev, you're still working for the same people and your code still matters. From experience most places I've been at define these two on the skillset and your code knowledge, sometimes it can be in general not relating to one specific area but more often its is this case. My work currently focuses around C, C++ and Python, in the views of my current I'm a senior developer because of the position I have been hired for. However during an interview we discussed these roles, and he told me that If instead of working on the backend server side of things if I went into the web portion of the company I'd be a junior dev, this being because I can make and write code for websites but my skillset for it is pretty low.

I've always found that junior devs are more often given tasks that aren't so challenging and are designed to help them improve their skills while working for their employer(s). Personally I believe being a junior dev is critical in a persons dev career. Some people will jump over junior and move to a standard or senior dev position, I never felt like this was a good thing to do seeing as a lot of employers will assist the junior devs in their position to help strengthen their knowledge.

Collapse
 
juanfrank77 profile image
Juan F Gonzalez

I think this is a pretty accurate description of those levels, the difference becomes more about being able to think "bigger picture" instead of actual coding skill.

Collapse
 
duduindo profile image
Eduardo Paixão

it's a good question

Collapse
 
marsavela profile image
Sergiu Marsavela

Right? 😂

Collapse
 
himamegahed profile image
Ibrahim Hasan

As we are defining the term in the scope of programming I could explain AMAP.

I think a junior developer is the one who just started his career as a developer and his background experience lies in a percentage of (10 - 30)%, he is only responsible for street and well-defined problems that he has to solve.

Of course, in order to get your way through this career, you probably have a lot of work waiting for you and has to be done e.g. Reading books, finishing some online courses, etc.

Collapse
 
jennyadamsnz profile image
Jenny Adams

his?...

Collapse
 
yechielk profile image
Yechiel Kalmenson

I like the way @rkoutnik defined it during his talk on dev.to

Any idea if it was recorded?

Collapse
 
joshualjohnson profile image
Joshua Johnson

Its the ability to lead projects with a certain level of confidence.

Collapse
 
felipperegazio profile image
Felippe Regazio

And how this transition can be made? Should i communicate my boss "hey im not a jr anymore look at what im doing", there is a time even if you're getting responsabilities and more complex tasks?