When I started my junior role at Dewsign, I was hungry to learn as much as I could about everything and anything web. I would spend each day helping out where I could on current client projects, and doing some work on support sites. I also spent a lot of time reading the pull requests from the experienced developers to try and gain an understanding of the frameworks and processes used at Dewsign. With only a few months of web experience at the time of starting my junior position, I was very overwhelmed, and realised I had a lot to learn and so began my quest for knowledge. I could talk all day about everything I have learned in my time as a junior developer, but these are three key lessons/ways of thinking that have really stuck with me, and that I feel are important to everyone learning a new skill, be it in a workplace setting, or in your spare time.
1. Give yourself space to reflect
During the first few months I would go home and continue reading and watching any resource I could find on php and laravel. It’s all I thought about. I felt like if I didn’t spend this much time trying to learn, it was going to take me forever to get comfortable with being a web developer. And for a little while I was learning a lot each day and things were moving along great.
But it definitely got too much, an important part of learning is reflection. Looking back on where you were and where you came from, and observing where you are now. It’s so easy to just keep looking forward and wanting more, but turning around and looking at the progress you have made is a huge part of locking that knowledge in place. Know when to take a break and chill out for a bit, you are not wasting time, you are giving the knowledge you have soaked up time to settle in and find a home in your brain.
2. Imposter Syndrome
From what I’ve learned, every junior goes through this phase, it's a natural part of being thrust into the working development world. It got to me the most when I was reading code written by the experienced developers at Dewsign, and barely understanding a single line of it. It can be a hard feeling to get through, you beat yourself up, and tell yourself you should know this stuff, all whilst ignoring the years of experience these guys have. I couldn’t help but compare myself to them, irrationally thinking that I should be able to do exactly what they were doing, and thinking that they expected me to be able to understand and do it too.
This simply isn’t the case, as hard as it may be to convince yourself that you do belong there and that you are growing as a developer each day that goes by. I had to keep reminding myself that learning is a process that inevitably takes time. A lot of time. Just bare with it and recognise your progress. You’re smashing it.
3. Mistakes happen, but mistakes can be fixed
I have made countless mistakes along my development journey. Mistakes are expected from a junior, if you aren’t making a lot of mistakes as a junior you’re doing something wrong. What is important, is that you can grow from your mistakes, observe them and ask why a certain thing happened, and what can be done to prevent that, or catch it next time. These are all extremely valuable things to ask more experienced developers, as I can almost guarantee that they have made those same mistakes too.
I would keep note files containing snippets of code and terminal commands and refer back to them multiple times throughout each day, this really helped me eliminate making the same mistakes multiple times. Learning to make the most of of my mistakes helped me in turn start making less of them, as I got used to really observing the code I was committing and thinking about what the other developers would say when reviewing it. This is a good mindset to be in when getting ready to commit code, just take a few minutes to try and scrutinise what you have written as if you are the reviewer.
So yeah, make mistakes, ask questions, and be a nuisance for the right reasons. One day you will probably be the experienced developer being hassled by the junior.