Navigating Your First Role in Tech
Congratulations! You landed your first job in the tech industry! Wasn't that incredibly hard!? All the time you spent learning how to code, building out your portfolio, interviewing and getting rejected... And now, you did it! Before we go any further take a little time to reflect on how you got here, all the hard work you put in, all those late nights. You deserve a big pat on the back! 🎉
Now that you've got this fancy new job as a Software Engineer there are some things you might find helpful knowing as your career begins to take off. So let's go over some things you can do to succeed in your role.
What I'd like to cover:
- Reviewing code and getting feedback
- Knowing what to ask, and when
- Engagement and motivation
- Asking for actionable feedback
- Be open to learning new things
Reviewing code and getting feedback
Take this part of your role very seriously. Getting feedback on the work you've done and giving feedback to others are two of the biggest ways for you to improve on a swath of skills.
Reading someone else's code will expose you to new ways of doing things, new conventions, new patterns. It will challenge the way you've been doing things, and that's good! And remember, giving feedback isn't all about correcting someone's decisions; more often than not it's actually about asking questions, challenging the engineer to further explain their work, and potentially exposing issues with the logic. So even if you don't have "a better way to do it," don't be afraid to ask questions in the pull request.
This open discourse will not only help you further understand the domain and force the other engineer to think through their decisions, but it will also be a record for future engineers that come across these commits further down the road. And remember, always be respectful when reviewing someone's code! Approach it from a perspective of growth and learning, not criticizing!
Getting feedback on your code is another huge opportunity for you to learn and improve. Never take it personally. Take each comment and review from someone else as a gift! They've taken the time to read through your code and potentially found ways to make it better. Chances are that those around you have been doing this for a bit longer than you and their experience is an invaluable source of knowledge for you.
Reviewing code not only helps you grow from a technical perspective, it also helps improve your prioritization and communication skills. So do it often!
Knowing what to ask, and when
I like to say that this topic is an art form. There's this balance that can be difficult to achieve; ask for help too soon and you might be asking the wrong question, or perhaps missing an opportunity to learn. Ask too late and you could end up spinning your wheels for too long, giving the impression that you're not communicating blockers (because you're not), or worse, risking the timeline of your project. Striking this balance will always be a moving target. It will be something you'll continue to try to improve on in perpetuity.
Of course the other half of the story is knowing what to ask. I've always been impressed by new engineers that come to me with a question and what they've already done to try to answer it. It shows motivation and self-reliance, but also helps the engineer hone in on what exactly the issue is. The question becomes more focused and it is far easier to find an answer. So when you run into a blocker or some unknown do a little digging on your own to see how far you get! Explore, read the docs, search Slack, or look through previous commits.
Engagement and motivation
Working with someone that's motivated to be there, engaged with the work, hungry to learn, and eager to help makes all the difference. Folks will always be more willing to lend a hand, walk you through technical challenges, and mentor you if you show that you're hungry for it.
So how do you even show motivation? How do you appear engaged? Well, there's no single answer to these questions. There's certainly many ways to do it. But some ways could include updating stale onboarding documentation, asking thoughtful questions in pull requests, giving teammates shout outs in Slack, sharing interesting industry articles or news with the team, writing thorough tests for your work, etc., etc.
Asking for actionable feedback
You're doing and learning so many new things right now that it will be difficult to excel in all of them. More likely than not you'll have at least a couple of areas that you could improve on right now. Maybe it's the way you communicate, how you write code, domain knowledge crucial for your role, etc. You should be meeting with your manager often already, perhaps with traditional 1:1's, and when you do make sure to ask what you could improve on. If your manager can't think of anything, maybe list out some examples like I've done here. They might spark conversation and lead to the feedback you're looking for.
Another way to get feedback is to ask your peers. They may be less inclined to give actionable feedback because they might feel awkward about it, but I think it's worth asking. At the very least they'll tell you what you're doing well!
Be open to learning new things
If there's one thing I would tell myself if I could go back 10 years it would be to keep my mind open and try learning new things. For most of that time I was laser-focused on front-end stacks and I missed out on so many opportunities! For example, typed languages have existed for decades, but it wasn't until I started playing around with Flow and Typescript last year that I began learning about types and to see the benefits of expanding my scope beyond what feels comfortable.
Being curious about technical patterns and challenges outside of your direct area of expertise will make you a better engineer. This will have a compounding effect on your knowledge and overall career success. It doesn't mean that you should become a full-stack engineer if you don't want to be one! It just means that being exposed to more than just your direct area of expertise and responsibilities will give you a huge advantage in the long run.
Again, congratulations on your new role. I hope you found this helpful! If there are other areas that you think are key to succeeding in a new role let me know on Twitter! I'd love to hear your thoughts on this.