Programming (noun)

Definition: the chemical process by which pizza is converted to software.

Update: I originally created this because I thought the key to helping people learn programming was to provide a better curriculum so that they wouldn’t need hard-to-scale human interaction. Now I think a better approach is to make human interaction scale, but I’ll leave this up for historical purposes.

Many people would like to learn programming but don’t know where to start. Some people find a starting point (e.g. an introductory computer science course in college) but have trouble learning the material. My goal is to solve both problems. This website is meant to be everything you need to become familiar with the field of programming and get on track to becoming a skilled coder, even if you’re a complete beginner.

I’ve provided a roadmap below which describes different areas of software development. You can think of the different areas like courses you might take in a college computer science program. For each course, I will provide:

  • a short description of the material
  • examples of software you will be able to create after learning the material
  • resources you can use to learn the material (e.g. links to online tutorials)
  • guidance on how to use the resources effectively

As time permits, I’ll also add my own tutorials to this website.

If you already have ideas about what you want to learn, the roadmap will show you how to get there. If you’re just generally interested in programming, the roadmap can show you where to start and give you some ideas about what to try out next.

With time, you will reach the point where you don’t need guidance from people like me anymore; you’ll be able to progress by coming up with questions and doing the research to answer them on your own. This is how experienced coders learn.


(Click to enlarge)

Course descriptions

(I’ve only written one course description so far. The rest will come soon.)

intro to programming

Prerequisites: none.

Things you’ll learn

  • fundamentals of programming with Python
  • how to create simple text-based programs (about 50 lines long) from scratch
  • how to think like a programmer

read more


read more