Being a Junior Software Engineer is a vulnerable point in your career. You are dealing constant imposter syndrome, wondering how are you going to climb the learning curve and taking joy in frequent lightbulb moments where things seem to click.
It’s easy to compare your progress to others and feel some sort of emotion towards that. It’s human to do so. As a junior it can be frustrating to begin to unravel not only the code but day to day life as a software engineer. It can feel like two steps forward and one step back.
These are 5 tips from personal hard learned lessons over the years to help unlock a small piece of that learning a bit quicker.
1. I won't expect you to know sh*t but I will expect you to give a sh*t.
Look, when you are a junior I won’t expect you to know about the intricacies of caching, writing perfect unit tests, well optimised data queries or advanced XSS defence. These are just a few examples, they illustrate a point.
What I absolutely will expect, is that you care and take ownership. I can help mentor you and guide you. I can set clear expectations and deliver a learning path. What I cannot do, is do the learning for you. That is on you. You need to care about learning these things, you need to want to get better for the team, but mainly yourself. I need you to grow beyond a junior, that’s ultimately why we are investing in you. I can give you the framework and set some ground work, but building those walls, is going to take a lot of effort only you can give.
2. Set your off-time/personal life boundaries early.
The longer it takes you to start setting boundaries in your life, the harder it will be to enforce them upon yourself. You will build habits over years which blur the lines between work and personal life that become so ingrained in you it will feel alien to just sit down and not think about work. You spend so much of your life, at your peak, at work anyway, so prioritise yourself right away.
These can be small things that make a huge difference. For example deleting slack and emails off your phone. I always find that whenever I have the work chat apps on my phone, even when i’m not at work, I find myself sitting on the sofa and checking it frequently, almost like a social media app, it started to become a habit.
If you are learning and trying to grow your skill set, this doesn’t mean I am encouraging you not to do that. By all means, spend your spare time coding and learning if that is what you want to do. Just do it on a person project perhaps where you might have more freedom to explore different learning paths.
Ultimately, you are here to learn. I need you to recuperate so we can start filling you with knowledge all over again the next day.
3. Stay away from brilliant a**holes.
In your career you will come across many brilliant people. Many of those will be brilliant engineers.
You will also come across a few non brilliant people. A few of those will also be brilliant engineers.
It can be tempting to tie to these people due to their technical prowess. Don’t.
The way you pick up soft skills from them will hurt your career much more than taking a bit longer to learn the technical skills through learning or mentorship with someone else.
Software engineering is much more than being able to code. Code is a tool you need to understand. However it’s also about being able to recognise business value, being able to mentor, being able to dissect requirements with product, being able to work with a team to deliver for customers, being able to lead and bring others up, being able to work and sympathise with other departments in your company.
The truth is, if you want to get far in your career, for the vast majority being a good coder will only get you halfway there. The rest is non technical.
4. Never let your mentor touch your keyboard.
You need to learn to do things by yourself. You need the struggle. Lazy mentors, when asked for help will just want to hop on your keyboard. Do NOT let them do that.
They need to help guide you, but not do it for you. They need to let you struggle finding that file, or that search, or with even the smallest things so you do that critical thinking. It's far too easy just to let someone do it for you, but you won't take it in nowhere near as much as if you were doing the actions.
5. Make sure the expectations for success in your role are clear from day 1.
To much in my career have I felt imposter syndrome, or felt like I was failing, or forever been chasing the carrot on the stick dangled in front of me chasing that promotion because expectations were not clear.
You must get the expectations of both your role, and what is means to progress to the next level clear from someone who has the ability to make decisions. This should come in many forms. It could be a career progression framework, it could be a self development plan, it could be regular 1-1s with you manager, it could be setting regular agreed goals. Whatever it is, make sure you fully understand what is expected of you at this level, and what is expected of you to get to the next level.
I have spent too many years of my career chasing promotions built on false promises from people who didn’t really even know what the expectations of me where themselves to not highlight to you how important this is.
Number 3 and 4 are soooooo true though! I especially love the 'The way you pick up soft skills from them will hurt your career much more' bit. So much truth, thank you for sharing 🙏
>>> "The truth is, if you want to get far in your career, for the vast majority being a good coder will only get you halfway there. The rest is non technical." >>> Truth!