Clarity is the benefit of hindsight and when I reflect on my career so far I think of all the things I wish I had done earlier/differently when I first began writing code for money.
I’ve spoken with a LOT of junior developers in the last few years through LinkedIn, mentorship programs, bootcamps where I’ve taught and companies where I’ve worked. Many of the same issues that I thought were unique to me as a beginner in the software industry seem to be incredibly common.
This epiphany would have comforted me a bit more during those first 2–3 years where I wrestled with impostor syndrome and the ever present fear that I would be outed as a fraud at each company I went to. Better late than never I suppose.
If you are at the beginning of your career as a writer of code hopefully you can benefit from some of the mistakes I’ve made.
What could I possibly contribute to the conversation? I would sit quietly during pointing sessions and over-think my solutions to problems or stay silent when I had questions, fearing I’d expose my ignorance with a question that I was “supposed” to know.
Speaking up is probably the most sure sign that you are growing as a developer. Ask that question that you think everyone knows the answer to. Either you will also expose the ignorance of the group as a whole, which is incredibly beneficial or you will learn something. Win/win right?
I’ve yet to be laughed out of a room for asking a simple question. In fact, I’ve actually had people pull me to the side and thank me for asking those questions which others might have been too embarrassed to ask themselves.
If you have an opinion about a solution or approach, share it! As a senior developer on a team of mostly juniors, it’s interesting to hear the different view points that I usually wouldn’t consider now that I have a mental rolodex of problems I’ve previously seen it can be really helpful to get fresh eyes on a problem. Suggestions, even terrible ones, can lead to the conversation that leads to the best solution. Be the catalyst in the room that sparks that stroke of genius. Say something, say anything!
I Need Help
One of the most common concerns among new developers that I speak to is that they will be perceived as a burden if they ask too many questions or worse, incompetent. I have definitely heard and seen some not so polite responses to less experienced developers who spam the less polite members of the team with questions but guess what, it’s your job to ask questions.
Your team knows you are new. They know you likely have significantly less coding experience than them. Maybe your official title begins with Junior. They expect you to ask questions. Ask them. But… there’s always a but: try your best to solve the problem on your own with some targeted Google searching and have something to add to the conversation with them besides “I can’t figure this out”.
If you approach a senior developer on your team, it’s always nice to have some potential approach to the problem you are trying to solve. Even a terrible, no good, dirty hack that doesn’t work is better than nothing. See a theme here? Bad ideas can, at least, start a conversation and show initiative. No one really expects you to have the answers but it’s promising that you’ve given it a shot.
Be Loyal to Your Team Not Your Company
Along with imposter syndrome comes those feelings of inadequacy and as such it can be common for junior developers to feel some sense of obligation or worse, reliance, on their current company. Who else will hire me? They’ve done me a huge favor by letting me join this team. Maybe you’re right, maybe your corporate overlords have benevolently hired you despite your terrible skills and poor performance. They just like you so much they keep paying you despite your inadequacies. Must be nice.
If you are lucky enough to be part of a positive team with a manager that seems genuinely concerned with your personal development and growth then that’s awesome. Your growth as a developer however, may require you to go somewhere else eventually, perhaps unfortunately. You can love your team mates but not the tech stack or the engineering culture. That’s ok. Maybe you also want to break into a higher salary bracket. That’s ok too. Just realize you may have to leave to get those things.
Trust me, your company won’t think twice about letting you go during a recession, pandemic or if your performance becomes untenable. I wouldn’t suggest job hopping like crazy but I would also encourage beginning developers to see what’s out there before hanging their hat at their current place of work.
If you want to get to that next role/company/bracket, then you probably want to…
Sometimes just figuring out your job can be overwhelming enough without worrying about data structures, algorithms and the latest JS framework that is going to make whatever you’re currently using obsolete!
Just calm down a bit. You don’t need to learn everything at once and if you try, you’ll just be half-decent at a handful of things.
If I were to give my younger developer self advice, it’d be to study common algorithms on a regular basis to keep interview ready and have a side project using a framework/language I am interested in. Investing just a bit of time weekly to these two efforts can pay big dividends in your future. You don’t want to scramble to learn how to traverse a binary tree the day before an interview and you don’t want to wait until you are forced to look for a job to update your skills.
Your journey as a developer will almost certainly be non-linear. Perhaps you’ll start off in front end development and end up as an automation engineer or be drawn to product management or even data science. Don’t get so lost in your job that you forget to invest in yourself. Realize that your first job probably won’t be your last. Ask that (seemingly) dumb question, give your opinion and take on that tough project! In 5 years you won’t look back and regret those times that you took a chance but you may regret the times you didn’t.