How long should it take to land your first software developer role?
Hands down my most common question asked are how long should it take to land your first software developer/engineer role and how long my coding journey was until I landed my first role.
Trust me I get it, when I was learning how to code, I was eager to land a full-time role and became hooked on reading all about various people's journeys and how they landed their first role. I was probably on No CS Degree every other day reading about their stories to keep me going while on my journey.
Let's be frank
I'm probably not the best person to ask about how long it took me in particular because I was applying in the midst of the global pandemic! In 2020, so many graduate schemes went on a hiring freeze and the job market was looking so bleak.
I remember applying for roles and places were being flooded with applicants - it was a very competitive time. Now that the market is looking so much better *hopefully* you may not have to deal with having such high competition.
Plus, I started my journey in 2018 and landed my first role in 2021, no one seems to want to hear it took around 3 years from start to finish. I didn't want to hear it either - I wanted to know how to land my role in 3 months, not years!
The answer you don't want to hear
The real answer is that it depends. I have met people who have landed their first roles after 3 months, some like me, it took years.
It depends on so many factors:
- How much time are you able to put into learning how to code?
- What pathway are you taking to learn how to code: self-taught, bootcamp, degree, apprenticeship
- Are you practicing, building projects and learning from your mistakes?
- Do you have a plan when it comes to the job application process?
- Have you been practicing doing some technical tests/ coding challenges?
Great learning pathways to speed up the process
If you want to learn how to code AND have a job by the end, these are some FREE schemes that I've heard great things from:
- Makers apprenticeships - this is an 18 month apprenticeship for those without a Computer Science degree and they pay you while they train you. Last time I checked, if you land a place, you are paid £25,000 during the 3 month bootcamp and then at least £30,000 for the role
- Code First Girls Nanodegree - a 13 week part-time course Monday-Thursday for women looking to land their first role in tech. There is the data, software and full-stack pathways and you apply through their partner companies. Below is a success story of going through the nanodegree with Code First Girls!
- Generation UK - they have various different free bootcamps in Data Engineering, Software Engineer, and AWS re/Start. All of the bootcamps vary in length, and they are typically full-time bootcamps running from 9am-5pm.
Make the most out of your interviews
I have a whole blog post on this where I share 6 tips on how to land the most out of your interviews and would highly recommend reading it here.
Final thoughts
This was a long-winded way of saying - it takes as long as it takes. Stay coding, stay curious, take breaks and you'll land the role in time, even if it's later than you wanted!
How to seamlessly transition from coding fundamentals to technical tests
When teaching with Code First Girls, I was so eager to get students from learning concepts like array methods to getting stuck in with doing coding challenges on Code Wars.
Back in 2018 when first learning how to code, I had no clue about technical tests. I figured that I could demonstrate my passion for learning and learn everything I needed to know on the job. You can read more about my journey here.
Unfortunately, that's not the case, and it's pretty much guaranteed that if you're looking for a Sofware Engineer role, you'll do some form of technical test.
One of the most difficult things for self-learners is how to go from covering the fundamentals to applying that knowledge when solving technical challenges.
Covering the fundamentals
Before you start technical tests, you should have ideally covered: variables, data types (string, number, boolean, array, object), arithmetic operators, comparison operators, logical operators, and functions.
There are so many resources to do this, with my all-time favourite being Codecademy! I see freecodecamp being recommended a lot, I've used some great Udemy courses and there is a tonne of YouTube videos on it too.
Make sure you actually get coding along! It's so easy to sit down and watch a video, I'd advise you to code with the instructor to maximise your learning.
Getting started with Code Wars
I'd highly recommend using Code Wars when first starting out. It's a website that has various different coding challenges called katas. They are ranked by how difficult they are and you can complete them in a variety of different languages. It goes from 8 kyu (the lowest - so these are the ones for beginners) to 1 kyu which is advanced.
Michaela from the Sky Get into Tech scheme shared with us a great resource to work our way up in the ranks here.
When you sign up, you pick the language that you want to code in. You are then presented with this mini coding problem:
Once you pass that, you'll finally be able to sign up and you'll have access to all the katas! Go on the sidebar at the left and click on Practice, and you can filter it by difficulty. If you are new to this, I'd recommend that you filter it to only be able to see the 8 kyu challenge.
Your first kata
Ok so, when doing this alone when first starting out, I was pretty overwhelmed by it all. I was even shook at the initiation question, let alone actually doing my first kata.
The first hurdle you may have to overcome is that imposter syndrome where you may feel like you don't know how to apply your knowledge of the fundamentals into real problem-solving. But I promise, you can, and you will get better with time as long as you practice.
I would recommend doing the Convert Number to a String challenge if it's your first one!
Once you pass all the tests for that challenge, you can submit it (by clicking on the submit button at the bottom right) and you'll be taken to a page where you can see answers that other people have submitted!
It's great to see how other people break down their problems for you to take inspiration from and look into.
*I'm tempted to make a video about this, so if you happen to be reading this and think I should - let me know!*
Using google to help
Again, when I was starting out, I literally used to google the kata questions because I wasn't sure about what I could search to help me out.
Fortunately, with the help of codebar and going to the Maker's Code Accelerator events - I actually learned how!
Let's use our first kata as an example, the challenge was to convert a number to a string. From learning our fundamentals, we know there are number methods that help you work with numbers.
Rather than to google 'how to convert number to string {chosen programming language}', you could google 'number methods {chosen programming language}'.
I did that for JavaScript and I got the method I needed in w3schools. I would advise that you use the proper docs for your programming language of choice. MDN Docs is widely used for JavaScript and Python docs if you're using Python.
Learning how to problem solve
This also took me a while to get into the swing of things. When I was learning Ruby (that's a whole story within itself), I went to the Makers Code Accelerator events where they showed us how they broke down problems.
First, we made sure to read the whole question and understand what it wanted to do. From this, we would make a step-by-step plan on what methods we may know that could help us solve this problem and break that down into steps by writing in pseudo-code. I liked this because we considered how we would do this as humans and then translated that into code to solve the problem.
Kim Diep has created a great blog post about pseudo code called Your 10-Minute Guide to Pseudocoding.
What helped me was pairing with people at the Makers event and speaking through the problem. I became good friends with someone I met at that event and she helped out so much - she was pretty free and we agreed to meet Monday-Friday 9-12 to pair on Code Wars challenges together.
I was fortunate enough that she was better than me, so she walked me through her thought process and how she would come up with solutions. Sometimes I would know how to solve the problem, but not necessarily know how how to produce the code to make it all happen.
I cannot emphasise this enough: it takes time and practice. So many times I thought I'm never going to get it, and maybe this coding thing isn't for me. But I improved more and more as the weeks went on, and it was great to have an accountability partner to work on it with too. I think we did it for around 6-8 weeks and it was great fun and put me in a great position to start applying for jobs and finally being able to do their technical tests that were similar to the Code Wars katas!
Well that's a wrap! Thank you for reading, and I'd love to know your thoughts on this - anything that you would add?
Landing my first role as a self-taught developer
At the time of writing this, I'm working as a Junior Software Engineer at American Express, a content creator on Code Her Journey, which is a platform sharing the latest and greatest JavaScript challenges on Instagram and Twitter, and I'm also an instructor and ambassador for Code First Girls.
Although in the title of the blog I refer to myself as a self-taught developer, I'm definitely more of a community-taught developer. I've had so many amazing people and opportunities to support me on my journey in learning how to code and landing my first role and I probably couldn't have done it without all the support!
So, what inspired me to learn more about tech?
It all started in 2018, I was doing a Mergers and Acquisitions internship in Madrid. I had big ambitions about working at the Big 4 (PwC, KPMG, EY, and Deloitte) once I had graduated but had an alarming wake-up call when my mentor told me that I’d have to do financial exams while working and if I didn’t pass, then I would be fired!
I had absolutely no idea, and to this day I’m so grateful that I sought out a mentor in the industry that helped me realise that this route definitely wasn’t for me.
I’m one who likes to plan and work towards goals, so I started to look into the effects of automation on jobs and the best skills to learn to be marketable in the future and that’s when I became interested in looking at a role in tech and possibly learning how to code.
Finding Code First Girls
I can't remember for the life of me the story of how I found out about Code First Girls but knowing me, I would have typed something like ‘free coding courses london’ into Google - I’m so grateful to have found them!
This was back in 2018 when they had two levels - level one, which was their Introduction to Web Development course, and level two which was their Web Application course where we used Python 2 and worked with APIs.
Both courses were one evening a week for 8 weeks and at the time were done in person. During the Introduction to Web Development course, they covered HTML, CSS, UX design, jQuery, and Bootstrap. I really enjoyed the course, it was at PA Consulting in Victoria, the instructors were amazing and I felt so supported throughout.
After the course, I started looking into Front End internships and was shocked at how much they wanted us to know and mostly that job adverts for the roles required applicants to have a Computer Science degree.
Tech was a whole other ball game. To land finance roles, you didn't have to say that you have a portfolio of balanced accounts to prove you can do the job. I figured I could do an introductory course and learn on the job, but boy was I wrong!
Nonetheless, I also went on to do their Web Application course and I found it so challenging. I was confused about working with Python and when doing extra coding outside of lessons, I wasn’t sure whether to do a Python 3 course or continue just learning Python 2.
I was overthinking a lot, but also asking a lot of questions but couldn’t really shake off that feeling of being stuck. By the seventh week, I was doubting that we would be able to build anything! It felt like a very overwhelming time, but again, I had great instructors, a great teammate who lived super close to me and we created a great app by the end of it!
Doing the courses helped me to stand out when applying for internships (even non-tech-related ones) - they seemed to be impressed that I was stepping out of my comfort zone by learning a new skill. I would say it definitely gave me a great foundation and instilled so much confidence in pursuing the brand new direction that I wanted to take in terms of my career.
Trying to find focus
This was the hardest part - because I genuinely didn’t know what I was interested in. When I went back to university in 2019 to complete my final year, I thought I would have all the time in the world to do my studies and coding at the same time but I simply didn’t.
At first, I went back to basics and decided to focus on HTML and CSS to build up some projects. This was back in September 2019 when I decided I would apply for Software Engineering and Product Management graduate schemes. When undertaking the application process, this is actually when I first came across coding tests - and quickly came to learn that HTML and CSS were not going to help me with that.
I was toggling with learning Python or JavaScript, and didn’t know which one to pick - my thoughts were that I could get up to grips with Python faster to at least past coding tests, but JavaScript seemed very in demand especially if I wanted to be a Web Developer.
During the application process, I went to my university careers centre to get my CV spruced up, and to understand what I really need to do to land my first role. Everyone said different things! Focus on Python, learn JavaScript, learn C#, do Java - it was too much while also juggling my final year so I decided to put a pause on coding and said I would possibly pick it up after graduating.
But of course, lockdown happened in 2020 - I focused on passing my exams (which were online) and figured this would be the perfect time to begin a new coding journey. I was still pretty confident with HTML, CSS, and a bit of JavaScript - so I decided to challenge myself by volunteering to teach the Introduction to Web Development course with Code First Girls in August 2020.
I was nervous about teaching and that I wouldn’t be able to answer questions, or what if I don’t explain things well - so I did what I do best: planned and practiced.
I was with 3 other instructors so organised time for us all to virtually meet and planned who would be teaching what. Thankfully, two were very well versed with JavaScript, so I was mainly focused on teaching HTML and CSS and because I wasn’t working at the time, I spent a fair bit of time doing research before teaching and practicing the slides beforehand. It went well and it was an amazing experience!
Funnily enough, it helped me to land a role as a Data Analyst in September 2020! I had experience with my degree working with Excel, R, and STATA at university and emphasised my willingness to learn during the interview for the role. That’s when I decided to focus on Python and I really enjoyed it!
However, I still knew that I wanted to be a Software Engineer - so I was looking into roles and landed a place on Sky’s Get into Tech scheme in January 2021.
The scheme was amazing - I joined because I needed a community again of like-minded women learning how to code. It’s a 14-week part-time course with the first week being the immersive week (Monday-Friday 9-5), then after that, it’s two evenings per week (Tuesdays and Thursdays).
I can genuinely say that I met the most amazing, hardworking, and inspiring women on the scheme. They have all gone on to achieve great things and it's amazing seeing us all in tech. We were in it for the long run, we picked each other up when we were low, they have helped me through so much and I'll always remember that.
Because we focused on Python, and the course accelerated my learning by so much, in April 2020, I was eager to start teaching with Code First Girls again!
I was accepted onto the Code First Girls Fellowship for 8 weeks. I'd highly recommend teaching if you have the time, it was so rewarding seeing the women succeed and also very validating when I was able to answer technical questions.
I was also attending codebar workshops, where they match you with a technical mentor and you can go through things together - so I used this to help with concepts I found confusing and Code Wars exercises.
Resources I used to learn how to code
My all-time favourite resource has to be Codecademy. I bought the pro version because the Python3 course isn’t available for free. I did a mixture of Python, HTML, CSS, JavaScript, and React using Codecademy.
I also thoroughly enjoyed Andrei Naegoie’s Python Developer Zero to Mastery course.
Non-coding wise, I believe mentors are extremely helpful in learning more about the industry, the role you want to undertake, helping with technical challenges plus it’s great getting to learn more about them and how they landed their roles in tech too.
I’ve been part of several mentorship schemes such as Black Valley, Coding Black Females, and the Mentor Circle. I would highly recommend looking for a mentor through either a scheme dedicated to matching mentees to mentors or reaching out to people on LinkedIn.
Applying for a role at American Express
The role was extremely competitive, with over 1,500 applicants. I found the role on the Coding Black Females job page and applied via email! This included my CV, and a personalised cover letter explaining why I was suitable for the role and why I wanted to work for American Express.
Although I can't expand more on the process, I had a great experience despite being pretty nervous beforehand. Everyone was super friendly and welcoming, so I felt more at ease as the process continued.
My advice for aspiring developers
- Do research into the kind of job you want to pursue e.g. Web Development, Product Management, Backend Engineer, Data Anaysis etc
- Have a look into job adverts and look at what skills/languages they are looking for
- Join a course/community to learn that language and see whether you can see yourself doing it as a career
- Reach out to people who are in the career that you’re looking for
- Get yourself a mentor!
- Engage in a community (the communities I’m heavily involved in are Coding Black Females, Code First Girls and Black Valley)
- Start applying for roles even if you don’t feel ready - the feedback you get will be super helpful in landing your first role
Thank you for reading! I hope this can help someone looking for some guidance.
Rushing the process to make more progress
Confession time! Last week, I caught myself skim reading through the Codecademy articles from the pro course I'm working on, in an attempt to get through more of the course. Urgh. I wanted to tick things off because I simply wanted to get things done as quickly as possible.
The problem with this logic is that you can say, okay great, I've gone from (for example) 19% of the course to now 26% - I've gotten through so much! But in reality, because you didn't take time to read through things properly, practice, break things and keep learning, you're doing yourself a disservice more than anything (bummer, I know).
So now what? What do you do when all you want to do is learn something super quick to prepare for job applications, a project you're working on or whatever reason you've given yourself.
- Recognize that this is a marathon and not a sprint. It’s not about getting things done as quickly as possible, but instead it’s about practicing, being kind to yourself, and actually trying to understand what you’re learning – this takes time. Check out this weekly study template by Simplex Code
I’m reading Atomic Habits by James Clear and came across this great quote:
“We often expect progress to be linear. At the very least, we hope it will come quickly. In reality, the results of our efforts are often delayed. It is not until months or years later that we realize the true value of the previous work we have done. This can result in a “valley of disappointment” where people feel discouraged after putting in weeks or months of hard work without experiencing any results. However, this work was not wasted. It was simply being stored. It is not until much later that the full value of previous efforts is revealed.”
- Understand that you’re not going to get (some) things straight away. Sounds obvious right? But it’s so easy to become impatient when you so eagerly want everything to just click – but this just isn’t always going to be the case! So be patient (and kind to yourself) with how long it takes to learn new concepts, no one becomes an expert developer overnight so it’s totally fine if it takes a while to get your head around certain things.
- Switch up what resources you’re using. There are such an abundance of free resources out there – go use them! I found that when I was rushing through the exercises on Codecademy, I decided to watch some YouTube videos on the topic, took some notes and set aside some time to experiment with what I just learnt.
- BREATHE. Be mindful of your breath and do your best to clear your head. Okay, definitely easier said than done! As an overthinker (and over-feeler) as Mayuko once said, this is a tricky one but definitely still super important. When you’re overthinking about all the things you need to learn (which is why you’re rushing in the first place), it can lead you to feeling super overwhelmed and not exactly in the right headspace to grasp a challenging new concept. When you find yourself doing this, try and do a short breathing exercise and see how you feel afterwards! Here’s a good one by Wim Hof
- If you have a mentor – reach out to them! I’m fortunate enough to be have taken a number of mentorship schemes such as Black Valley, Coding Black Females x The Guardian Mentorship, the Bank of America FinTech Mentoring and even some people I’ve reached out to on LinkedIn!
Thank you to Code First Girls for the feature!