Preparing for my first live coding assessment: Launch School’s RB109 Interview
Published in code.
In my previous blog post, I wrote about my experience taking the first Launch School assessment, which is the written assessment for the Launch School RB109 course.
The second of the two RB109 assessments is a live coding interview. During the assessment, the student is given two problems and is required to solve the problems in real-time in front of one of the Launch School TAs via CoderPad and Zoom. The goal of this second assessment is to prepare students for real-life job interviews for software engineering positions, which often have a live coding portion.
There are two important skills to learn to be able to pass the live coding assessment: Coding problem-solving ability and the ability to code in front of others on the spot. Meaning, you not only have to focus on learning how to solve coding challenges but also how to explain what you’re doing the entire time, out loud in front of others while solving the problem. In this article, I’m going to break down the specific steps I took to pass the interview assessment.
Discipline and Repetition
The first part to focus on is to get really good at solving coding challenges. The way you get better at this skill is by sheer repetition, solving countless problems over and over.
In my opinion, the ability to be good at solving coding challenges is essentially a skill of pattern-matching. This is similar to an (American) football coach or player who wants to get better at anticipating what the opposing team is going to do before the play is called. They get better at this skill through sheer repetition, both on the football field and through watching endless game film. Eventually, they start to notice patterns, which gives them a much greater ability to anticipate what the opposition is doing or going to do.
By solving countless coding challenges over and over, eventually, your mind will start to subconsciously notice patterns, making it easier to solve problems.
I had finished the Ruby Small Problems exercises the first time simultaneously while working on the RB101 course. When preparing for the RB109 interview, I redid the majority of the problems, skipping the Advanced section as they are a bit too far advanced past the assessment’s level of questions.
Next, I went through the list of about ~66 Codewars problems put together by Chrisitan Larwood and Megan Turley. Working on those problems was extremely helpful for my preparation for the interview. I made myself a Google Sheet with a link to each problem from the original Google Doc to easily keep track of the questions.
While going through the problems, I timed myself to see how long it would take me to solve each challenge, adding my time to the spreadsheet upon finishing each question. I would then go back and redo problems that took me longer than about 25-30 minutes.
My coding ability was a bit rusty while solving the first several problems, but by the end of the list, I felt my skill set was greatly improved and I was much more confident in my ability to pass the interview assessment. Following the Codewars problems, I then completed the list of problems from the ‘Watch Others Code’ videos.
Click here for Christian’s blog post containing the Google Docs for both the list of Codewars problems and the “Watch Others Code” problems. They’re under the section “Preparing for the Live Assessment”.
A Difficult, Entirely New Skill
Live coding in front of someone, while explaining what you’re doing as you solve the problem, is an entirely new skill to learn. I consider this to be a separate skill from the skill of solving coding challenges. You have to learn not just how to solve the problem itself, but how to articulate your thought process along the way.
For many students, coding in front of others is a nerve-wracking experience, at least the first few times. The first Launch School study session I attended that required me to live code in front of both the TA and the four other students in the session was a complete disaster. I completely bombed and was not prepared. Thankfully the TA, Callie, stayed late after that study session and greatly helped me with the problem.
It’s fairly common for a student to spend countless hours coding by themselves, only to freeze up and/or totally crash-and-burn when coding in front of others. The good news is with sufficient practice you can limit your nerves or, hopefully, get rid of them altogether. Like any other skill, it takes practice to get good at it.
Pro Tip: Don’t underestimate how difficult live coding will be your first time if you’ve never done it before.
Practice In Front of Others
Just like with solving coding challenges, to get better at live coding in front of others, one also has to practice multiple times. You can do better at live coding by attending multiple study sessions. It’s probably a good idea to attend study sessions with multiple different TAs because they each have a slightly different teaching style. You can learn a lot from all of them.
Another great way to practice live coding is to find other students at the same level in the course and see if they’d like to practice. If someone else in the study session is also studying for the interview assessment, ask them on Slack if they’d like to do a live 1:1 practice at a later time.
The student-led study group, The Spot, on Slack is a great way to meet other students who are at the same level in the program. The Spot also has weekly assessment study groups, which are led by students who are further along in the curriculum.
Practice in CoderPad
Another Pro-Tip would be to practice solving coding challenges directly in CoderPad, which is the tool used during the actual interview assessment. It’s a great way to prepare for game-time conditions.
I made the mistake of practicing for the first few weeks in SublimeText, then totally bombed my first study group because I was unprepared for the small differences between CoderPad and SublimeText. You can sign up for a free CoderPad account to play around with it yourself.
After that first study group, I made sure to only use CoderPad to practice coding challenges going forward. Whenever I would work on a new Codewars problem, as an example, I would paste my PEDAC template in CoderPad and solve the problem there. Then, paste my solution from CoderPad over to Codewars to submit my answer.
The last piece is to make sure you have a good PEDAC template to use to solve the problems. This will help you create a strong mental model when working on the coding challenges and make your life a lot simpler.
In the interview, having a solid algorithm before you write your code will show the TA grading your assessment that you’re diligent and thoughtful in how you solve problems (i.e. that you’re coding with intent). It will also help you with the ability to break down and solve the problems.
In all, I studied for the interview assessment from September 9th, 2020 to December 1st, 2020 for a total of about 140 hours. This ended up being about 10-15 hours per week on nights and weekends while working full-time at my day job.
It’s possible I over-studied a bit for the interview, but I really wanted to be prepared for anything on the assessment. Since Launch School is designed around Mastery-Based Learning, I wanted to make sure I had a full grasp of the material and had learned it as close to mastery as I could.
In my opinion, all of that over-preparation was worth it as I didn’t feel too nervous during the assessment and was, thankfully, able to pass it on the first attempt. To all of the future students reading this, good luck!