I would like to start this post by saying I don’t know what I am doing.
A few days ago I had my three month review with the senior developer at my organisation. At least I know more than I did when I first walked into the office over three months ago, which feels good. I work with an amazing team of people who are insanely smart. I love that we are all still learning and most importantly we all work really well together. So here is a list of all the things I learnt in my first three months as a software developer for Praekelt.org.
Don’t rush to coding
It took me two hours to get ready for my first day of work. I was so nervous about how I would hide the fact that I didn’t know anything. I changed five times because all my outfits made me look like I didn't know anything. After I finally made it to work my computer started acting up. To my surprise I spent that whole week reading about the company and familiarizing myself with everyone. I sat through meetings about the company’s stack and ways of working. It gave me time to get used to the environment and before I knew it I was coding.
Start with nothing
The most important lesson I have learnt so far is to approach everything like it’s new. It is better to go over stuff you already know and confirm what you know than to just dive into things. I had used most of the company’s tools before but their way of working with them was completely different. I had been using git for a while now and I thought I was pretty good at it. They told me to go over the git documentation and I took the executive decision to skim over it because “I know this”. Guess what? I accidentally pushed to develop on my second week at work! Luckily my mentor was super chilled and resolved it before anyone noticed. So even if you think you know, start as if you don’t.
Embrace the newbiness
Most developers suffer from imposter syndrome, it gets worse at work because stack-overflow can’t help you understand your colleague’s code. Remember that you are not the first junior developer in the company. So don’t be afraid to ask questions and to stop the conversation when you feel like things are going over your head. In my review most of my team-mates listed “asks questions” as one my strengths.
Do not start coding when you don’t know the problem
I spent over a week on a task, I solved it in three different ways and I was later told that the problem was actually not a real problem. Somewhere somehow someone had made a suggestion and no one ever actually thought about how it would work and if it was needed. I jumped straight into it because it sounded cool. I fixed it the first time, but someone else said that there could be a better way of doing it. I tried their way and then someone else said that there could be a better way of doing it. Eventually I spoke to the project manager and she said that the feature was not needed. If only I had asked.
One of the feedbacks from the review was that I multi-task, but sometimes multi-tasking creates a lot of backlog which in turn makes your work look messy. When you start a task, commit to it until the changes are deployed and it’s in production. This means that while your code is being reviewed and tested by QA you need to find things to do. This can be reviewing someone else’s code, going through a coding tutorial or learning more about what the other division does.
Spread yourself between senior developers
One way to learn to deal with imposter syndrome is to ask different people for help, even if they are not on your team. This prevents you from feeling like you are annoying because you are asking different people for help. There was a time when I felt like I needed help with every step I took. It is also important to identify the developers who love to help because some developers are more happy to help than others. Find them and marry them.
Use stand up
I find that ‘stand up’ is a great time to ask for help, everyone is there and the project manager can ask the right person to help you out. So use stand up to help talk about what you are struggling with.
There is always something new to learn, mistakes to make and some days are better than others. One moment you feel like a rockstar the next you want to pack your bags and quit before they fire you. As long as you have a posititve attitude towards the work you do and you communicate with your team it will get better. xxx
Written by Sewagodimo Matlapeng, Software Engineer at Praekelt.org