I haven’t gone to my graduation ceremony yet, and I already miss school. I love taking classes.

There are plans online showing you how you can learn everything you would need to earn a degree without actually getting a “degree”. These are valuable resources, but it would take an extraordinary amount of effort to follow through. I haven’t met anyone able to do it. The problem is sustaining motivation for an extended time. It’s easy to be distracted.

Without a plan you can spend years trying to learn something that should take months.

Create a plan, stick with it.

Type theory

Ever since I started with Haskell, I’ve been interested in learning more about type theory. I’m going to try to learn the equivalent of a graduate level course in type theory in 3 months.

types and programming langu

The textbook I’m going to read is Types and Programming Languages by Benjamin C. Pierce. It provides a syllabus for a 26 lecture course. I want to finish in ~3 months, so I need to complete 2 a week.

course plan

I’m going to try to skip as many chapters/lessons as possible to speed things up. I’m not trying to rush through it, but sometimes you need to make sacrifices for the sake of time. The book has a nice dependency graph among chapters. Notice I can probably skip chapters 12, 14, 19, and 22. I can always come back to chapters later.



I have other, more important, projects to work on. After working all day, I have to find motivation to work on this. This is easy when you have an exam approaching (and your obsessed with your GPA). This is more difficult when you are on your own.

I’m going to try some motivational techniques I learned from The Procrastination Equation and The Motivation Hacker.

  1. I’m making myself accountable by sharing my goal (this post).
  2. I’m creating a beeminder goal. If I fall behind, I lose money.
  3. I’m going to reward myself by buying a (materialistic, unnecessary object TBD) if I complete my goal.

What I haven’t figured out


I don’t have a consistent way to receive feedback on my work. This is a valuable piece I’m missing. It would be ideal to have a study group, or, at least, a study partner.


Most graduate level courses involve reading important papers. I don’t know which ones to read. I hope interesting ones pop out at me. I can write reviews on this site.


The most important part of a course are the exercises. You learning so much by doing. Assigning myself homework is almost doomed to fail. I don’t trust myself to complete a difficult problem when I have no accountability to do so. A solution would be to find a study partner. The book provides recommended problems, but I don’t want to bite off more than I can chew.

Planning self-study is difficult. You don’t know how hard to push yourself. Teachers will push you whether you like it or not.



Remember: Stick with it until the end. Don’t skip the hard parts.

dont skip the hard parts