# A Comprehensive List of RB109 Practice Problems & Other Tips

Published in
4 min readAug 3, 2020

--

This article is meant to provide you with tons of practice problems to help you prepare for the RB109 Written and Live assessments so I won’t reiterate what Launch School and other students have said many times other than a few helpful tips:

1. Don’t operate in a bubble. Attend study sessions and find other students to study with (post in the `#101-109-study-group` in Slack). Plus it’s a great way to meet other students!
2. Create a repository of clear and concise definitions of all concepts, methods, etc listed in the study guide. You can reference this when you’re taking your Written assessment.
3. Create your own code examples to help reinforce concepts and truly test your understanding.
4. Embrace the process. You will encounter peaks, troughs, and plateaus through your Launch School journey. Embrace them, identify your gaps, and don’t hesitate to slow down or go back.
5. You’ll know you’re ready to take each assessment when you can answer questions quickly and calmly while touching on all of the main points.

# Preparing for the Written Assessment

Preparing for your first assessment is probably going to be intimidating. You might realize you have some gaps in your knowledge or you struggle to remember syntax or even how to clearly articulate your thoughts.

Don’t worry!

All of the resources provided by Launch School and the students were created to help you succeed.

If you haven’t already, I’d recommend you read the following articles before diving into my practice problems:

1. The 109 Study Guide and all linked articles. Review all of the concepts listed in the study guide.
2. Srdjan’s 4-part blog series: Part 1, Part 2, Part 3, Part 4
3. Callie’s article on how to prep for the assessment

Below the example, I’ve linked to a list of problems that you can work through and write out what the code is doing line-by-line. Your goals for answering each example are: What does the code output and/or return? Why? and What concept does the example demonstrate?

Example:

`arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]new_array = arr.select do |n|  n + 1 endp new_array`

• `line 6` will output an array `[1, 2, 3...10]` and return an array `[1, 2, 3...10]`
• On `line 1` we initialize the local variable `arr` and assign to it an `Array` object with integers `1` through `10` as elements.
• On `line 3` we initialize the local variable `new_array` and assign it to the return value of:
• On `lines 3-5` we invoke the `select` method on the local variable `arr` and pass in the `do..end` block as an argument. As the select method iterates over each element in the array, it passes it to the block parameter `n`. The code on `line 4` adds `1` to `n` , but nothing is done with this.
• This problem demonstrates the concept of truthiness. The `select` method returns a new array based on the return value of the block. If the return value evaluates to `true` then the element is selected. Since everything in Ruby is truthy other than `false` or `nil`, the code on `line 4 `evaluates to `true`.

Did some of this make sense? None of it? You’re going to learn so much while you’re preparing for the assessment that you’ll surprise yourself when you look back on this problem in a week or two.

I hope you enjoy these problems as much as I did:

Complete List of RB109 Written Assessment Practice Problems

How did I know when I was ready to take the written assessment? I was comfortable answering any of the practice questions in less than 7–8 minutes max (you should be able to answer between 4–6 minutes on average).

# Preparing for the Live Assessment

Thanks to Megan Turley for seeding the initial documents below. I cleaned them up, linked to relevant videos, and added other helpful information where possible.

I found it best to work through these problems and then compare answers with other students. Live coding study sessions with other students are also helpful in preparing you for the assessment — you’ll need to verbalize your PEDAC process and troubleshoot along the way. I estimate I studied with other students between 20–25 hours.

As you work through these problems take some time to learn new methods that you might come across in other student’s answers. One of my favorite methods is `group_by` 🤓.

I hope you found some value in this article and the accompanied docs and I look forward to seeing you in future courses!

P.S. let me know if there’s an error above.