So you just signed the offer and it’s official: you are a junior software engineer. First of all, congratulations! I hope you took a second to celebrate. Maybe you are self taught, maybe you took courses online or in person, maybe you went to a coding bootcamp, or maybe you went to a lot of meetups. However you chose to approach your climb into the world of software engineering, you’ve arrived at the base camp.
As with any other occupation, there are good habits that those that came before us pass down. I’m sure you’ve heard many of these habits: commit early and commit often, ask questions and be vocal about things you want to learn, and personal projects will help you pick up new skills. I’ve heard these myself from many mentors and senior developers. But some of the things I had heard from people who only just recently got the “junior” dropped off their title were far more helpful when put into practice.
Keep a list
Any and every time you hear a term or process or name or idea that you haven’t heard before, write it down and look it up later. It’s important to keep a running list, whether it’s on paper or on your phone/computer, because you will forget. Once you’ve looked it up, write up a description in your own words. Not only does this make it easy to look up these things in the future but also you can look back and see how much you’ve learned.
Kill the things you love
It feels great to finish your first component, especially if you did it all on your own. But there will come a day when you’ll see a ticket on the board that removes or redesigns what you worked on. Don’t be precious about it, learn to let go. The development process is all about iterating. That means that you might have to rewrite a component 5 times before product and the CEO and marketing and all the other departments involved are happy. Instead, look at this as an opportunity to do it better and find more efficient solutions. Iteration is about improvement!
Get your hands dirty
Dig in. It is definitely scary the first time you are told you have to make a change to the code, but that’s the beauty of git and branching. This was and is still one of the biggest challenges I face in my work. It can be intimidating: sometimes it feels like you’re playing the game Operation on a real person, but you’ll learn far more by getting your hands dirty and pairing with your coworkers on things you’re not sure about than if you wait to get permission to change something. This is not to say, go to town and restructure everything, but don’t let it hold you back. And here’s the most important part of digging in: if protocol or the process isn’t clear, get clarity and contribute to your company’s documentation. There is nothing more valuable than turning your mistakes into documentation for the future. If you do something and a more senior developer on the team points out “that’s not the way we do things,” don’t let them out of your sight until they give you an adequate reason for why they don’t do things that way and how they do do things. Write them down. And then add them to the company’s docs. If your company doesn’t have docs, start them. That’s how the student becomes the teacher.
Hopefully these habits will help you learn and keep moving down the path. But the one thing that will help you learn the most and cement what you have learned is helping the people that come behind you by becoming a mentor. There are lots of ways to give back to the community of future developers: lead a workshop at a meetup, get involved in a civic hacking event, or volunteer with a nonprofit that teaches underprivileged communities how to program. Some of the best teachers out there are “advanced beginners”. Often this is because the meanings, directions, and their struggle to understand is still fresh in their minds.
If you find these tips helpful on your journey and you’re ready to take the next step, consider teaming up with us at Laurel + Wolf.