Launch Academy Community Resources for Learning to Code
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Think of this wiki as Severus Snape's copy of Advanced Guide to Potion Making. The actual contents are canonical: stolen Thoughtbot thoughts and Ruby Style Guide recommendations mixed in with my own marginalia to add clarity and insights helpful to me (and hopefully other young Rubyists).

--This Book Is Property of the Half-Blood Prince (kidding)

It's hard to start programming. Programming itself is easy. It's the starting that's hard.

I wanted to make the starting easy. When I started, I read books and articles. I went to events. I took classes. I took the fancy web 2.0 classes and I did the code challenges, and the online videos, and the koans in such and such a language. And most of it was hard or bad.

Most of it is hard or bad for two reasons: 1) Too much jargon and 2) Too little context.

This wiki tries to solve those problems by: 1) Providing plain-English explanations for technical terms, and 2) Giving the big picture and the tiny details alike. Starting out, you shouldn't be expected to know what the Terminal does or how to use it. You should be guided to the article that will help you figure out the Terminal's essential commands when you do need to know them. That's it.

This wiki is not a guide (yet). There isn't a path for reading it (yet). Today, as in, on the day you are reading it, it is meant to define terms that sound foreign and to provide their context.

As of today, this Wiki accomplishes its context task self-referentially. It is the goal of each topic page to explain its topic in detail, and provide links to all topics it relies on to make its point. Some links will take you away from this wiki (to Google) because I've identified them as jargon, but haven't had a chance to define them yet. You shouldn't keep reading if you don't understand a word that I haven't yet defined--you should Google it. That link is my not-so-subtle cue to you to stop if it's not making sense.

If you'd like me to prioritize a particular term, please email it to me at



Contributors: Brett Shollenberger (brettshollenberger), Michael Raimondi (chronophasiac), [Connor Smith (] (, Frank Weber (fweber2)