advice, coding, tech, tech test advice, coding, tech, tech test

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:

The initiation challenge to be able to sign up to Code Wars. I promise it is not as intimidating as it may look! This one is in JavaScript.

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?

Read More