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


Latest comments (35)
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 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 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 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 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...
People stop asking themselves this question? No one sent me the memo...
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.
Although these titles seems arbitrary, it's useful to have a way for people to feel like they are progressing. A lot of jobs still subscribe to this model and you've done a great job of breaking it down.
I disagree with 'X numbers of experience' being a metric for talent. I've worked with many developers with 20+ yeas experience who have been terrible at modern programming.
It doesn't matter how long you have been in the game, if you're not learning it's game over.
I consider myself 'senior' at several things and 'junior' at several other things. It changes on a daily basis because I'm always trying to learn and improve. The developer landscape changes so quickly, especially in web development.
Not being a junior developer anymore probably comes at the point where you feel like you know even less know than you did when you first started, you ask more questions then ever and you've learned when to use or not use a given pattern or technology, questioning everything. Including yourself!
Well said Valerie! It’s not about the years of experience its about the experience in your years.
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.
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.
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. 🙂