As a junior developer, I was often fraught with insecurity and imposter syndrome with regards to my technical ability. I actually postponed the beginning of my career by at least a year due to these feelings.
Over the years these feelings have diminished somewhat, although not completely. Whilst not all of these points are related to confidence, if I had a time machine, I’d go back in time and tell myself these things. Ah, the power of hindsight!
Companies that are looking for junior developers are not looking for experts. If they were, the job advert would be for a mid or senior level developer. As I was starting out in my career, I managed to convince myself that I didn’t know enough or have enough experience.
In reality, it’s all about your attitude. A junior developer should be motivated, curious and capable of learning new things. As long as you have a reasonable thirst for knowledge, everything else will fall into place.
If a company expects more from a junior developer, they might not be worth working for in the first place.
Due to my inexperience at the time, I always had it at the back of my mind that any interviews for developer jobs would go terribly for me. I would imagine these scenarios over and over in my head. It would often involve some kind of whiteboard test where I’d cave in under the pressure. I would forget everything I knew. The unfriendly interviewer would flip over the table and shout, with an air of superiority: “Aha! I knew you didn’t know how to reverse a string, fool!”.
In reality, most interviews are nothing like this. The interviewers are not there to catch you out, or to prove you wrong. They’re simply there to find the best candidate for the position they’re recruiting for. Any company that has the unfriendly above attitude toward interviewing is almost certainly not worth working for in the first place.
As I started my career, I somehow convinced myself that I must not make any mistakes, and would be hard on myself if I did. I fully expected the company I was working for to punish me and banish me to a life of unemployment.
As a junior developer, you will make many mistakes. You should make mistakes — as long as you learn from them — and they are not always due to carelessness. It’s human to make mistakes. Senior developers make mistakes all the time. Although they are much more likely to anticipate and diagnose problems due to their experience.
If you find yourself working for a company that has unrealistic expectations about making mistakes — or has a blame culture — consider whether this is the best place for you to be working.
Early in my career, I became a diehard native iOS developer. I would preach the benefits of native development over web technologies, iOS over Android, Objective-C over Java. I felt threatened by a suggestion that there was any other way to develop apps.
I embrace that this will one day change. I’m comfortable with the fact that I can and will need to learn new technologies to best solve the problems at hand.
As I started my career, I didn’t really have much of an idea of the kinds of things that inspired and motivated me. Your first few industry jobs will likely be a journey of discovery that will help you calibrate your motivational compass.
Some people enjoy focussing on technical problems. Others like to focus on building software that adds value to people’s lives (where technical problems are just things that need to be solved). Somebody else might just enjoy learning new things or managing a team. Indeed, it’s quite possible to enjoy all of these things!
Whatever the case is for you, it’s completely okay not to know this at the start of your career as a junior developer. These things will likely change for you over time anyway. Don’t be afraid to try new jobs, work on new projects within a company or with new teams to discover what inspires you.
These are a few things I wish I could have told myself at the tentative beginning of my career. Of course, the journey of the junior developer never actually ends. Rather, it’s the very start of a lifelong journey as a developer. Stay curious, embrace change, figure out what inspires and motivates you and have fun!