Overcome Imposter Syndrome as a New Software Developer
We humans seek order and control and stay away from chaos and instability.
Starting a new job, whether it’s the first one or switching companies, it’s always exciting at first but without preparation and having a target with a defined plan, you might find yourself searching for a new one sooner and trying to escape it.
And what makes it harder is that it’s very easy to get a new job as a software developer. It’s a blessing but it can be a curse and you might find yourself changing positions every few months, which is exhausting but also, in the long run, might indicate instability or you don’t achieve much in your position to future employers.
But lucky for you, there is a structured way to control and conquer your new job with less anxiety and they have helped me with my new position and it will surely help you too.
Affirm Imposter Syndrom
For the first few weeks, I am sure it’s the biggest thing on your mind. That you don’t deserve this new position, that you aren’t smart enough and you are just an imposter who got through by acts of cunning and deceiving the interviewers and you will soon be discovered.
Pick up a piece of paper and write down everything you know about software. From just writing some code, to dealing with different design patterns, software architecture, databases, algorithms, different programming languages and it won’t take you long to say “Wow! how do I know all of that?!”
Yes, absolutely you are a very smart person. You understand many complex subjects and can abstract problems, cut them into pieces, and solve them to deliver value. You are hired for that reason to solve problems and deliver good value through long hours of studying and practicing a lot to be in that position to build something from nothing.
Observe and Learn
You not have started a new position but also you have joined a new tribe. And similar to immigrating to a new country, you have to observe how the company works, what is the business value delivered, who are your customers, how do every teamwork, the company’s culture, and politics. You will learn a lot by just listening.
Ask Ask Ask
Do not feel afraid to ask, this is the most harmful thing you can do to yourself. You think they will say “Oh he is not that smart!” or “Why we have hired her!”.
Don’t ever do that. It’s your right to know these things and how and why things work. Firstly, so that you learn as a developer and secondly to be able to contribute and do what you are getting paid for.
It’s scary to be alone in something completely new., especially when this new thing is your main source of income. That’s why it’s survival-critical to find trusted people to guide you on your way in these uncharted waters.
Make friends and build trust. Find people that would guide you through the company with questions about how to work, what are the different processes to test, develop, deploy, …etc
Some companies now do it formally and assign a buddy to guide you on your way through the company and become the main point of contact for all your questions to make your start as smooth as possible.
This can be another way to combat imposter syndrome. The codebase you will work on is legacy software and probably would have some patches here and there, no documentation for some parts, old small libraries, complex code that can be simplified, low unit test coverage,… etc.
These are small things that can be refactored, updated, and improved. They are quick to do them, easy to review but have a good impact both on the software quality and on you by assuring you are smart.
Another big piece of advice from an ex-manager of mine is to try to find an initiative that can be easily done and have a big impact on the company. If you can find and do that, you will eliminate all thoughts about being an imposter and build trust with your new colleagues.
Exams are very hard if they are never practiced with quizzes. Similarly, you don’t wait to get feedback for your progress and achievements by the end of the probation period or during yearly reviews.
Every software company does a regular 1-on-1 for new joiners every 3–4 weeks with your team leader. If they haven’t then you have to ask about it. It’s your right to know what’s your progress and if you are achieving what you were hired for and get answers if you have any concerns.
You can also do informal ones with trusted peers that you feel comfortable talking to and get feedback on how they think you are doing so far and how you can help them to get the codebase and the project in a better position.
Every company has its own informal processes to develop, deploy, get approvals, do the testing, and so on.
Create a document on your first day and add into it these processes and know different people and how things are really done inside the company.
From that, you can learn how to improve these processes to do your assigned tasks quicker and to organize the bombardment of information you get during the first weeks.
Prepare for the Future Job
During the first months, figure out the things that you can do in your new job and would look great on your resume when you have done them.
Probably in a few years, you will leave your current new employer to join another one and you need to achieve awesome things to attract future employers and more exciting jobs.
You remember during high school or university, you say I plan to score A in all exams and similarly you need to plan what you want to achieve in the new company so you can work on achieving them.
You will have goals that would keep you always on fire and enjoying your work.
Joining a new job is exciting but also challenging and scary. I have joined a new job recently with a more senior position and I have planned what I can do to have a smooth transition and I have applied the above mindsets to make it go as smooth as possible.
This was my personal experience but I would be much happier to hear from you in the comments about what has helped you.