Josh Thompson     about     blog     ☕️ with josh

Turing Prep Chapter 1: Make Mod 1 Easier Than It Otherwise Would Be

Article Table of Contents

Turing Prep Series Index #

Why this series exists #

I intend for this series to be after finishing Turing’s Mod 0 program and Mod 0 capstone

If you don’t have enough time to work through these resources, no problem. This is a guide to make Turing a little easier than it otherwise will be. Most Turing students have done fine without these resources.

This collection of articles is a guide that will make Turing’s mod 1 much easier than it otherwise would be.

We’ll do this by working on, (and completing) small Ruby exercises.

You might be thinking:

Josh. This already sounds like a lot of work. I finished my prework, and I know Turing’s gonna be brutal. Why should I do this optional work, instead of enjoying my last days of freedom?

Good question, reader. If you spend 10 hours on this material, between now and when Turing starts, you’ll be much improved from your baseline.

If you think you can spend more than ten hours on this work (perhaps you’ve stumbled across this resource weeks/months before Turing’s starting) you’ll see more than a standard deviation improvement. If you put 20+ hours into this, you’ll be in the top 20% of the cohort.

1/4th of students who enter Turing will have to repeat mod 1 or mod 2, so if you think it’s even remotely possible you could be in that group, the 20+ hours you invest in these resources will save you at least 250 hours of study, $5000, and you’ll graduate six weeks earlier than you otherwise would.

Josh, this isn’t convincing to me. I don’t want to do this extra work.

OK. That’s on you. I have no idea how to make my case stronger than I already have. If you can think of points that would make my suggestions more compelling, please let me know.

Time Commitment #

I’m not sure how much time this will all take. Like I said, 10 hours will make a big difference, 20 hours will permanently change your Turing experience. Budget 20 hours ± 5 hrs. You could do this in a long weekend, or a few evenings in a week, but you’ll get the most time if you spread your efforts across at least two weeks, to give the material time to stew and soak in.

OK, I’m sold. I’ll spend the time you suggest. Where do I get started? #

Good question. The answer involves a long digression and tortured analogy on the topics of:

  • screwdrivers
  • how to learn hard things
  • why you should do drills

By the end of this particular post, I have a few objectives for you:

  1. Understand the importance of bringing the right process to hard problems
  2. Decide to read A Mind for Numbers and Deep Work.
  3. Understand that spending a few dollars and hours learning how to learn is a fantastic start to Turing prep, where you’re spending a lot more than a few hours and few dollars to learn a difficult craft.

The right tools for the job #

If I handed you a Spax screw, and told you I’d pay you $1000 to screw it into a piece of wood, and then handed you a Phillips screw driver, what would you do?

Spax screws look like this:


A spax screw. Notice the shape of the head.

One would use a Spax bit to drive the screw:

spax bit

A philips screw bit looks like this:

philips bit

Notice the shape of the head. This is shaped like a +, the spax is shaped like a *

Philips bits are for driving philips screws, which look like this:

philips screw

So, can you drive a Spax screw with a Philips bit?

Not easily.

You could try really hard, use great effort, and end up damaging both the screw driver bit and the screw, and probably barely get a single screw in. I bet, though, that you could get a single screw partially embedded in the wood.

What if I were to pay you $1000 per screw you could drive into the wood?

Now you can’t rely on just herculean effort, sleepless nights, and tenacity.

you have to have the Spax bit to drive a Spax screw.

For $1000 per screw, you could afford to buy the correct bit, and it would let you effortlessly drive the screws.

I’d argue it would be irresponsible to not get the right tools.

The analogy should be clear - you’re not being asked to drive screws, you’re being asked to learn challenging and technical skills. Most of us didn’t learn how to learn hard things in school, we figured out how to game the system and squeak by.

Or, we didn’t learn to game the system and we didn’t squeak by. Did anyone else pick up some failing grades in high school and college. No? Just me? OK.

You need to learn software development, and you’re probably going to put a lot of time and money into this goal.

It could be considered irresponsible to not acquire the right kinds of tools for learning technical topics

Obviously, you need the right physical tools; a laptop, functioning screen, etc. But you need the right knowledge. You need to know how to learn hard things.

The right mental tools for the job: Tactics and Mindset #

To learn hard things, you’ll need:

  1. Specific tactics
  2. The correct mindset

How to get the right tactics #

To obtain the right tactics, and some of the mindset, I strongly recommend buying or renting a copy of A Mind for Numbers: How to Excel at Math and Science (Even If You Flunked Algebra).

While you’re waiting for Amazon to deliver the book, or to pick it up from the library, read these two summaries:

A Mind for Numbers talks about how to learn hard things. The author talks about mental models, “chunking” information to free up working memory, practice, drills, repetition, staying the right amount out of your comfort zone, doing hard things, avoiding distraction, procrastination, etc.

Everything in that book is relevant to the rest of your career in software. Please read the book.

I know most of you will not read the book, despite my strong suggestion and humble request that you do so.

If you’re not going to read the book, you don’t get to question my methodology for the rest of this guide. Accept the following truth:

To learn hard things, you need to build mental models of the hard thing, and to build this mental model, you need practice and repetition.

Any individual or team that performs at a high level is on board with the value of “drilling” important things. Fire drills, drills for sports teams, drilling to practice something you’ll be tested on - all of these are ways to make sure not only that you know how to do the right task, but you can’t get that task wrong.

So, working through these drills will move you in the same direction. You’ll not just build a single new class from scratch, but you’ll eventually do it so many times you can’t help but get it right every time.

This will make the rest of your time at Turing go much, much better. It could help save you from repeating a module.

If you would repeat a module, but after doing these drills you don’t, that’s six weeks saved, plus a few thousand dollars, and the knowledge will serve you for the rest of your career as a developer.

But don’t take my word for it. Here’s what other Turing students have said, after working through this guide:

I definitely feel over prepared in some aspects, but I’m trying to use it to help everyone get to the same levels of understanding

It has been amazing and I feel like I learned so much from mythical_creatures…

The mythical_creatures felt like it like brought everything together and how it works (on a kindergarten level) but made it all feel…real-ish in a way, and that was huge.

i swear to god, knowing what pry was and having done mythical creatures helped me so much here!

At the end of week 2 I’m feeling way better than I anticipated i would jumping into all of this and I know it’s in large part because of your encouragement for folks to work through the ruby exercises and the videos to support being able to do those in the first place.

Here’s what a student said, who didn’t follow this guide:

I wish I’d done mythical creatures and more before. I really struggled in mod 1

How to get the Right Mindset #

Please read Deep Work: Rules for Focused Success in a Distracted World

Deep Work pairs well with A Mind for Numbers but will help round out some of the “why” of a program like Turing’s. It was part of the reason that I went to Turing myself, and I wrote Quitting the shallow for the deep about changes I made to my life after reading Deep Work and preparing for Turing.

I wrote that in October 2016. My how the time flies.

These two books represent a modest investment of time and money. You’re going to spend hundreds of hours over the next few months learning programming. $25 of books (or free, if you use a library) plus a few hours of reading may significantly impact the effectiveness of every one of those hours you’re already planning on spending focused on programming.

It could be considered irresponsible to not acquire the right kinds of tools for learning technical topics

How you ought to approach drills #

Both books talk about drills, and focused practice. We’re familiar with the idea of drills in other domains (fire drills, sports drills) but it’s rare to see the same kind of ideas ported over to “academic” pursuits.

Well, here we are. If it’s good enough for saving lives when the building is burning down, and for every professional athlete that’s ever lived, it’s good enough for us.

We’re doing drills. Programming drills.

Why would we do programming drills, Josh? Isn’t it just good enough to get some solution once, then move on to another problem?

There’s lots of reasons for doing drills. If you want to get into the nitty gritty, know that they line up closely with the principles of Deliberate Practice which is “how anyone can learn anything”.

But for our purposes, here’s why you should do drills:

  • Relatively small and focused. You can knock out most of these in just a few minutes.
  • Attack the same principle from many directions. You’ll do lots of string manipulation, and you’ll create classes and object “factories” a bunch of different times. They’re similar enough to each other that the knowledge will reinforce itself, but different enough that you have to think hard.
  • Force you to reveal and examine your own assumptions about how your code works. You’ll be writing a lot of code. You’ll have to understand it pretty well by the time you’re done.

There’s more reasons, but we’ll leave it at this.

Conclusion #

You should bring tools suited to the task at hand. If you need to drive Spax screws, bring a Spax screw bit.


If you’re not going to read the books, at least read these summaries:

Be swayed by other students who have worked through this guide and have felt very well prepared by it. They’ve saved themselves time, stress, sleepless nights, perhaps money, and much more.

what’s next?

Well, just click on over to chapter 2:

Turing Prep Series Index #