Launch School RB109 Assessment — Not Your Average College Exam

Teresa Tran
9 min readJul 25, 2022

--

Designed by pch.vector / Freepik

In 2022, I decided to quit my full-time job as an aerospace engineer to start a new endeavor to programing, which was the only task I enjoyed during my previous 5-year employment. It was a very difficult decision to make because the pay was gratifying and also because of the thought of me letting go of the aerospace engineer degree I worked so hard for. But like many people in their 20’s who also have doubts about their career, I thought to myself the good ol’ cliché statement, “Oh heck, if not now, then when?”

I did a good deal of research on the options for the routes to a full-time job in software industry that I could take. That’s when I stumbled upon Launch School. Upon reading all the reviews about this program, I thought it would be too good to be true. Launch School seemed like a considerable middle ground between coding bootcamp and a computer science degree. And what stood out to me is their focus on the fundamentals and emphasis on mastery-based learning. With the affordable monthly cost, I decided to give it a try.

It took me about roughly 185 hours (3-month span for me) to complete the first course RB101 Programming Foundations. This number will vary for everyone since the program is completely self-pace. RB109 is the next course which is also the assessment for the RB101 course. “I should be able to knock this off in 2 weeks!” I confidently thought to myself. That was not the case.

The assessment consists of two parts: the Written Assessment and the Interview Assessment.

The Written Assessment:

The Written Assessment tests your ability to explain the topics covered in RB101 such as variable pointers, collections, local variable scope, etc. To pass the test however, you would have to able to explain the questions with precision. And by precision, I mean you have to be precise on the technical terms. Most of the questions will present a code snippet and you will have to describe in detail what happen within the snippet and be able to state the underlying fundamental concept. For example, the question that accompanied the code snippet below would typically be, “What does the following code return? What does it output? Why? What concept does it demonstrate?

Code Snippet Example

Before going through the study guide and attending study session, my answer would be,

The code will output “Goodbye” for a and “Hello” for b and the return value for a and b will be nil. This example demonstrates the concept of variable pointers.

Well, the answer above would probably get you 2 points at most out of 5, which is a 40% failing grade if you continue to answer all the questions in this manner. Keep in mind, anything below an A is a failing grade for this assessment or to quote Launch School standard, “Anything below 100 is a mistake that needs to be fixed.

So why is the answer above unsatisfactory? Well, first of all, what are a and b? They’re variables; local variables to be precise. What does b = a means? What does “puts” do? Here is my answer after 40 hours of practice,

On line 1, local variable a is initialized with the string "Hello". On line 2, local variable b is initialized as being equal to a. Note that this means b and a share or reference to the same object. On line 3, a is reassigned to a string "Goodbye". This reassignment means that a and b now point or reference to different object. a now references to an object with class string with value of "Goodbye" while b references to an object with class string with value of "Hello". Therefore when the puts method is invoked on line 4 with a passed in as the argument and on line 5 with b passed in as the argument, the program will display "Hello" and "Goodbye" respectively. This example demonstrates the concept of variable pointers where a and b initially point to the same object but later point to separate objects due to the reassignment of a.

Yep, what a simple code snippet and yet it produces a paragraph long worth of answer. This is why it is a 3-hour exam for about 23 questions. This exam does not just test your knowledge of the fundamentals of Ruby, it is designed so you could start communicating with others about your code. You will start using technical terms and be more comfortable explaining your code to either your peers or your rubber duck.

Welp, I passed the assessment! And here are my tips:

  1. Always explain the whole code snippet even when the question does not specified. I like to describe them top to bottom, from line 1 to the last line.
  2. Always state the line number.
  3. Practice writing with Markdown syntax since that is what your answer will be formatted in. Get used to write code using the backticks (`). I use Typora.
  4. Review your RB101 material for that list of topics in the study guide. It is an open-book and 3-hour long exam but since the answers will be quite lengthy, you will need to understand the code snippet as you read it and should probably test the code out 1 time just to make sure. Remember there is that “what fundamental concept does the example demonstrate” question you will have to answer.
  5. Here’s the link to all the code snippets I practiced.
  6. Time yourself. If you are able to complete each snippet about 4 to 6 minutes, you are ready!
  7. Attend the study session! Yes, even when you have practiced 50+ code snippets and time yourself, attending the study session will answer the burning question, “Am I ready for the exam?” Your T.A. will be there to verify if your answer is satisfactory.
  8. Get used to the vocabulary / lexicon. Don’t worry if your answer sounds repetitive and automated, this is not a literature exam. For example, “puts” is a method and you invoked puts method with the variable or string passed in as argument.

initialized, defined, assigned, reference, passed in as argument, etc.

method invocation along with do..end defines a block

method definition, input parameter, outer scope, inner scope

mutate, destructive method, reassigned, etc.

Those terms above are just a few but knowing them by heart was crucial for me to be able to write the answer below 7 minutes for the exam.

You learn during the preparation process and you will continue to learn after completing the exam. Even when you score a 98%, you still have to go back and revise that failed 2%. Trust me, your grader will use a magnifying glass to find any mistake you could make. For example, mine was that I accidently wrote “boolean value nil” when “nil” is not a boolean value, it is a special value that represents absence of value.

Overall, the written assessment seems like a monstrous and daunting challenge at first but it really is not if you already have spent quality time to study RB101 and take the time to prep properly. This experience was very rewarding for me since I always had problem communicating with other people when tackling a technical problem. I never knew how to ask the question or how to break down the problem. After taking the assessment, I could say that I can comfortably explain to my T.A. or any student at Launch School about a problem I encountered. I just began to “talk”.

The Interview Assessment:

Well, that was a pretty good transition to the “talking” portion of the assessment, the Interview Assessment. In a nutshell, you will be solving two coding problems live via video call with a T.A. using Coderpad. It is not that simple. Well, I will be honest that I did not do my best on this portion. My verdict was a “Conditional Pass” (oof). I will now tell you what I did wrong.

Unlike the Written Assessment, I did not have a good plan to study for the Interview Assessment. I was so in doubt about my coding ability that I chose to focus on be able to solve the problem instead of practicing “coding with intention”. I spent 30 hours coding on Codewars and revisiting the medium 1 and 2 exercise problems. I then timed myself if I could code these problems (5–6 kyu) and see if I could solve those within 20 minutes. My goal was just be able solve 2 problems in an hour. Don’t let that be your only goal.

This was me approaching the problems during the Interview Assessment,

Yep, as soon as I received the first problem, I started on coding with just a brief understanding of what the problem ask for. I pretty much skipped the E (example / test cases), D (data structure), and A (algorithm) in the whole PEDAC process. The first problem took me 15 minutes since it was the easier problem. But I could tell I skimmed off the communicating part when I thought of all the example videos shown in the study guide, how they all took at least 10 - 15 minutes talking about the problem before starting to code. I stumbled on the second problem. There was a time I thought I’d be stuck and would run out of time. The problem eventually worked out okay and I was able to produce a very messy but function solution. To sum up my performance, the verdict comment described it as “somewhat brute-force fashion”.

If I have to do the Interview Assessment again, here is what I would do:

  1. Breath. Yep, it will help you with the panicking and also focusing on the problem.
  2. P — (understanding the Problem) and E — (Example), this is when you need to list out the input and the output that the problem asked for. Go through all your examples and test cases to find all the explicit and implicit requirements. For example, if your problem would be dealing with string, there should be a requirement of whether or not the solution is case sensitive. This is also when you should ask your T.A. to clarify any confusion because often time the questions are worded in a brief manner and is not the most straightforward.
  3. D — (Data structure) and A — (Algorithm), this is where I struggled with. I was able to identify the data structure but I should have plan out the algorithm before going straight to coding. During the prep for the assessment, I should have paid attention to how people plan out their steps in plain English and spent more time practice that. For example, in my second problem, I have created duplicate arrays that are unplanned and this threw me off and I panicked. Have I sat down and thought of each step, I could avoid this mistake and actually save some time.
  4. C — (Code), my T.A. has given me a valuable advice at the end of the session, “always test at every step of the way”. I rushed through the whole coding process and only test at the very end. Have I tested at every step, it would have been easier to keep track of everything especially when I did not even list out my algorithm.

Even though I successfully solved two problems with 10 minutes left on the clock, I knew the verdict is not going to be pretty. I knew I did not communicate and follow the procedure per standard. So when the verdict came out as “Conditional Pass”, I was not surprised. They commented that my ability to manipulate Ruby code is quite strong but my approach lacked structure, especially in the algorithm department. For this verdict, I have to complete a conditional assignment in which I have to write out detailed PEDAC process for two problems in the medium exercise problem pool. To me, this is fair game.

What surprised me was that there were 3 people discussing about my performance for the verdict, Chris Lee (the school founder), the T.A. who interviewed me and another T.A. They wrote a full page of comments regarding my performance and explain to me why the verdict reached “Conditional Pass” and why I need to master the PEDAC process for future more complex problems. After reading the comments, I no longer doubt this school’s standard. I came to this school for discipline and I am not disappointed. I am in good hands.

Well, if you have read the entire article, chances are you are probably studying for your RB109 Assessment, to which I could only now offer two words,

“Good Luck!”

--

--