5 tips for your first job in software development
Post by: Frida Jacobsson
In this blog post, I will share my experience of being new at Axis. Why it’s important to let concepts go and show others your good-enough code. Hopefully, if you are new like me, you’ll get some tips to make the process of learning a lot easier.
Are you about to start your career in software development? This is a story for you.
During this summer I’ve had a summer job in software development in R&D. This meant being part of a team with experienced developers (of course anyone would seem experienced to me, but I promise you, these ones really were). When I left university for summer break my classmates asked me if I thought my new job would be difficult. We were all nervous about the thought of our first job or internship. And yes, I wasn’t really expecting anything but difficult.
I joined a team who was developing Axis’s own instance of Backstage. Backstage is a new web portal originally from Spotify with the purpose of improving developers’ life. This by providing an overview over components, systems, and APIs and how they are linked together. If you are brand new in a system or company this overview is especially valuable, which of course was a big motivation for me.
Joining the Backstage team also meant that I was facing a new code base. This can be challenging for most people, but overwhelming if the only code bases you have seen so far are the ones in school. At the morning of my third day, I stared at the code for a while, added some “Hello world”-elements, didn’t see any difference. Went to get coffee instead. I knew I needed an approach to get started and find my way in all this new code. So, I tried one thing that I had heard about, to break things.
This approach meant removing element after element and slowly taking the application apart. Putting some bright colored background on some elements. Figuring out how it’s all connected. I did this until I understood the system better and later that afternoon, I was really happy that I eventually managed to change a logo so it would work with different themes.
The following weeks I managed to display the Friday cookie of the week on the home screen as a small plugin (this is a very famous cookie in Axis). I held a meeting with another team on how to implement a view in Backstage that they could benefit from. I spent my days trying, getting confused, trying some more, repeatedly until what seemed impossible not so long ago suddenly was up for review. So, what else did help? Well, here comes…
My 5 tips for beginners
1. Let things go
When you are new at work you are probably constantly bumping into words and concepts that you have never heard of, sometimes multiple in one sentence. This can easily make you feel overwhelmed. What I’ve found useful is to sometimes be like an ostrich and put your head in the sand for a while. Listen and learn new concepts, but also equally importantly, let most of them go. Enjoy the progress you do make and accept that you won’t be able to learn it all at once. At least not this very Monday meeting.
2. Break it down
What often seems so massive at first is mostly about breaking tasks down. Create a table. Fill the table with something. Ignore if at first the code is horrible, instead focus on making it work, then make it pretty. I always keep a physical notepad next to me in case I get confused. It’s a quick way to make a list of all the small tasks I must do to eventually implement my whole feature. I can then check them off one by one which is really satisfying. It can also be useful to use the notepad to draw how components are connected, or for example the communication between front-end and back-end. It’s okay to take your time to get to know the system.
3. Share your good-enough code
For many beginners code reviews can be an extra challenging part. I know it can feel really vulnerable when your code is out there, and it’s easy to therefore spend days improving it. But it’s okay that the first draft turns out a bit messy or complicated. It’s also better to get feedback frequently so that you don’t spend time on things that’s not really needed. And at least the code is working (somehow).
4. Take breaks from trying so hard
There is no need to only focus on your code. Take yourself some time to process everything and discover your workplace instead. Drink a lot of sparkling water and walk around in the different buildings. Say yes to things you would like to do outside your specific task. Or why not ask one of your colleagues if they have time to show you some cool system or product they are working on? I’ve learned so many things this summer by not trying so hard to learn everything. And I promise you, the code will be there waiting for you.
5. Get good at being stuck
I know we all get stuck, but it can still make me feel really frustrated. And probably one of the best qualities you can have as a developer is to be good at being stuck. There are some things that can make it less unbearable. For example, sometimes being stuck forces you to practice asking questions. You need to know both which questions to ask but also how to ask them to get the answer you need.
Write the questions down and bring them to standup. Often you won’t even get to the point where you eventually ask them, just putting them in writing makes you realize either the answer or how you can find the answer on your own.
Finally, one annoying thing that often works when you are stuck is to pause, leave and do something else. When you are rested and have some perspective you can look at the problem again. I know it might sound simple but sometimes when I get back to the problem, I realize that I don’t really have to solve it at all. I was just stubborn to do it that exact way.
Except for some minor incidents, like not finding my office and pushing the wrong code, the summer went well. In the beginning of September when I came back to school my classmates asked me how the summer job turned out. Was it as difficult as I first thought? I shrugged my shoulders and told them that yes, it was difficult. But we shouldn’t look for easy. We should look for encouraging colleagues and exciting tasks. And it will all work out fine.
Today I’ve been at Axis for over a year, as summer worker, thesis worker and now full-time employee. I’m now a software developer in the same team I worked with last summer. I still have to think about my own tips, but it gets easier and easier. And now, a new batch of summer workers is here. I hope that I can give them some of the assurance that was given to me last summer!
Thank you for reading,