Personal syllabuses for effective learning

December 26, 2023

Most things I care about require learning and growth. Being a good partner and parent, my career as a developer, and hobbies like guitar and cooking push me to learn new skills and constantly improve.

Learning to learn effectively has a multiplicative effect on every other area of life, which is why I'm a bit of a nerd about learning.

As I've tried different learning strategies, I've found that having a clear roadmap for learning a subject is a crucial component to effective learning.

Personal Syllabuses

In traditional academic settings, syllabuses provide that roadmap by outlining topics covered, class policies, required materials, and other key info for a course.

A lot of that doesn't apply when learning on your own, so I've taken the key elements of a traditional syllabus and distilled them down to create personal syllabuses.

A personal syllabus is a document which outlines the following about a subject you want to learn:

  • Outcomes - a list of things you want to know or be able to do
  • Plan - details of how you’ll approach your study and practice
  • Concepts - a list of ideas, facts, and skills that make up the topic
  • Resources - a list of books, videos, courses, blogs, and other resources on the topic
Use whatever notes tool that works best for you. I like Notion because I can create pages for each topic and include links to external resources. Here's a minimal personal syllabus Notion template so you can create your own.

Creating a personal syllabus is primarily an exploratory exercise. Your goal is to get a high-level view of the subject's landscape without worrying about diving into the details too much.

A few good places to start include:

  • University syllabuses and course catalogs. Many are available online. For example, here is Standford's Computer Science program sheet.
  • ChatGPT can be a useful starting point for listing topics and recommending resources.
  • Forums and subreddits often have an FAQ with useful resources like r/guitar or posts that already answer "what are the best books to learn X".

The amount of time spent creating your personal syllabus should be proportional to the amount of time you're going to spend learning the subject. If it's a small subject you want to spend a week on, you might only spend 30 minutes on the syllabus. If it's a large subject you plan on studying for an extended period of time, you might spend a week or more exploring the subject and creating your personal syllabus.

An example

I recently started at a new job and am learning Elixir, so I'll walk through creating a personal syllabus for learning Elixir.

If there's something top of mind you want to learn, take this as an opportunity to get started creating your own syllabus for that subject!

Remember, these are personal syllabuses. They should be customized to your learning goals and context.


I had a very practical outcome in mind for learning Elixir: contributing to our Elixir codebases at work. That meant being able to read and write Elixir and Phoenix. Specifically, I wrote the following in my syllabus:

  • Be able to read and understand Elixir code
  • Be able to contribute to a large Elixir codebase
  • Be able to review Elixir code
  • Be able to build a web app using Elixir and Phoenix

Outcomes might include skills, facts, or other objectives you have for learning the topic. Effective learning focuses on those outcomes, even if your goal is something less practical like learning for fun or curiosity.


To build the concept list, I usually skim documentation, forums, university course catalogs, book table of contents, etc. to get a sense for the main topics and how they relate.

Many of those resources are created by experts who spent a lot of time thinking about what topics to teach and how to organize them, so it's a perfect starting point.

If you're learning something technical, the docs are often the best place to start. Check out Aaron Francis's recent post on reading the docs for a deeper dive on why reading the docs matters.

I typically just organize the concepts as a list with sub-topics nested under their parents to create a hierarchy. You could optionally create a concept map using a tool like Whimsical if the topics aren't as linear.

Here's an abbreviated version of my concept list for learning Elixir:

  • Language Basics
    • Basic syntax
    • Control flow
    • Pattern matching
  • Tooling
    • Mix
    • iEX
    • Credo
  • OTP
  • Phoenix
  • Ecto
  • Testing
  • Oban


I like learning from a variety of resources, so I'll try to get a list of the following:

  • Books
  • YouTube channels
  • Blogs
  • Newsletters
  • Twitter accounts
  • Courses
  • Podcasts

A common technique I use is searching "best book to learn X reddit" as there are usually already posts asking for recommendations. Unless you're learning something super niche like quantam basket weaving, you'll quickly find a ton of great resources. I'll skim through several posts to try and find commonly recommeneded resources while filtering out low-quality or outdated resources.

For Elixir, I found that the official documentation was extremely thorough and I didn't need a lot of other resources beyond that. I listed the following resources:


This is kind of grab bag focused on how you want to act on your syllabus. A few things you could add here:

  • Duration - how long you plan to spend on this topic
  • Study schedule - when you'll study and for how long
  • Practice - how you'll practice the topic
  • Benchmarks - how you'll evaluate your progress

Here's what I wrote for my Elixir syllabus:

  • Duration: 6 months
  • Study schedule: 1 hour every day after lunch
  • Activities: Reading Elixir docs, books, and building an example web app
  • Benchmark: Ship a Phoenix app! Which I did by making To Be X

Personal elixir syllabus in Notion

Here's the full example: Personal Elixir Syllabus

Go forth and syllabize

I've been using personal syllabuses for ~2 years and am continuing to refine how I create and use them, so I'd love to hear your thoughts and how you approach your learning!