As developers, it is important for us to learn how to use our tools. One of the best ways of learning to use tools is to read the instructions.

If you are a “man’s man”, or even just a proud self-learner, this might sound like heresy. But I am here to tell you that there is a reason every car ships with an owner’s manual.

Prius Owner's Manual My current one looks like this.

I have read that thing cover to cover at least a half dozen times over 9 years of owning my Prius. I still can’t quote exact mileage for various checkups, or even the window wiper size (I have to look that up at least once a year). But I have a broad knowledge of the functions and general maintenance of my vehicle.

I know what every button on my dash does. I know how to take out the spare tire from my trunk, or how I need to disconnect the main battery from the 12-volt if I ever needed to jump it (and why that is discouraged).

I know what my car can do, and what it can’t do.

Prius Dash

For instance I know that my car has a park button. That might seem silly, of course the car can park. Every automatic comes with a park gear.

The Prius, however, is different than most automatic cars. There is a button on the dash, right next to the shifter. I rarely push this button; usually if I am parking, I just turn off the car, which puts it into park.

But I know the button exists, and exactly how it works.

Less than a year after I bought my prius, in May 2010, there was a story about a “runaway” Prius that had to be decelerated by a cop car pushing on it from the front. This was an amazing story, but the narrative of responses (mine included) was: how? The accelerator got stuck down somehow, but even leaving that pedal aside, there are a variety of ways to fix the problem of unintentional acceleration.

Common responses were “why didn’t they just press the brakes”, or “why didn’t they engage the aptly named emergency brake”. The answer likely is, the person just didn’t think of that in the panic of the moment.

My response (also unhelpful after the fact) was: they could have hit park and coasted to a stop in neutral, even if the engine was revving. This came from reading the manual, and knowing that, if not at rest, the park button simply puts the car into neutral, the same as the shifter would.

I was actually surprised reading the manual that the park button did that. After reading about it less than a month after purchasing my car, I (safely) tested the behavior. Sure enough, I ended up in neutral, and then was able to shift back to drive mode.

This taught me a valuable lesson. I learned that, especially for something expensive and dangerous (like a car) or something I was going to be using a lot, I needed to have an in-depth understanding of how the thing worked. I don’t have every stat or nuance memorized, but I have to at least be aware of where the nuance exists, as well as all the basic functionality I might want to use.

I strongly believe that the standard library for your primary coding language is the same way. You may need to look up argument order for infrequently (or sometimes even frequently) called functions, but you should have a good grasp on what functions are available, so you can pick the right tool for the job.

In this series, I will be covering the Ruby standard library, highlighting various common classes and modules, and deep diving into the functionality available in each. I have decided to stick to the standard library, rather than including basic functionality added by rails (via activesupport), because I think that what comes with Ruby is a rich enough topic. If I somehow exhaust it, I may do a similar series (or several) about rails specific functionality, or other “helper” libraries.



To read the rest of the series: click here

For further reading and self-study, check out the ruby docs: