Are 2 years enough to make someone “senior”? If it is... then what is a junior? And where is the middle?
Open any job board and it will feel like every company only hires seniors... but if everyone is a “senior”, then no one really is one.
Because of that, you start having positions like “staff”, “principal”, “expert”, “advanced”, “specialist”, “lead”, “rockstar”, “master”, and any combination of that... (ok, I haven't actually seen the “master” one... yet.)
And if you have to create new positions to show seniority, then a senior might as well be a junior!
The “years of experience” myth
You can have decades doing the exact same basic thing without any alteration or you can have a wild couple of years doing odd jobs that let you experiment with a breadth of problems... what even is seniority in this case?
There are a couple of books and TED talks out there about the “10_000 hours” and the “first 20 hours”. And they certainly apply to programming.
And of course...
忍者猫, CC0, via Wikimedia Commons |
Am I saying all those 2-year seniors are on the ‘Peak of “Mount Stupid”’?
No! Or well, perhaps?
Some do manage that, after all, networking and connections, not the techy type of them mind you, do net you jobs and opportunities you wouldn’t have otherwise.
Also why some people suffer from impostor syndrome.
So... why?
Maybe ego? Maybe self-realized prophecy? Maybe laziness? Maybe short sight? Maybe all of that?
Why don’t you put in the comments “the why”?
Why is this bad?
An old adage is that a junior is someone who gives others problems, a middle level is someone who takes care of his problems and a senior is the one that fixes others’ problems.
And by that definition, a senior has to help others in order to grow.
And it should go without saying that you can’t just spawn as a senior... you should go through the steps. It maybe will take a different time for each one, but it will be there.
For the developer
Impostor syndrome aside, developers get lost on what to apply to and might either moonshot or undershoot, and in either case... someone will have a bad time.
For the companies
They spend a lot to hire, retain, and finally replace people.
But more than they lose knowledge. If everyone is senior... who are they repassing their knowledge to? What happens when they leave?
And besides... having seniors making simple CRUDs and centering divs is a kind of waste don’t you think?
What I want you to think about
There’s a reason to divide people into junior, medior, and senior.
There might be even cases to have something more than that if it actually means something.
And you can always forgo that and opt to have some kind of progression with levels...
Just like our functions and variables have meaningful names, ordering, and reason... so should the developers’ positions.
There’s a job and a place for everyone.
A senior leaving on a senior team also leaves with the knowledge.
A senior leaving a proper team with juniors and mediors will leave behind some knowledge with the others. Also... they will develop into seniors eventually.
Cover Photo by Vidar Nordli-Mathisen on Unsplash
Top comments (15)
My take is that unless the entire industry is willing to band together and establish actual definitions with quantifiable values then it's always going to continue to be a messy and ambiguous label.
The fact is that there is significant financial incentive for people to apply a senior title to themselves, and not difficult at all to find a small company where a single dev takes on roles and responsibilities at a "senior level" by most traditional definitions of the term, except of course "years of experience."
Then YoE similarly tends to have a weaker correlation with skill level in software than other fields, presumably due to the incredible speed at which things change.
I don't think there's any easy answers, but I personally never fault another developer for playing the silly "title" game to further their career.
The entire industry banding together for anything is something I don't see happening so soon (or you know, ever).
But the compensation part... the position will pay what it will pay, but the title behind will attract or repel some. I also see a bunch of "senior" positions that are paying less than those mythical few "junior" positions.
But you're right, it's difficult to find a good answer. I just hope it would be easier to at least weed out some obvious bad ones.
But of course there are exceptions, this isn't a 100% science. So a better definition would be:
People in our industry now understand this which is why they want Seniors mostly, because both juniors and mids need a senior to take care of them, this is due to the complexity of our work and also due to the fact that the work is not organized in a way that a junior can do their part.
This is not the same in ANY other industry, where for example, one worker puts the product in a package, another worker wraps the package and so on. In other industries, each worker has a specific tiny work, meanwhile, in our industry, it still surprises me that they desire FULL-STACK devs who need to know: PHP - Laravel/Yii/Symfony/Zend, JS - Vue.js/React.js, CI-CD, Networking, Linux CLI, Git/SVN, Jira or whatever else they use, MySQL/Redis/MongoDB/ElasticSearch/CHUGACHINGA/FILL-IN-THE-LATEST-TECH-THAT-NO-ONE-EVER-HEARD-OF-IT-BUT-SOMEHOW-IT-IS-A-HARD-REQUIREMENT
It is CHAOS, sadly, and it is up to each one of us to push the narrative that we want to see in the future: as for me, I stopped applying for FULL-STACK jobs and I always tell the recruiters or the devs that full-stack makes for sloppy code, because devs are either backend or frontend oriented, I believe it is VERY rare to find a dev who likes and enjoys both front and back equally.
Instead of technologies, I would put having the basics.
Some people get far too used to working with one framework that they blur what is framework and what is language.
But I have to disagree about the "how much time they take".
I mean, sure, if you compare the same task, yes, probably it will go like that. But having a team means that a senior don't have to make something a junior or a mid can do, and can, instead, do things that the others can't or don't even know how to start. (like performance, scalabity, security...) Altough, yes, they still need to "take care" of others.
True, but a senior would not be limited to performance, scalability and security. They do development tasks just like the other team members.
In my last project, I had 1 junior with me. What I did was I usually gave him the easy tasks and took the harder tasks on me. Even the easy tasks would take a long time with him and he would ask me 1000 questions until I finally give him the solution.
Sounds like you are a bad mentor
The suits' primary job is inventing new titles, when they aren't finding other ways to interfere with actual work being accomplished, so no one's ever going to solve that problem. Settle a definition for Senior vs Junior and by lunch some management, marketing, or HR department will have subdivided, recontextualized, and synergized a dozen different new terms to reconfuse the situation.
As for the community itself, one can call themselves whatever they want, but a look at their code will quickly suss out who's a senior and who's a junior. Titles are worthless, experience matters to some extent, but it's the code that does the talking, as it should be.
This is an extremely interesting article, and a matter I think about often.
I've seen people quickly becoming "senior", maybe because as a senior the salary is higher (you also have more responsibilities though).
I think that to become a senior you need solid problem-solving and leadership skills.
You can develop these skills through experiencing a wide range of business problems and working in different settings. Senior engineers know why you should do/use something instead of something else and know how to justify their reasonings.
I'm not sure if 2 years are enough. Probably not.
Also, I believe that this is a problem partially caused by HR (or whoever creates the job descriptions). Some job descriptions are INSANE. 🤣
You mean the classic "we want a junior with the experience of a senior, oh, and we are paying an intern salary".
Although... I'm more inclined to blame other developers, I see many are lazy and don't want to take care of more junior people.
Also others who believe in doing, even the more trivial stuff, themselves instead of passing those to people who should be doing those (juniors and mediors).
And when you have just seniors... then you're being wasteful having seniors just to center divs and make CRUDs.
At least these titles add some positive value to being "senior" (literally: older) which is otherwise often regarded as a disadvantage, also in information technology, with the prevailing ageism fearing that people get "too old" to understand new technology or get things done quickly. So as I'm not the youngest anymore, maybe I should take pride in calling myself a "senior" or I could make a joke out of it and make business cards with "Elderly Frontend Developer".
In every company I've worked for, "Senior" anything simply means "older". Skill level is irrelevant
Another side effect to add!
Since all positions are for "senior", many think they can (and some certainly do) bullshit their way into a "senior" position.
I think there are even different levels to a Senior developer because no one person is the same.
<?php
function fizzbuzz($n) {
for ($i = 1; $i <= $n ; $i++) {
$output = '';
if ($i % 3 == 0) {
$output = "Fizz";
}
if ($i % 5 == 0) {
$output .= "Buzz";
}
if ($output == '') {
$output = $i;
}
echo "$output------";
}
}
fizzbuzz(45);
Good stuff.