We, software developers, are a special kind of people.
We love learning from others.
Yet, at the same time, we love being self-sufficient.
Most of us have overcome huge obstacles to get to where we are. And we did it all through our willpower and discipline.
Particularly if we are self-taught.
Second, we have a “do it yourself mindset”.
We like to treat any challenge like a new piece of code. We learn by breaking it. If that doesn’t work, we might read the documentation. We say, “Just give me the information, the learning I can do for myself”.
So, we see our independence as a badge of honor.
Yet, even if this independence tastes incredibly good, it can be very limiting because it makes us very skeptical about getting help from others.
At the same time, software development is a very complex field.
Full of hidden paths, complexity, and tacit knowledge—the kind of knowledge that cannot be put into words and is often difficult to communicate otherwise.
This is why, while ChatGPT can teach you how to code, it will never be able to teach you how to build great software. While knowledge is now accessible to everyone, wisdom is not. Intuition is not. Good judgment is not.
Funny enough, those are the exact things that will give you an edge in today’s insane developer jobs market.
To stand out, you must do much more than query ChatGPT or Google for an answer. You need to think creatively and reason about technical choices by yourself.
Ever since I was a student, I have been obsessed with success. Not about the end result itself, but about its causes, about how one becomes successful.
I would spend my evenings reading the biographies of the great names of history, from Alexander The Great to Warren Buffet and Steve Jobs.
All of those “high-achievers” had very different life stories. Some reached success at a very young age, while others took a lifetime to achieve it.
But they all shared one thing in common.
They all had mentors guiding them through crucial moments in their journey. Many of them have had mentors ever since they were kids.
Think of Mozart. His father has mentored him since he was a toddler, giving him a significant advantage over other musicians of his time.
The lesson of history is clear. If you want to go faster, you should learn from the wisdom of those who came before you. Find a mentor. It will change your life for the better.
🚀 Want to find out your technical gaps as a JavaScript Developer? Take this FREE Technical Assessment to find out what you need to focus on to get to Senior and beyond. 🚀
If mentoring is so valuable, why doesn’t every developer have a mentor?
Why the opposite is happening?
Ask around a bit, and you will realise that fea developers have mentors. While mentorship is one of the most demanded job perks, it is also one of the least offered.
Which is weird because most professions have some kind of mentorship in place.
Ever since Medieval times, from traders to painters to blacksmiths, the fastest way to learn the craft was by working under the supervision of a master/mentor for a few years.
Software development claims to be one of the most modern professions in the world. Yet, we miss things that other crafts had in place for centuries.
There are many reasons why mentoring is rare in software development.
First, the industry is biased toward technical proficiency.
We define great developers by their technical depth. This leads many developers to focus more on staying up-to-date with the latest frameworks instead of building complementary skills.
Being great at coding doesn’t make you a great mentor.
It can have the opposite effect. You become so blinded by your own opinion that you don’t give space to your mentee.
Secondly, developers who have both the technical and communication skills to be great mentors are already very busy in most companies, with little time left to mentor someone.
Thirdly, the software industry is moving fast.
Developers switch teams and projects very often, sometimes multiple times a year, which makes it hard for people to maintain relationships.
In my case, switching jobs meant losing more than one mentor. Working in different places made it much harder for us to find the time to sync.
Finally, there is no specialized training for Senior Developers who want to become mentors.
Successful mentoring requires very different skills, from technical proficiency to empathy, patience, and clear communication. As a Senior Developer, you are supposed to figure all that out by yourself with no clear path to guide you.
Without appropriate training, there is a lack of skilled engineers who can mentor effectively.
All in all, mentoring is hard to come by in software development. But don’t get discouraged. Later in this article, I will show you how to find a mentor the fast way.
As a self-taught developer, I was hardworking and ambitious. I was also more stubborn than a goat. Stubbornness cost me a promotion and almost got me fired.
But I saw it as a sign of being smart and independent.
Why was I so afraid to ask for help?
First, like many software developers, I felt that asking for advice was a sign of incompetence. If there is one thing you don’t want to be on a developer team, it is incompetence.
Instead of asking my fellow Senior developers for help, I preferred to do my research. Or not to ask anything at all and lose the opportunity to learn.
On the other hand, it was due to my background. Growing up in rural Romania taught me not to depend on other people. The State and its Institutions are still building up in East Europe.
Young people are taught that if they want to make it in life, they will have to make it alone.
Lots of developers I know come from disadvantaged backgrounds as well, like broken families, poor neighbourhoods, or unstable environments. So they carry the “make it on your own” mindset.
Then there is the moment we live in.
Modern world is fuelled by individualism.
We are told that we can and should succeed alone. We don’t need partners or friends. We should engage in relationships only if they meet our infinite checklists, and we take pride in this.
In reality, we are more fragile and dependent than ever before.
As our relationships and feelings of connection are at a record low, we forget that strength comes as much from ourselves as from others at work and at home.
Why look for help and advice if you are supposed to do it all yourself?
Finally, the culture in many software teams makes mentoring much less likely.
Software teams are becoming increasingly competitive. Everyone is fighting to stand out and get that promotion, most often at the expense of collaboration.
In many development teams, asking for help will tag you as a junior developer.
Or like an inexperienced Senior. As much as we love to preach openness, diversity, and inclusion, when it comes to the reality of it, developers can be pretty unfriendly to newcomers.
Despite all that, many Senior developers would love to mentor, yet most of the time, they don’t have the time or energy to do it. Their to-do lists are full of too many tasks, leaving mentoring at the end. They have no choice. That is how the industry works.
By now, you can understand why, when people talked about mentors, I was very skeptical.
My ego mixed this obsession with “going at it alone,” which made me discount it as something similar to a Ponzi scheme or something people do to gain social status rather than help.
Yet, as I moved from Junior to Mid Level Developer, my growth slowed down.
There was no clear path for me to get to the next level.
My CTO told me I simply needed more years of experience. Online courses were either superficial or simply feeding me the latest trending framework.
Every Senior Developer I knew gave me different pieces of advice, which only confused me. Some said I should focus on one technology, others that I should diversify my skills. Some told me to switch companies; others told me to stay.
After months of trying to figure it out myself, I lost hope.
You might think I had an epiphany, like in Hollywood movies where the hero keeps trying harder until they eventually make it.
But I didn’t.
Instead, I almost quit.
Not like quitting my job. But I quit trying to get better. Instead of improving my skills, I killed my time with video games and other unproductive hobbies.
One day, I luckily left work early and had a few hours to spare, so I joined a local Meetup where some Senior Developers and CTOs talked about Software Architecture.
I didn’t know much about any of the things they were going to talk about. But I joined them anyway. It turned out to be one of the best decisions I’ve ever made.
🚀 Want to find out your technical gaps as a JavaScript Developer? Take this FREE Technical Assessment to find out what you need to focus on to get to Senior and beyond. 🚀
That’s when I met the person who would become my first mentor. A very experienced software engineer and technical leader who influenced me very much early in my career. And who I respect and admire to this day.
He was in great physical shape and had a great smile on his face. Nothing like most Senior Developers I knew, who were almost always busy and stressed out.
Despite his young age, he was already a CTO at a big tech company—one of the youngest CTOs I’ve met for a company of such size.
Sure, I saw kids in their 20’ies getting there, but that’s because they co-founded a tiny startup, not by escalating the software development career ladder.
I knew I had to take him out for coffee or lunch and ask him what he was doing differently. And what advice would he give to a fresh software developer like me? I was incredibly nervous, but I grabbed my courage and asked him for his contact data after he finished.
They say that when the student is ready, the teacher will appear.
A week later, we met for a coffee.
We were supposed to meet for 30 minutes but talked for hours. He gave me his perspective on some decisions I had been struggling with for months. Like which technologies to focus on, which job offer to accept, and how to plan my career long-term.
That lunch became a monthly habit. We met almost every month for years. This encounter alone rebooted my developer career. I went from going years without a promotion to getting promoted nearly every year.
As years passed by, I got more and more mentors.
Having learned my lesson, whenever I faced a roadblock, I would look for someone who solved that problem before. If we clicked, I would ask them to mentor me.
Most people would love to do so.
It was one of my mentors who pushed me to start mentoring other developers myself and helped me begin what later became theSeniorDev.
During my time as a mentee, I had bad and good experiences. Some mentors would help me sort out problems I struggled with for hours in seconds. Others would give me a aggrandising monologue about themselves and waste both of our time.
All my great mentors were humble—not overly humble, but humble and confident enough not to use the time we spent together to validate ourselves.
My great mentors were not self-centered.
They were more interested in helping me progress with my developer career than in looking smart. They were also great listeners.
Great mentors also made sure I felt safe enough to share my most intimate fears. And made sure they understood the full context of a situation before jumping in with advice.
When they gave me advice, they avoided being patronizing, and even if they had decades of experience ahead of me, they made me feel like their equal.
ChatGPT can teach you JavaScript and it can teach you Python. But it can’t teach you passion for the craft, conviction, or critical thinking.
If the challenges we faced as developers were only technical, everyone with access to the Internet would be a Senior Developer by now. Just read the documentation and you are set.
Yet, it turns out that what makes the most difference in the real world are human skills that only other humans can teach.
Every one of my mentors had some kind of certification. All of them had many years of experience in software development. Most had very important positions in the companies they worked for, from CTOs to Tech Leads and Principal Engineers.
Yet, the best advice I’ve been given came from self-made people. Most of them were self-taught developers who earned their place at the table. The best mentors don’t speak from books. They speak from personal wisdom. That kind of wisdom only comes from experience.
Now that you know how to spot a great software development mentor, let’s understand what you can count on them for. What a mentor can do for you, and what they can’t.
🚀 Want to find out your technical gaps as a JavaScript Developer? Take this FREE Technical Assessment to find out what you need to focus on to get to Senior and beyond. 🚀
Finding a great software development mentor takes work. Most great software engineers are already employed in great companies. They have many projects going on and little time to spare. And even if they are great at building software, they might not be great mentors.
If you are looking for a mentor, expect it to take a while. Be persistent and understand that getting mentorship is a long-term career strategy.
Ok, so you want a mentor. But you don’t know how to find one.
Okay, jokes aside, puppy eyes might help you, but the best approach is to take them for lunch or coffee without asking for anything in return.
There are two main ways of finding a software development mentor. You can do it in person, at your job, at Meetups, or at conferences. You can also do it online, on social media, or on specialized platforms.
Getting a Senior Developer at your job to mentor you seems like a great idea, but remember that there might be a conflict of interest, especially if that person is your boss.
You won’t be able to discuss many sensitive topics with them because you both work in the same place (things like salary, switching jobs, etc.).
For many developers, this might be the most challenging way to find a mentor. Most of us are naturally shy; networking doesn’t come naturally. So, you will need to push yourself out of your comfort zone. I promise you, it will pay off.
No matter how much better online communication tools are improving, it is still far easier to connect with someone in the real world.
I remember the first time I wanted to invite one of my mentors over lunch. My heart was pounding. I was afraid of looking stupid. I was scared of them saying no. Luckily, I didn’t let that fear hold me back, and I still asked them. They said yes.
My fear of rejection was irrational, and so is yours. Don’t let it hold you back from going for what you want. Get out there and meet people in the real world, and you will find a mentor in no time.
If finding a mentor in the real world was already hard, finding them online was even harder.
The COVID-19 pandemic changed that. With the world being locked down, people wanted a way to connect with each other. Mentoring was one of those ways. And so, online mentoring platforms popped up.
Today, there are a few dozen platforms that help you find a software development mentor. You can choose to pay or go the non-profit route. The problem here is the availability and quality of the mentoring service provided.
As before, my advice here is to be persistent. Finding a great mentor will take some trial and error, but trust me, it will pay off.
Finally, keep in mind that sometimes the mentor finds you.
Look for places where Senior Developers hang out and go there. Like Meetups, conferences, and co-working spaces. Offer to take them out for lunch or coffee. Sooner than you know, you will have more than one mentor.
Do you want me and my team to personally mentor you to the Senior level and beyond? Apply here for a chat with me to see if we could be a fit for each other (spots are limited to availability and current demand).
SeniorDev Tip: Get more than one mentor. You can have a technical mentor, a leadership mentor, etc. The more, the better, as long as you can manage your time.
To make the most out of your mentorship engagement, you and your mentor must have the right expectations. Let’s start with thing things a mentor won’t be able to help you with:
No matter how great the mentor is, in the end, it is your life. You will have to call the shots.
Any experienced mentor will make this clear from the beginning. They can and will give you feedback, which will help you make a much more informed decision.
But ultimately, you are the one making decisions. Because it is your future, it is your responsibility. A great mentor will teach you how to make better decisions and live with the results of those decisions by avoiding paralysis by analysis, for example.
Just as with making decisions, a mentor can point you toward the path you have to take. But they won’t walk that path for you. You will have to walk it yourself.
No matter how great your mentor's advice, you will have to do the work.
“You can take a horse to water, but you can’t make it drink.”
If you don’t put it into practice by taking action, it won’t make much difference. Because knowing about something is not enough. It is doing that gives you results. And the doing you will have to do by yourself.
The good news is that a mentor will ensure that the things you do are the right ones. So yes, you still have to do the stuff, but you will be doing the right stuff.
There is a big difference between mentorship and training. While mentorship might include training, this will only be the case with some mentors. However, mentors might recommend and point you to a training they see fit.
In my case, one of my mentors invited me to dig deeper into my personality profile and learn more about emotional intelligence. Another mentor recommended I get additional training on AGILE, which proved crucial for my promotion to Senior Developer.
Okay, at this point, you might think, “Is it even worth it for me to get a software development mentor if they can’t help me do all these things?” The short answer is “Yes!”.
Even if a mentor can’t do everything for you, they will take your career to the next level by helping you with many other things. Keep reading below to find out.
🚀 Want to find out your technical gaps as a JavaScript Developer? Take this FREE Technical Assessment to find out what you need to focus on to get to Senior and beyond. 🚀
Now, let’s talk about what a mentor can help you with so you know what to ask them when you find them and have the right expectations when working with them.
By building Large Language Models(LLMs) like ChatGPT, we learned that much of the world’s knowledge is not written in text form. That knowledge is also not put into video or stored in any format a machine might read.
Much of the world’s knowledge lives in our minds as a mental representation of reality.
The minds of millions of humans.
That is because a significant chunk of existing knowledge in any given domain can’t be easily articulated into words. This knowledge is called tacit knowledge.
Precisely the kind of knowledge a mentor can teach you.
Yet, most of the world's knowledge is not in text form. It lies in our minds. Wisdom, intuition, and critical thinking are examples of that kind of knowledge. A mentor is the best way to acquire that kind of tacit knowledge.
ChatGPT can teach you JavaScript and Python. But it can’t teach you passion. It can’t teach you conviction. And it can’t teach you critical thinking.
If the challenges we faced as developers were only technical, then everyone with access to the Internet would be a Senior Developer by now. Just read the documentation, and you are good to go.
It turns out that what makes the difference in the real world are very human skills. Skills that only other humans can teach you. Skills that a mentor can teach you the best.
Your mentor has probably been a developer for a long time. They have seen software development for what it is—the good and the bad.
And still, they kept on going.
Maybe because they had a lot of passion, maybe because they had a lot of tenacity, or maybe because they had no choice—it doesn’t matter. But they probably owe much of their success to the fact that they did not quit.
That’s something that only a human can teach you. Persisting in the face of trouble and keeping your cool is one of the most valuable skills you can learn. One skill that only a mentor can teach you best.
One reason it is so hard to coach yourself is that, first, you don’t know what you don’t know. Second, it is hard to have perspective when you play the game in the first person. You risk not seeing the forest from the trees.
Third, it is hard to judge one's own potential without the experience of having seen other developers grow and evolve before.
A great mentor will be able to do all that for you.
They will be able to judge your performance and your potential as a developer. They will be able to detect strengths and weaknesses in your skills. And to give you hints on how to fix the gaps and fully untap that potential.
I will go as far as saying that nobody except a great mentor (who sometimes could be your tech lead if you are lucky) can do that. No amount of self-diagnosing using Google or ChatGPT will beat years of experience.
This is it!
By now, you should have a good understanding of why you need a mentor as a software developer, how a mentor can help you, and how to find one.
If you want my team and I to mentor you towards the Senior level and beyond, click here to schedule a chat with me and see if we could be a fit.
And remember, you are the best!
Take care,
Dragos
🚀 Want to find out your technical gaps as a JavaScript Developer? Take this FREE Technical Assessment to find out what you need to focus on to get to Senior and beyond. 🚀