Disclaimer: What follows below is my own personal journey of preparing for the interview and may not reflect the experience of others. It’s a more brute force, leave-no-stone-unturned approach that might not work for everyone. That being said, if you are someone who errs on the side of caution and/or has a deep desire to master the basics — then read on.
While I found the interview surprisingly less difficult than I thought it would be, the hours leading up to it and all the study I had put in weeks before were nothing short of hard work. Hindsight is always 20/20, so I decided to gather my thoughts for the next person who’s unsure about the interview.
So when are you actually ready? The short answer is — it depends. Are you a beginner? Intermediate? Advanced? Are you naturally confident? Or do you second guess yourself? For a beginner programmer like me with an anxious temperament on a mission for mastery; I knew I’d be studying for an interview like this for quite some time. And although the stress I put myself through in the lead up to it wasn’t worth it, there were some practices that I stand by and will use again for upcoming assessments. And here they are…
Study tips for the 109 interview:
- Practice and re-practice: When it comes to practice, I finished the small problem exercises that Launch School provides, and then went on to solve other code problems too. There’s a big list of questions floating around out there that showcases all kinds of problems you might potentially need to solve. In addition to solving lots of problems, what also prepared me for the interview was finding more than one way to solve a single problem. There was a noticeable breakthrough moment when I found myself able to fly through solutions that once took hours to figure out. This is a great indicator for being ready for the interview.
- Take note of great solutions: You don’t need to reinvent the wheel, when there are already wheels rolling around out there! Solving problems is necessary and all that, but do not underestimate the power of taking an existing solution and breaking down WHY it works. I did this for a bunch of solutions in Code Wars (those elegant one-liners you see on the solutions page), and with Launch School exercises. By exposing yourself to all kinds of solutions, you expand your repertoire and have a bigger set of tools at your disposal for problem-solving. Peers can give you examples on how they solve code too, which brings me to my next bullet point…
- Buddy up with students live: In a previous post I mentioned I am not the most social person, especially whilst studying. But this was one of the things that I’d consider MANDATORY. A few kind souls took the trouble to patiently sit behind their computers and watch me sit in silence with no idea how to solve the problem in front of me. Gosh it was painful and embarrassing — but 100% necessary. To know that I had no clue how to solve a problem made me very aware of how much more study I needed. Trust me — you do not want to wait for the interview to face a situation like this. Put out a comment over student chat when you feel ready enough to solve problems in front of others.
- Attend at least 1 study review with a TA: Attending a session with a TA was great for simulating battle-like conditions. Although I was given easier problems to solve than that of the interview, your solution is still timed and examined by a TA. This was great for tightening up algorithms so they’re all ready to be coded up in your chosen language.
- Think out loud: Since you will be graded on your verbal communication with the interviewer, I strongly advise to get into the habit of thinking out loud. And I don’t mean just while you’re coding. Think out loud in front of your friends, partner, siblings, parents, peers, pets — whoever! It doesn’t matter. As long as you get comfortable with explaining why you do what you do, you’re going to make it A LOT easier for the person on the other end of the call.
In my interview I accidentally gave a confusing name to a variable. Afterwards, my instructor commented that “had you not clearly explained what you were doing, I would have found your algorithm harder to understand”. Even though I made a mistake, I kept clarifying my code as I was talking, and he was never left behind.
- Make friends with PEDAC: When I was first introduced to PEDAC in RB101 — I didn’t get it. I found it long, repetitive, and all I wanted to do was just dive straight in — write an algorithm and code it up in Ruby. But when I was a bundle or nerves during the interview and all common sense left my body, PEDAC was a shining beacon of light when I was lost in the dark. More than just a framework, PEDAC always kept me on track towards an inevitable solution.
The interviewer kept up with my thought process with the help of PEDAC. He pointed out that having a mental model and data structure in particular helped clarify my solution towards the problem.
Whether you set out to do these tasks or not is not important.
What is important is being in touch with how prepared you actually are. Since Launch School is an online educational platform, you’re not physically surrounded by teachers and students — you’re on your own. And when you’re on your own, your judgement can get blurred by how you feel. If you feel over-confident you may go in under-prepared. And if you’re under-confident, you may never feel ready enough to take the test. The only way to remedy this — I found — is by connecting with others that can assess you along the way, find your blind spots, and make sure you solve all kinds of problems. That way there are no nasty surprises. Good luck!!