I am currently studying on the Ruby track at Launch School, and I feel I have consolidated my general approach enough to write it down for whomever might benefit. I imagine someone working through the free prep materials (perhaps after LS95 and right before RB100) who would like some advice on how best to go about studying at Launch School.
I hope that this will be worth the time it takes to read it, even if you don’t choose to implement any particular piece of it. Of course, most of the curriculum is ahead of me, so I’m sure I will miss plenty of things that might be helpful later in the course, but by that time you will have your own approach more or less worked out anyway.
OK, so you’re ready to bring a more structured approach to your Launch School studies? Great. Here are five things you need to start:
- A place to write an outline of the course
- The ability to use Anki reasonably well
- A study buddy you get along with well for weekly sessions
- A project management tool to keep track of to-dos (e.g. Trello)
- The ability to carve out times of total focus on what you set out to do
Let’s take these one at a time.
For writing an outline of the course I’m taking, I use Google Docs. Nothing particularly fancy is required. The purpose of writing an outline is not so much to help you learn through the process itself, but rather to serve as a highly-functional and searchable table of contents. (Keep this intention in mind as you construct the outline. It should have the search terms you’ll need later to find what you’re looking for, but avoid spending too much time putting other content into it.) Launch School’s courses have no search function on the site. Having your own outline lets you reference all the course material much more efficiently at any time you would like to reference it in the future, especially while preparing for assessments. To serve this purpose, the outline for the entire course (e.g. RB101) should be in one document, not several.
I’ve written about using Anki in learning to code here. Note that that article assumes some basic familiarity with Anki. If you don’t have that, I recommend checking out any of the many introductory videos and articles out there. Get in the habit now of starting every study session with Anki.
For keeping track of the many things that pop up as “to-dos” while focusing on something that I don’t want to interrupt, Trello works really well for me. I have a Trello board for my personal life and another for LS. If I’m studying and suddenly realize I need to do something (whether LS or personal), I can simply click over to the appropriate Trello tab in my browser, make a new card, and return to what I’m doing. This takes maybe 10 seconds and prevents me from losing momentum or having a sense of foreboding about all the things I’m forgetting. I then check those lists at a particular time once a day. I recommend Cal Newport’s work if you’d like a deep dive into this type of thing, but setting up a simple, free account takes a couple minutes and is very straightforward.
In terms of carving out mental and temporal space, I recommend Cal Newport’s Time-Block Planner. It is a very simple and inexpensive tool to potentially dramatically increase your productivity. Add to this whatever else you need to guard your study time from all the things that, if left to themselves, would encroach upon it. I personally use the app ColdTurkey — for blocking websites (like email and social media), applications, and even my whole computer — as well, which I find essential. (It goes without saying that it should not be possible for your cell phone to distract you. Mine is in airplane mode.) The key is the clear intention for the best-possible focus for the longest-possible time given your life circumstances.
Before we discuss how to go about studying, there is one more thing: what you need to not have in order to start, namely, anything non-Launch School (unless directed to it by Launch School, e.g. in the case of the Ruby track, the Ruby docs). I speak as someone who spent dozens of hours trying to “supplement” my learning in order to eke out the most benefit from the free materials at LS before starting to pay the subscription fee every month. Bad idea. If you’ve committed to the LS path, stay on the straight and narrow. The price is almost comically low considering the ultimate value if you follow through.
That being said, there have been times — not many — where LS gave a piece of code and the Launch School materials up to that point had not supplied the information I needed to understand what was presented. This is what Slack is for. (And the forums, if you prefer.) If you pose a well-formulated question in Slack that is explicitly about a specific piece of the curriculum, you will receive an abundance of quality help in short order, at some times from TA’s, at others from fellow students, and, on occasion, even from Chris Lee himself. The customer service — if you avail yourself of it — is exemplary.
Let’s say you are now at the beginning of RB100, and you’ve got the above-mentioned five things taken care of. Now what? Well, in LS, you will do a lot of reading and a whole bunch of exercises. As you make your way through the material, craft your outline and make Anki cards. Have your Trello (or other system) at the ready to capture anything important that you’ll need to do later but not during your current study session. This could include things like “Read this section again [with link],” or “Repeat exercise #5 [with link]” where you had particular difficulty the first time. The idea is by the time you’ve made it through a lesson you shouldn’t really need to go through it again — other than to look up particular things, using your outline to point the way, or when preparing for the assessment. (More on that later.) Everything you need to review — according to your best judgment — is either in Anki or in Trello. This means you are as thorough as possible the first time. One advantage of doing this all upfront is that it lets the information sink in over time, especially the Anki cards, which you’ll have more time to review and begin to build into your long-term memory.
Attend two or more TA-led and/or SPOT (see #the-spot channel on Slack) study sessions, preferably at least one toward the beginning of the course you’re in and at least one as you are preparing for the assessment.
And, of course, show up to your weekly study buddy session. Practice verbalizing key concepts and doing exercises in front of your buddy, and solicit feedback. Switch roles. You could also make a Trello list (column of cards) for things to work on in your next study buddy session together. Or you could just use your main list and work through the things you found tricky as mentioned above.
Eventually, you will make it to the assessment-preparation phase. This begins with the RB109 Written Assessment (or the equivalent in the JS track). Here is my recommended procedure for written assessments:
- Create a special, assessment prep to-do list.
- Write each of the following steps on that list and check them off when done.
- Read the study guide and everything it links to.
- Do all your Trello cards (or place them somewhere further down the list).
- Search Medium for articles on the assessment (e.g. search for: “Launch School” RB109 written assessment) and read them. Incorporate anything useful into your assessment prep to-do list.
- Repeat all quizzes and add any additional Anki cards for problems you didn’t make cards for the first time and which you are weak on now. Use your outline to find where the course covers the relevant concepts (if it isn’t linked from the quiz itself) if needed.
- Study the study guide in combination with everything you have gleaned from reading articles, talking with study buddies, attending the TA-led and SPOT study sessions, etc. Add any tasks to this assessment prep list in the place you deem best.
At this point, RB109 takes a different approach than the following two. Here is my basic outline for RB109 WA continuing from the above:
- Create a markdown file with a list of all the aspects of the language you anticipate may be on the assessment. Organize them reasonably.
- Create format answers for that type of code example or concept. Use your outline to find the places where they are covered as needed, and/or re-read all the expositional content again, picking up bits to incorporate as you go. Always convert into your own words and make them fill-in-the-blank style. A couple examples:
3. Practice verbalizing your code descriptions both out loud and at keyboard (using your prepared answers as much as possible), both alone and for others. Get lots of feedback from different people. The assessment is testing for fluency. Ask yourself: Do I feel fluent? Is my markdown fluent?
4. See below for my handy-dandy checklist.
For RB129 and RB139 WAs, I recommend the following, continuing from step 7 above:
- Create a spreadsheet with the first row reading as follows: “Concepts”, “My words”, “LS language”, and “Code examples.”
- Craft a list of concepts that you expect the assessment to cover. Put that list in the left-hand column of the spreadsheet. Have them in a usable order.
- Find the places in the course material where the questions are answered or the concepts defined. Copy and paste that into the third column. I recommend reading through the expositional parts of the material again in their entirety while doing this, picking up the bits needed as you go and gaining an overview of the now familiar material.
- Write your own answers in the second column (“My words”) and delete the third (“LS language”).
- Write code examples for as many of the rows as you can.
- Practice explaining the concepts out loud to others earlier in the course. Notice any places where either you or the other person is uncertain about what you’re saying. Bone up on those parts.
- Freshen up your RB109-esque markdown code-describing ability.
And finally, when you’re ready to pull the trigger, consider using my Written Assessment Checklist for the assessment itself. I find that it helps to have a clear procedure when I’m under time pressure. It lets me devote my mind as much as possible to the challenge before me.
Thanks for reading! I’m happy to receive any suggestions for making what I have to say clearer and more usable.