Check out this blog from Megan John, who had a complete career change and found herself on the Global Technology & Digital Early Careers Programme.
18 months ago, I started a new career in Technology after 3 years working in PPC digital marketing. I’d never really known what I wanted to do when I grew up and still didn’t know after graduating from university — it wasn’t until almost a year after graduation that I was introduced to code and realised that this could be the career for me. After 2 years of teaching myself the basics, going to meet-ups and being turned down for countless jobs because I didn’t have a Computer Science degree, I was offered a place on the Global Technology & Digital Early Careers Programme, and I haven’t looked back. My previous experience has been treated as an asset and I’ve been supported by everyone around me as I’ve learnt what this new career involves. I’ve compiled ten of the key things I’ve learnt in the last year as a new Junior Java Developer:
1. Use code reviews as a learning experience
You will get feedback on your code, and often these will be very specific suggestions for improving what you’ve written. Ask questions about how the reviewer came to the suggestion they made and make sure you really understand what you’re changing in your code rather than just pasting it in and trusting it’s better.
2. Don’t be afraid to contribute to team discussions
You’ll likely be involved in various conversations from technical design solutions to user experience implementations and architecture discussions. Don’t be afraid to ask questions when something isn’t clear to you or share if you have an idea. You might find that the solution proposed by more senior developers is overcomplicated or they can’t explain why it should be done one way rather than another — or it’s a great, well thought out solution and you’ll learn a lot!
3. Rubber duck debugging
Will help you find mistakes in your code. Coincidentally my team is called The Mighty Ducks and we have a rubber duck that sits with our team. If you don’t have a duck around to explain your code to then explaining your work to another developer, how it works, line by line, and what it’s expected to do at each step will help you catch errors and figure out where you’ve made a mistake — sometimes all it takes is a second pairs of eyes to solve a problem you’re stuck on.
4. Getting to know your team better will make the learning process less daunting
You’ll feel more comfortable asking questions when you know people better. Don’t feel you have to eat lunch with your colleagues and go on every pub trip but joining the occasional social activity will really help. I often like to take lunches to myself and spend it going for a walk in the fresh air or reading a book — anything that’s a complete break from work — but I make a conscious effort to join boardgames evening with my team to get to know them better.
5. As a junior, the stress of a ticket taking ‘too long’ is not your responsibility
Estimates for work are based on guess work — find out exactly what estimates are based on; you’ll likely find it’s the time an ‘average developer’ who has done something similar before will take. You will naturally get faster but don’t be disheartened by a ticket that ‘should’ only take 3 days stretching on for a couple of weeks as long are you’re learning in the process. If a piece of work needs finishing quickly then someone will step in to give you a hand — make sure you pair with them so you don’t miss out on the extra knowledge.
6. Ask if you can work on a side project within the product domain — if it can hide behind a feature flag then even better!
When I first started as a developer, the product’s codebase seemed like a terrifyingly huge monster that I’d never understand; but by working on a side project that touched most areas of our codebase, I soon picked up knowledge that really helped me out once I was contributing to sprint work. Since the project was hidden from general users, I was also able to get to grips with our release and testing processes and could point to a part of the app and say ‘look, I did everything to make that happen!’ which was a big confidence boost.
7. Learning to write code well is only one part of the job
There’s so much else to being a developer including writing good tests; tidying up and refactoring old code; technical design and architecture decisions; understanding the product domain; user support; the basics of DevOps; deployment pipelines; and how to use supporting technologies that your team uses such as Kubernetes, AWS, and Git, to name a few.
8. You can’t compare yourself to people with more experience and take that as evidence that you’re not doing well
Imposter syndrome is something talked about a lot in the tech industry and, as a junior in a team with no one else on my track, it took a while to realise that not knowing as much as the mid-level or senior developers in my team does not mean that I’m bad at my job — it just means that I’m not a mid-level or senior developer yet. It’s also important to know that every developer Googles the answer to a problem; the difference between a junior and senior is that the senior has already Googled the answer to so many problems that they don’t need to do it as often and they’re more adept at know the search term that will get them their answer more quickly. So, open that search engine and remember that we all do it!
9. There’s a lot to learn in tech and you do not need to learn it all straight away
It can feel very overwhelming when starting out as a junior because everywhere you look there’s another 10 things that you don’t know. Start off gently; maybe note down 1 thing each day that you come across and would like to learn more about and set aside a few hours each week to google them. Talk to your manager about getting time during your work week to do this.
10. People can progress quickly in tech, or you can take a more leisurely approach to your career development.
Personally, I’m in no rush to become a principal engineer in the next 5 years and I have other hobbies outside work that I like to spend time on so I accept that I may not progress as quickly as those who love software and spend their free time working on side-projects to further their learning. That’s okay, and if you find a company that values you as a whole individual for who you are, like Global, then whichever path suits you best will be absolutely fine.
Global are always looking for new engineering talent to add to the team, check out the Global Jobs Site to find out more about current opportunities.