ProScrypt Koans

Introduction

Have you ever wondered what it's like to build something awesome using computers and software and your head? Something that doesn't yet exist, solves a real problem, and could disrupt a trillion dollar industry?

My goal is to help you find out.

You might have other goals. Maybe you're a project manager who wants to understand when the little neckbearded shits she works with are shining her on. Maybe you're in prison literally or just figuratively and looking for something to pass the time: An enlisted sailor on watch, trying to keep awake; one of those emo kids in high school who hates football players and cheerleaders and wears axe body spray and vapes in the bathroom between class; a Dad with three kids by two different baby mommas, who doesn't want to spend the rest of his life on food stamps. Maybe you're homeless. Maybe you're a beauty-queen-trophy-wife who has always been quiet, and perfect, and who nobody thought was smart enough, but yesterday some ugly hater skank threw shade on your Jimmy Choo's and now you're going to show that fat ugly cow what is the what. I don't care what your goal or motivator is, and the code you write for these machines will care not at all. We don't care how old you are, where you live, what car you drive, if you're good at math or science, where you went to college, what you studied, or even if you went to college at all. Speaking of machines, almost any machine running OSX, Windows or Linux with an Internet connection will do. You won't need a credit card, and you don't need to be smart. Let me type that again:

You don't need to be smart.

What you do need is a few blocks of uninterrupted time to get started, a good attitude, a bit of unhealthy curiosity, some obsessiveness, some stubborn, the ability to pay attention to detail, the ability to focus, the humility to ask people for help when you're stuck, and a little bit of anger. Because this tutorial and these koans are hard. Computers and software and other developers will make you feel stupid. They make me feel stupid every day. I wish I knew how to help you learn this stuff without making you feel stupid, but I don't. All I know is that if you finish these koans, nobody will be happier for you than me. Not even your Mom. Because unlike your Mom, I don't love you or accept you unconditionally. My happiness will come from having been in your shoes, from having felt stupid and frustrated, and from knowing I had a small part in turning your anger into confidence.

My happiness will be conditional, but real.

koans

What's a koan? Here's a definition of a koan that seems legit:

a paradox to be meditated upon that is used to train Zen Buddhist monks to abandon ultimate dependence on reason and to force them into gaining sudden intuitive enlightenment

I'm no zen buddhist monk and don't want you to abandon reason, but I dislike lecturing and going into too much detail trying to explain things -- that's not how I learn -- and so I'm going to give you a problem to solve, and let you figure out how to solve it on your own.

If you're having trouble with a koan, look for the blue link to "reflect" on it further.

Your first koan

The site you're reading these koans on is all about managing different versions or branches of a code base or any group of files known as a repository. The koans are organized into different chapters which not coincidentally correspond to different versions of the code in our repository. Click around to get a feel for the site, and when you've figured out how to change the "branch" of this repository to "chapter-1," and otherwise indulged your curiosity, go ahead and change it.