Getting to know Launch School’s JS129 assessments

Unlike information about JS109 assessments, I found study tips and experiences about JS129 assessments from students’ perspectives rare. I’d like to share my experience preparing for both JS129 written and interview tests, and I hope this article will help my fellow students a little bit.

JS129 Written Assessment

For me, JS129 written test is more difficult than the one in JS109. The knowledge itself was harder, and the course materials (I took JS120d) were long, intensive, and dense, which caused a lot of confusion to me the first few times I studied them. I’m glad that LaunchSchool updates the old 120. The new 120 teaches the concepts in a different consequence and provides a smoother path for future students.

In this written test, you’ll be given around 15 questions. Thankfully, I didn’t have the time management issue that I had in 109 written test. Three hours was adequate for me this time. For your reference, I answered each question in order, and left 50 minutes to answer the last question. 50 minutes for the last one worked just fine, I couldn’t finish if it was shorter.

Now let’s talk about how I prepared for the written test. I prefer to study for written and interview tests respectively. Since I was quite confused after I finished learning 120d courses for the first time, I restudied all lessons for another a couple of times (basically restudied my own notes). Once I felt like I’d already had a good understanding of every topic in this course, I did the following two things:

  1. Redid all quizzes without seeing my answers and solutions, even if I’d already done some quizzes a couple of times.

I carefully checked every choice and verbalized each of them why it’s either correct or incorrect. That is, to understand every choice very well. If I couldn’t tell the reason why it’s as it is for some choices, I wrote them down, checked the discussion part, or the relevant materials very quick. Since I started this process after I already had a good understanding of all materials, my list of unclear choices was fairly short. Each quiz at the end of each lesson was like another summary. I went through all the important topics again by following this step.

2. Summarized the bullet points in my own words.

Upon finishing the above step, I had a great grasp of all topics and felt 95% ready for the test. To make sure to get a perfect score, I copied and pasted the study guide in a blank page in my Typora — a markdown editor that I always use for taking notes. And then treated them as real test questions and wrote a complete answer for every bullet point in my own words.

For example, under this bullet point in the study guide:

Objects, object factories, constructors and prototypes, OLOO, and ES6 classes.

My complete answer includes:

  • All patterns of Object Creation
  • My own code examples for each pattern
  • The advantages and disadvantages of each pattern
  • Their difference and relationship
  • Some unusual cases, etc.

Whatever you think is important, include them in your answer. A simple version of my summary looks like this:

  1. Pattern using function factories: Object Factories, or Function Factories
  • My own code example: I stuck to one example for efficiently memorizing. In later examples of other patterns, I just made some changes based on this one.
  • The advantages of using an object factory over object literals — 1) Provide a higher-level abstraction, which helps you break down the problem and solve it. 2) More efficient when you create thousands of objects of the same type; once you create the function factories, you can invoke it as often as you need.
  • The disadvantages of using an object factory — 1) Memory inefficiency: every newly created object has a full copy of all methods. 2) Can’t determine if an object is created by a specific function, so you don’t know whether you’re using the right kind of object (since it returns an object literal, which doesn’t have a prototype or anything to reference).
  • More key points

2. Pattern using prototypes: OLOO, or Objects Linking to Other Objects (Prototypal Inheritance)

  • My own code example
  • OLOO’s differences (advantages) over Object Factories
  • More key points

3. Pattern using constructors with prototypes: Pseudo-classical Inheritance, or Constructor Inheritance

  • My own code example
  • Its relationship with OLOO
  • More key points

4. Pattern using class: Syntactic sugar of Pseudo-classical Inheritance

  • My own code example
  • More key points

By far I’d had a detailed list of all bullet points in the study guide, before taking the test, I read them on my iPad while having breakfast, pinching a loaf, etc.

When it comes to the question at the end of the test, you’ll be required to write a small complete program. I personally think practice and fully understand all practice problems and quizzes in each lesson, and JS120’s exercises would be good enough for answering this question.

In all, following the above steps fully prepared me for 129 written test, and I actually studied similarly for the written part of 109 before.

JS129 Interview Assessment

Don’t take the seesaw battle too long. If you pass the written test successfully, prepare for the interview as soon as possible, and have a rough timeline in mind about when you’re going to take it. This psychological suggestion always gives me motivation as well as pressure while the process of studying for these assessments.

My 129 interview went easier than the one in 109 because:

  • Having passed a few assessments already at LaunchSchool helps me gain a lot of confidence. I remember how nervous I was when I took 109 interview. I was more relaxed in 129 interview.
  • Because I was more relaxed, I was able to recover from my mistakes (I made two or three), which I think was a quality that the interviewer valued more.

The best way to practice interview assessment at LaunchSchool is to do one-on-one code session with your peer. I’ve practiced with different students since prepared for JS109 interview. When practiced for 129 interview, we basically explained each other these core concepts verbally. We asked questions like

  • What is prototypal inheritance?
  • What are collaborators? Give me examples where they’re used as objects and primitives.
  • How is the execution context of a function or method determined?
  • Some unusual cases like What’s the difference between function invocation with and without new
  • …and more

We also let each other provide code examples while explaining some questions. Therefore, I had to make sure that I was highly familiar with my code example, which ensured that these examples would come out naturally when I was explaining them under pressure in a real interview. Try to cover and articulate all concepts that you learn in this course, I particularly used the bullet points list I wrote before for the written test.

However, if you feel like practicing with students doesn’t work for you, one useful approach I tried was to record myself with voice memos. I was surprised how many mistakes I made than I thought by listening to myself explain concepts. Missing key points, talking too quickly, and articulating imprecisely were some of my mistakes. By precising and embellishing your answer, you’ll find yourself do gradually better. It’s a process of resolidifying your knowledge.

I hope this article helps clear up some confusion and fear about JS129 assessments. Good luck and you got this!