I started to learn how to code in August 2014 at General Assembly. After finishing the 3 month Web Development Immersive course there I was able to claim the title “Junior Full Stack Developer”. I landed my first job as a Junior Full Stack Developer at Skyline Technology Solutions in February 2015.
A couple of weeks ago I started asking my self “Am I still a Junior Developer?”, because It's been 2.5 years now that I've been coding and 2 years of coding professionally. How do I know when I leveled up? Am I going to be a Junior Developer forever???
So I started to reflect back to when I started and where I am today and I remember not fully understanding callbacks, this, and prototypes in JavaScript. Not knowing why I would need to use JavaScript's .call() or .apply() methods. Or what were tools such as requireJS, webpack, grunt, or gulp actually doing for me. I can't recall when, but I remember everything was starting to click and I finally understood this (Pun Intended)!
Before I answer the question in the title of this post, I'll list out some bullet points on what I think determines the difference between a Junior & Mid-Level Developer.
Junior
- Understands basic programming concepts
- Will produce code without keeping performance or maintainability in mind sometimes
- Can use libraries & frameworks but will not always understand what the tools are actually doing for them and/or how's it doing them.
- Might copy & paste code from the web (such as Stack Overflow) without understand it, if it just works
- Will need occasional mentorship
- Sometimes won't ask for help when stuck because of fear thinking you're not good enough (You are good! It's ok to ask for help 😊)
Mid-Level
- Understands one or more languages more deeply
- Will produce code with thinking about performance & maintainability
- Understands what the tools are doing for them, digs into the source code often to understand how it works & also finds undocumented usage of tools.
- Will understand code found on the Web before even thinking about copying & pasting code.
- Will ask for help when they know they're stuck (because asking for help is ok!)
The above bullet points are just high level bullet points I gathered with the help of the internet & talking to my co-workers. So I am proud & confident to say that I am now a Mid-Level Developer 🤓!
WAIT! Can I seriously just answer this question myself and change my title on my own? You actually can because there is no piece of paper you need to claim any title in this field. In my opinion what you should do before changing your title is discuss this question with the people you work with or even the people you interact with in the tech community.
I'll definitely write a blog post when I feel I've reached Senior Level! :-)
This article originally published on my Medium publication
Top comments (35)
As others have said, titles means nothing. If you want that title for money money, then sure.
Pro-tip: Don't put Junior/Mid-Level/Senior on your resume. Put "Software Developer with X years of exp".
My experience has taught me that the path is black, gray, and white. But mostly gray. A whole bunch of it.
I don't have a solid answer, but I've across some resources that might help you:
Personally, I don't give a crap about titles at work or in the community.
I've been doing this for over 10 years now. My most recent job gave me the title of "Senior Software Developer".
You know what I did? I put a post to cover the "Senior" part. Impostor syndrome? Nah. I'm just a better software developer than yesterday. That's all.
Titles may mean nothing to you, but let me try to have you rethink that opinion.
Let's say you had a car that was having major problems and you took it to a mechanic. The service writer says "Ok Sir, I'm going to have my Entry Level Technician take a look at that for you". Most people's instant response is going to be "What? I'm not expert, but I don't think you should have someone entry level looking at my car".
See what happened there? Someone with a given "title" was instantly judged on their capabilities. We live in a society where we label and judge anything and everything while most of the time not realizing that. But most important of all is that we judge ourselves and what we're capable of doing.
I don't WANT that title for money. As a matter of fact I was still making the same amount of money as I was a Junior Developer when I claimed that title. MY JOB didn't GIVE me that title. I CLAIMED it. I didn't have to go to get another job to claim that title. What the title really means to me is PROGRESS. It helps reassure me that I am GROWING. That I am LEARNING. It helps being HEARD by people a lot easier.
It’s not about the years of experience its about the experience in your years. It's the amount of hours you're putting in those years.
Do you know want to know how I'll claim the "Senior" part? I'm going to continue PUTTING IN THE HOURS and reflect on my progress. 🙂
Senior implies capability though. You can spend X years putting out the same quality of work as someone with 1 and never grew as a developer.
To answer the question, first ask yourself why it matters? Does the the title come with increased pay check?
For someone looking at a resume, the title means next to nothing. What matters are the particular skills you have, and how many years of experience you have.
The real purpose of the junior/senior titles are to justify the hourly rates of consultants. What determines who gets them is a question of supply and demand: If the client demands x senior consultants on a project, but the consultancy currently only has x - 1 seniors, someone junior will magically find themselves promoted. It has nothing to do with skill or experience.
I think it matters because unfortunately titles do matter to most people. When I first started applying for my first Dev job and asking who was hiring I often get this Response, "Oh right now we're only looking for Mid-Level - Senior Developers". Not everyone hires Junior Developers.
I'll have to disagree to this part of your statement "and how many years of experience you have.", because I don't think years of experience always determine how much you know or can do. People learn at different paces and will decide how much they will want to dive deep into what they're learning. I've met people with less years of experience who know so much more than me & I have met people with more experience than me but not know as much as I do.
Titles will help put people in the right positions so they can continue growing. If people decide to claim titles they aren't fit for, failure maybe evident. 🙂
People who are looking for, say, a senior developer, don't care if you actually held such a title at your former job. They care about a skill-set, and – perhaps more importantly – a maturity or wisdom that comes only with experience.
If you've only a few years of actual job experience, few employers are going to take you seriously if you label yourself senior, regardless of whether or not you held such a title at your previous job. You would have to be able to back it up with some convincing evidence at the very least, and if you are able to do that, then what does the title itself matter? If you've been massively involved with an open source project (and have the commit history to document it), then no employer is going to hold it against you if your actual job title was "junior front-end developer".
I remain firmly convinced that the junior/senior classifications exist only as a way for consulting firms to signal which consultants cost what.
Adam,
That's true once you get to the point where people start phone screening, interviewing, etc.
If you think "junior" isn't a keyword that gets filtered on by people (or software) LONG before it gets to the point that someone even begins evaluating skill sets, then...well, frankly, you've been lucky to only work in environments that are way more progressive than most companies are.
Really? do years matter that much? Because I know people with 10+ years of experience who still copy paste code without understanding and program without thinking about performance, and look like they always will
Years of experience is a somewhat reliable proxy for wisdom, but of course far from a perfect indicator for actual wisdom. But it doesn’t matter that it’s not perfect, since nobody gets hired solely because of their years of experience. Most everyone still have to go through an interview process.
Also, my point wasn’t exactly that you can necessarily claim wisdom/maturity because of your years of experience, but rather that it’s hard to credibly do without it. Ie., it’s really hard to get hired into a “senior” role with only one ore two years of experience, no matter what your title was in your old job.
I don't know if that describes a junior web developer, I entered more than one year ago in the web development world , and I think I'm a junior web developer, how ever, the junior description isn't for me, I don't do that stuff (no more), what I think about the difference between junoir and senior is the experience "level" , and I didn't say experience years because it depends on the average learning/working time everyday, projects you made and even people you discuss with.For me,a senior web developer is a well experienced developer who doesn't really care about the technology itself(language, library or framework ..) but with the concept itself. A junior like me , may have some lack of knowledge about the whole development process(for my case I don't do testing, because I didn't learn it yet).
So what I'm trying to say is that the description of a junior is maybe for "a beginner" because you don't develop when you're not understanding what the code does, and if you just copy paste from stack overflow , you're just a script kiddie right (well, I don't mean by "you" Sal right? lol) .
anyway, I liked your post , it made interact (thanks for the brain food mate) ♥
I don't think it's up to you to declare yourself to be a junior/senior/whatever developer.
One can get a senior level job and miserably fail.
Get a senior job, succeed at it (ask your colleagues if you fulfilled the goals) and you'll earn the right to call yourself senior without bragging.
Personally, I couldn't care less about a title (my title is my name and its reputation).
I care about what I have to do and what I (l)earn.
It is 100% up to YOU to declare your title. Do you want to know why? Because only you can determine how confident you are with your skills. Only you know what you know.
"One can get a senior level job and miserably fail" - Yes, I agree with this. If one does fake it and accepts a job they are not qualified for then it may very well be because they were lying to themselves. Lying will only get you so far.
Here's something that may change your mind about a title.
Titles help build your reputation & give more meaning to your name. They help people paint a picture of you before meeting you for the first time. They give you character. Most important they can show your PROGRESS.
Just my Name
Sal Hernandez
My name with Titles
Sal Hernandez, Mid-Level JavaScript Developer, Co-Organizer of the charmCityJS meet-up, Pun Master
I care about what I do and what I have to learn as well. This post was about a question that I asked myself that helped me evaluate my progress & confidence. :-)
I think it's good to ask yourself what you are able to take for a job.
but those are just my thoughts.
let's take the example of a doctor or professor.
it's even (in many places) illegal to use these titles if you didn't pass exams.
Valentin Vago
master of the universe, CSS wizard and JS lord.
(these are some my titles :) )
I would like to share a story.
When I go to a interview, the interviewer told me that "the main mission for me is not monitoring you performance dealing the process but give you a help when you are not able to solve our code challenge. However, almost no candidate willing to look for a help. Actually, ask for help is very common just like what you do in Github. We are looking for someone able to work with as a team ( be a humble teammate )."
Reference:
blog.codinghorror.com/the-ten-comm...
I understood I wasn't a junior anymore when I started to work with juniors. This moment where I was the person who taught more than was being taught. The moment I stopped asking myself how to implement something but got the schema of a solution popping out in my head before any "programming" task was started.
It's like the difference between driving when you are learning how to drive a car, you are looking where the pedals are, how to use the lights and trying to remember all the rules of the highway code: but after a while, you "just" drive with confidence. This means I feel I am a senior for some stuff and junior for others.
Hi @clickclickonsal! Great post. So it was 2014 when you graduated GA. 2017 when you wrote this post. It's 2022 now, so I'm curious about your journey. Have you grown the way you hoped? Where would you say you are now on the dev spectrum?
I believe this title is subjective and niche definition for each are different. During my previous job hunting as a Drupal developer, there are some skill set that differentiate a junior from a senior .. Like themeing and module development.
Those titles I will say a re based on niche and they are subjective.
I like the irony of how Juniors are afraid to ask while Mid-levels know it's ok.
That's a lesson that took me some time to figure out.
I actually had a struggling bootcamp student that I was helping brag to me that he never Googles "if he can help it"; I had a long talk with him...
I think about this all the time. I've been coding off and on for a couple years. None professionally as I have been job searching and looking into Jr coding jobs. I have some understanding about my main language however I'm starting to learn more and more. I think going from a jr programmer to a mid level programmer often times is tied to the sophistication of your code. Really when you can write code that is scalable, with limited bugs, performance focused, and with a mind on security you've graduated into just being a mid level developer. That's my opinion anyway.
I can agree with your opinion. It's all about assessing your skill level and if you believe you truly are a above a junior level you'll be able to prove that & with no problem. 🙂