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?
5 tips if you're feeling unqualified to teach as a coding newbie
Let's start with some context. When I was first learning how to code in 2018 and 2019, although it was fun, I definitely found it challenging. I took two 8 week courses with Code First Girls at PA Consulting and took a break when I returned to university in 2019 where I focused on my final year of my Economics and Accounting degree.
In 2020, when 💩 hit the fan, I wanted to properly start coding again and despite the fact that my mailbox was getting flooded with rejection emails and loads of companies having hiring freezes, I wanted to make a difference and challenge myself by applying to be an instructor for Code First Girls.
Don't get me wrong, I didn't feel qualified at the time AT ALL. I was still stuck in the comfort zone of following along with tutorials without pushing myself to create projects from scratch, and I found learning JavaScript properly quite the learning curve. Plus, I hadn't yet landed my first tech role!
All the anxious thoughts were running through my head: what if they ask me a question I don't know the answer to? What if I'm really bad at teaching? What if they realise I'm an imposter and not experienced enough to teach?
Despite these thoughts, I knew that this was something I'd definitely want to at least try so I knew for sure.
I was so thrilled when my application was accepted to teach the Introduction to Web Development course!
Fortunately, I wasn't alone, there were three other super amazing and talented instructors with me which made all the difference.
Here are 5 tips on this if you're going to be teaching people how to code or are looking to do so, but don't feel qualified enough:
- Set up an initial meeting with the instructors so you know who's teaching which lessons. I wanted to make sure I was teaching the first few lessons that were HTML and CSS focused as I didn't think I could effectively teach JavaScript at that point.
It's also a great time to speak about how you want to split up the lessons. For the course, we split each of the sessions in half with a different instructor leading the sections. E.g. lesson 1's first half would be lead by me, break, and then the second half would be lead by the instructor. - Prepare, prepare, prepare! Before you teach a lesson, make sure to go over the material so you feel comfortable with it. I spent time going through the exercises and practiced how to explain it before being live in front of the students just so I felt familiar with the content.
- When you're asked a question that you don't know the answer to, you can always say "does someone else want to take this?" so that another instructor can step in to answer. You can also show the students how to get the answer through Googling - not only does it show to them that developers use Google all the time, but it reinforces that we don't have all the answers and that's okay and totally normal.
- Ask for feedback! It's always great to hear positive and also constructive feedback when you're doing something new like teaching.
I remember some feedback I got was to slow down, I was just so excited when I did my first lesson, I was going a bit too fast paced. I kept checking in with the students to make sure they were okay, and fortunately they were honest and said I was going a bit too fast for them.
It was great to get that feedback early on so I could adjust my teaching style in the future lessons too.
Plus I had great feedback that I was energetic, explained things well and made lessons fun. - Give yourself some grace. Teaching is challenging for sure, and I've definitely messed up before. It's so important when you to do be as kind to yourself about it as possible, we all make mistakes!
It's still crazy that I had the guts to teach people how to code before even landing my first role in tech.
I have to say, teaching people how to code so early in my journey had so many benefits (I may have to do a separate blog post on that). I always recommend it to newbies if they have the bandwidth to do so.
Teaching with Code First Girls is an amazing opportunity to use your knowledge and experience to teach beginners how to code and to give back to the CFG community. If this is something you would be interested in, you can complete and submit this form.
I'd love to hear your thoughts on this! Do you have any tips that you'd add? Have you considered teaching people how to code yet?
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!