There comes a turning point in every developers' career when they are no longer considered a junior dev. That magical day might be defined by your company or, in many cases, it happens and you don't have an official indicator. While there might not be clear lines that define the different levels of developer, there are some changes that you will start to notice as you progress on the path. You'll start noticing subtle differences in your normal work day.
A big indicator that you aren't a junior developer any more is when you find yourself mentoring junior developers. Mentoring is something I'm personally passionate about and something that is desperately needed in tech. Although when I started working with my first junior dev, I didn't even know what was happening.
I didn't notice at first
Sure, we had a new person at work and they were learning their way around everything. When they would ask me questions in the beginning it made since because it's hard setting up new projects and figuring out the business logic behind them. Then they kept coming back with questions that I thought were basic programming knowledge. We started talking about code and different concepts and that's when they told me this was their first software development job!
It completely caught me off guard. It's not like someone assigned this person to me and told me to mentor them. What I thought was just helping the new person get up and running turned into me getting my first junior dev to mentor and I didn't even know it. They started appearing more often and asking more questions so I just answered them. It didn’t seem like anything special.
It took time for me to get used to them asking questions and for guidance
Having someone come ask you questions about what feels like every little thing can be annoying. It's just a fact. That's why you have to know how to approach mentoring and how to help your junior dev learn how to answer their own questions. It took a while for me to get used to this person popping up almost every 30 minutes. Usually the questions they had were easy to answer, but when you're not used to having someone asking for help this often it's an adjustment.
If you don't usually have to explain the low-level details at a high-level, it really takes some getting used to. This is a person who is coming to you for guidance and for your experience. You have to learn how to answer their questions without acting irritated or being condescending. And if you have been that way, just apologize. One of the best things you can do for yourself to adjust to being a mentor is to setup a system with your junior dev for answering questions.
I was actually surprised I knew so much
Even after years of being a software developer, it can still feel like you don't know enough. The programming languages and tools are constantly changing so there's a lot to keep up with. When I had somebody coming to me for help, it was a little unnerving at first. I don't want to teach anybody the wrong thing so I was really surprised when I knew the answers to the questions they were asking.
Understanding the basic concepts of programming well enough to explain to someone else means you actually have to know what you're talking about. There might be questions they ask that show you places you can learn more as well. When you have a junior dev looking to you to help them learn their way around, remember that you know more than you think. Practicing something and doing it well for years gives you experience to pull from that you might not even realize.
It made me more aware of the decisions I was making and the things I was learning
When it's just you writing code by yourself, you might go through several iterations of code before you're happy with the result. That changes when you have someone staring at your screen while you type. Many junior developers will ask you questions about why you wrote code a particular and you should be able to answer. Although explaining your train of thought might sound fun, it might have more fluff than a junior dev needs.
Making concise decisions is a crucial skill for any developer and having a junior dev shadow you makes it even more important. You have to be aware of your decision making process and the new things you learn for more than just yourself. Explaining how your code fits into the overall architecture of the project helps them learn how to make good decisions on their own. Once you get used to having your junior dev around, you might notice your own skills improve because you have to be able to explain things as you do them.
It made me focus on someone else for a while
A junior developer is usually eager to learn and ready to work hard. It can be refreshing to be around after you've been in the industry for a while. Junior developers can bring a new energy that makes you notice them and want to help them. This makes you get out of your head and can give you a different perspective on how you work.
We're pushed to stay up to date on our skills with almost every free moment we have and a junior dev can break that up. Teaching someone what you know when they really want to learn is fun. You get to watch them make progress and grow in their careers. Even if you only have them for a few days, they always pull you out of your own crap for a while so that you can focus on them.
Pairing junior developers with senior developers is a great way to get the juniors up to speed. Although it can take some adjustment for the seniors, they'll get something out of it too. It really helps when someone lets you know that's what's happening before it happens though.
I'll be honest, I had to apologize to my surprise junior developer. It does take practice to be a good mentor and knowing when you're wrong and being able to admit to a junior developer is important. Part of being a good senior dev is being humble and teachable. If you aren't, how could you expect anyone to learn from you?
Hey! You should follow me on Twitter because reasons: https://twitter.com/FlippedCoding
Top comments (9)
Great post. I like that you mention being irritated at times. Training people can be amazing but even the most patient of us can be challenged at tines. I sincerely hope when I get my first job I have a mentor that's patient and willing to answer even mundane questions.
Whenever I help classmates out with assignments, I try to remember that at some point I was where they were, confused as heck, about something I consider obvious. That scenario is reversed whenever I ask my teacher for help. Thanks for sharing.
Personally, I would suggest not to be afraid to speak your mind if your mentor does not answer to your expectations.(Hopefully, you won't come to that.) I cannot imagine how I would have learned the things I know now, have it not been for my mentors. Mentoring is a big deal and I am glad to hear you were kind of a mentor during you school years.
I would like to add something which I consider of a big importance.
The most useful thing you can take from the constant questions is that you can track the progress people make.
When the questions repeat - it is clear that either you have difficulties with the explaining or they have difficulties with the learning.
When the questions difficulty stay on the same level - well, to me it looks like people relying more on me than on themselves, which is not OK.
But when the questions evolve - you understand what is the potential in these people. That to me always feels inspiring. Plus, as a bonus - all the things you described with the self-improvement.
As people grow, you grow with them :)
Great post! What surprised me the most is how much I learned once I got someone under me. One thing I learned early on is that you have to set boundaries. I am happy to help but I'm not your Google assistant.
I totally agree and I had been mentoring junior developers as well.
Since I feel it's a great opportunity to learn and grow as a developer.
I find that interacting with Junior developers helps a lot in addressing some of my own gaps and shortcoming that I need to improve greatly.
Nice Post!
Awesome
Great post!
Lovely read. Already looking forward to mentoring someone :)