People have visions of coding life to be full of innovation, daily wins and inspiration - and some days are! But there are other days when you just feel like hibernating until it all blows over. I think it's important to show the not-so-pretty side to learning to code. Inspiration for this post has come from a couple of really bloody hard, trying weeks and gives an honest account of the trials and tribulations of a career as a junior developer.
As a junior developer it's fairly normal to have 'imposter syndrome', in fact I feel out of my depth 90% of the time. There will be days when things just do not go your way, when bugs appear out of nowhere, the workload piles on and there's not enough hours in the day to get everything done.
My role as a developer is mostly back-end development. In my role, clients post tickets on an online support system for website changes such as inserting Google Analytics tracking or for a data extract. I came back off of a weeks break to move house, and the number of tickets in my queue had tripled since i'd last seen it (yay!)
Deadlines. You will have deadlines. Clients sometimes have very tight deadlines to keep to, and missing these deadlines may have a negative impact on their business. My normal working week of 37 hours was more like 42 hours once i'd made sure that clients requests were completed. This meant lots of lunching-on-the-job and staying late.
Not only are there tight deadlines, but you will get last-minute urgent requests that needed to have been done yesterday (hello time machine)
There will be days when you get stuck on a problem and you just cannot get anything else done until it is resolved. It's when you go to reflect the following morning in a team stand-up that you realise 'oh cr*p thats time i'm never going to get back'
When you're a junior developer there's A LOT of things you do not know yet, even what others deem to be the most simplest of things. You don't know what you don't know, right? You will take longer to get things done, and you will need to ask the advice of other developers from time to time - but what if they are also too busy? Online reference tools will become your best friend to bridge that gap and prevent the 'I know nothing' panic from setting in - I'm doing a post about the online resources I use very soon.
Linked to the point above is the expectation from your colleagues to know certain things. There are a lot of junior/graduate developers that have come from uni where they have studied for three years for a Computer Science degree, and there are junior developers who literally picked up coding 7 months ago with no prior knowledge. Naturally the second type of person (cough me) are going to take a little longer to pick things up. It's like telling a person who has only spoken one language all their life to suddenly learn 5 extra languages fluently and use them every day to communicate rather than using their native language. If you have previously studied the language before and therefore have some prior knowledge (e.g. the CompSci graduate) then this mammoth task is less scary than the person who has zero prior knowledge. I think that sometimes people around you can forget that they need to manage their expectations of your speed of progress based on your prior knowledge/how long you've been in the field.
By the start of this week I had gotten my queue back down to single figures (woo!) so I was put onto the design queue (front end development) to help out with their ever growing Everest of tickets. This was fun and great to add another string to my bow, but this also meant juggling my ongoing back-end work with front-end, doubling my workload.
You may have allotted 'study times' at work, but this does not always pan out. If you have weeks like I have just had, every last minute is precious and you just may not have time that week to study.
In addition to my work life, I am also studying outside of work for a software development diploma. At the moment I am doing the final tweaks on my first Front-End project but every time I submit what I think is a final draft.. more feedback comes back.
Not every week is like this, but there will be weeks when you're thinking 'what am I doing?!' This is natural, and helps you to become a better, more organised software developer that is able to cope with a multitude of challenges. For now, I am going to make the most of this Bank Holiday weekend before the craziness begins again next week! :)