Junior developers were the real 10X developers all along
I want to write about junior developers today, because I believe there is a valid argument to be made that your average junior dev is 10X the person of the people he went to school with. Let me explain.
Most junior devs understand what keyboard shortcuts are
I have a lot to say about people I work with sometimes, who aren’t programmers. A lot of “regular office folks” can not seem to grasp the concept of keyboard shortcuts, and would rather navigate with the mouse through complex menu trees - to the point where they will completely brick their internal software / brain when you tell them to “press F2”. People who are 30,40,50 years old and somehow went through a whole career of desk jobbing without ever realizing they could make that process slightly less painful.
A good portion of my career has been to figure out what people mean when they “press the bubble” and you sit down deciphering which icon of the UI could possibly be called a bubble when it’s literally a Windows XP style GUI with 110% square buttons that only have text. Then you finally give up, walk up two office floors and let them show you, and they get scared about having someone watch over their shoulder while they work, roadblocking you for like ten minutes until you have explained to them that you don’t get the error they are getting, only to watch them click the button that says “save”, at which point they are getting an error message with an ID that they could have copied, or at the very least sent you a screenshot that I can sigh and manually type into the log files. But good luck explaining to them how the snipping tool works, and if you were to take over their keyboard to send yourself an email, they would assume you just “hacked” them.
It is a breath of fresh air to work with a guy who might not know 90% of programming, coding, developing, organization, people skills - but by god, he knows more than regular dude will ever know by the time he retires.
Junior developers have more responsibility than most other jobs would give a fresh face
In every job I have ever worked at, there were young developers committing to production, having full database access, access to repositories, passwords, access to server logging that can print out secrets and variables in plain text if you want to.
Anytime I talk to people I know in real life, I can’t help but think that it is astonishing how instantly they go from “opportunity” to “let’s exploit that shit real hard”. A lot of people are not used to having any sort of responsibility in their work, and the moment you give them one, they instantly fail at it. I have ended a lot of friendships over the years because I could not stand their lack of the simplest ethical standards.
If I had to talk to the junior developers on my team the same way I need to distrust people from other walks of life, I would not get any work done. If the junior developers on my team would exploit all the freedoms and responsibilities they have, they would get fired and potentially sued into bankruptcy.
Sure, many places are increasingly locking down things and stuff and bits and bops - not for the worse, me thinks - but the average developer still has a lot of access, responsibility, and ways to break expensive things.
Most junior developers learn at 10X the pace of intermediate developers
The early years in coding are breakneck speed by necessity. There is so much to learn about, coding, the IDE, version control, console usage, reading and understanding knowledge, different file types - and, most importantly, there is a complete mental shift when you go from a software user to a software developer and start looking under the hood of things.
I think it is always worth remembering that 99.99% of people around you have never written a single line of code, can’t run scripts even if you send it to them as a batch file and tell them to double click it - much less giving them the cool new Python script that you wrote and telling them to install Python through the Windows Store first. It’s a non-starter, you could write the coolest and most useful script in the world, and people still wouldn’t use it. That thing could literally connect to a printer and start printing hundred dollar bills, they would shrug and say they don’t want to learn how to use it.
This mental change alone is an enormous ask to make of someone, and if you were to ask the average intermediate dev to learn the same amount of new stuff, they would burn out and quit.
They are easily 10X as hungry as the depresso-dev who’s stuck in his own ways for too long
I can’t be the only one incredibly annoyed by the subset of developers who have completely given up on life, love, and the potential to improve the things that ail them. In every job I have worked, there was exactly one person who literally fell asleep, either on camera or at his desk at the office. Never zero, never two. The company I currently work for was the first who fired that guy, and that felt nice, like a cold shower on a hot day.
Not falling asleep seems to be a baseline that most developers can clear - but there is a noticeable portion of developers who are so stuck in their own ways that you can not depend on them. They work slow, they say stuff like “I don’t get paid faster to work faster”, they goof off, or just never get out of that mental state where other people tell you every step of the way.
In most companies I have worked at, you could immediately tell who didn’t belong there, these people always make it known to everyone else that they can’t be relied upon. That’s the part that always confuses me: It’s not like we are all stupid, we know that writing an SQL query did not take you eight hours of the day. We see the commit history, we hear when you scroll all day and click maybe twice per hour.
I have literally never seen a junior developer behave that way, even the ones who really struggled to match the pace. There are always things to learn, things to build, and they are desperate to stay busy, asking for new tasks, making you desperate to find something you can reasonably give to them. There is always one person on the team who has given up and requires everyone else to work around that and become complicit in his inaction - right next to a junior developer who would gladly take that bullshit task and could have it done in an hour, not eight.
The only time I have seen a junior developer fizzle out like that, it was a woman who wanted to become a veterinarian, but her dad made her get into software development because there was more money in it. Seven wasted months for everyone, thanks Dad.
Junior developers who willingly get into software development are usually hungry for more, instead of avoiding anything they can.
Junior developers ask the not-so-stupid questions and fix the longest-running issues
When you think about it, almost everything that usually lands on a junior developer’s desk is stuff that has been passed down and passed over by others, and often had to step back behind more critical tasks. However, that doesn’t make these tasks useless or unimportant, but once they have been passed over, chances are very slim that a senior dev will pick them up again, because there is always something pressing, critical, a crisis to mitigate or a new feature to finish before the deadline - you get the point. Very rarely do I get to have these quiet Fridays where I don’t have anything long-planned for a quiet Friday, so now I finally get around to fixing the bugs that irk me most.
In many cases, these are issues that annoy anyone who works with that system, but not enough to where actual customers write letters of complaint, or a client messages your boss to escalate the issue so that your boss prioritizes the task you would have wanted to work on weeks ago.
Junior developers, when properly integrated, have a lot of room to implement improvements and fix long-standing bugs, and they generally have the time and leeway to go and experiment. I find it quite interesting how often I face tasks in my work that I can not reasonably bill to the client even if I would be ultimately quicker, but they have no issues paying ultimately more for more junior dev hours for the same task.
When used correctly, this construct can cut through a lot of pain and overhead and discussions - and I can do the high-visibility work under pressure while someone else is a bit more shielded and has time to experiment.
Another point: A lot of times, having fresh users to a system or process can really put the finger on stuff that both the established developers and the clients have grown accustomed to with a “that’s how it is” mindset where we work around something, and someone asking the right questions might just push our minds towards a solution, or they come up with one themselves. And needless to say, that is motivating for the person building that feature or fixing that bug, and everyone is happy.
Takeaway: Junior developers are 10Xing harder than most people realize