The Two Types of Notes When Learning To Program

Now that I’m done with my UX Design class at WGU, I’m moving on to my next course which is all about learning how to build apps using C#. I’ll discuss below how I plan on tackling learning C#, with what I know now about learning other programming languages (such as Python).

Note Structure

When diving into a new subject, especially something as complex as programming or any technical field, I like to structure my notes in a way that makes it easy to review individual concepts if and when I have to search for them later. I like creating sections for each topic.

I also make sure that the note structure I’m creating allows me to see interconnections between different concepts. This is because when you create a hierarchy of information or link related topics together, you help your brain form associations.

My preferred method of taking notes is using Notion. It allows me to make pages and sections that contain text, images, lists, etc. In addition, Notion provides me with the ability to create entire databases with nuggets of knowledge that I acquire by reading or browsing the web, and it lets me search and filter through them (very handy!) to find what I need quickly.

The page below is an example of what a regular C# knowledge nugget looks like.

Learning how to take notes is in and of itself a skill that you undoubtedly acquire through experience when trying to learn something new. When you are first starting out, it’s good to have an avenue to capture all the information that you are being bombarded with so that you can easily review it later. You need to build your own reference tool, one that will act as a guide for your future self. Trust me, future you will love past you if you do this.

If you don’t take notes, then you’ll find that you end up spending a lot more time reading through the same information or trying to guess specific details on your own, which is not very fun or efficient (and as programmers, we should be all about efficiency).

More importantly, it’s how you organize your notes that will have the biggest impact on how well you retain new information.

In my opinion, the best way to organize your notes is this:

  • Codex – your compendium of knowledge regarding the language (syntax and terms)
  • Aha! Notes (or any other relevant name) – nuggets of experience-based knowledge

The Codex is a section where your regular notes live, such as the fundamentals and the overall basics of the language. These are the notes that you’ll refer to frequently, especially at the beginning, as you get started. You want to ensure that they are organized and easy to navigate. These may come from a course or a book you’re reading about the language.

On the other hand, the Aha! Notes are the moments of clarity that come to you as you actually perform coding practices or tutorials. Moments when you say, “Aha! I understand now!”

They can be anything from when you make a mistake and figure out what you did wrong, to a moment when you realize that a certain method or keyword exists in the language that you were unaware of before. These are the moments, the nuggets of gold, that will stand out.

Try to write these down as they happen to you.

Aha! Notes

Your Aha notes are not going to be very organized and structured. They’ll be scattered around, and they won’t necessarily fit within a strict outline. Instead, they’ll be a mishmash of random thoughts and ideas, which is exactly what they are. They are moments when you figured something out on your own or realized something existed to achieve your end goal.

This makes Aha Notes as important (if not more important) than your Codex! It is where the real magic of learning happens. These notes should not be disregarded or forgotten. When you have a breakthrough, make sure that you write it down as it happened, and be as descriptive as possible. How did you bump into that? Why did it click for you? What was the catalyst?

You can even create a section or tab called “Aha” or “Ahas!” in Notion and use that for these types of notes. This is not to say that your Codex notes should not have the same amount of effort put into them, but your Aha notes are going to be the real key to your success.

For me, I capture my Aha moments in a template on Notion. Below, you will see what my template looks like:

As you can see, I’ve made sure that when I have an Aha! moment, I write down the following:

  • Title: (What is the concept, keyword, or thing you learned?)
  • What I was trying to do: (Briefly describe what you were working on or the problem you were solving before you bumped into the concept.)
  • What confused me: (Explain what didn’t work, what you misunderstood, or what tripped you up.)
  • How I figured it out: (Note how you learned the correct solution — ChatGPT, documentation, error message, etc.)
  • What I learned: (Summarize the actual concept or rule in your own words. Include any “why” behind it.)

The “What I Learned” part is crucial! It is where you’ll write the most about the end result of your Aha moment. Be as descriptive as possible, your future self will thank you!

The Codex

As mentioned above, the Codex is where you collect and organize the foundational knowledge of the language you’re learning. This is your personal reference guide, where everything is neatly structured and logically arranged so you can quickly find what you need when you’re deep in coding or debugging.

Think of the Codex as a growing manual that evolves with you. In the beginning, you’ll probably focus on things like:

  • Basic Syntax (how to write a for loop, how conditionals work, etc.)
  • Data Types (strings, integers, booleans, arrays, lists)
  • OOP Concepts (classes, inheritance, interfaces, etc.)
  • Common Methods and Libraries
  • Error Handling (try/catch, exceptions)
  • Useful Patterns and Practices (naming conventions, formatting, DRY principles)

As you go deeper into the language and start building small apps, your Codex should expand to include more advanced topics. This structure helps me revisit and revise topics without having to dig through messy piles of notes or rewatch entire lessons. It’s a living document, and I edit and refine it as my understanding improves.

I did this with JavaScript when I was first learning it and found the Codex I’d created very helpful. The table of contents I’d laid out became a handy reference guide that helped me get up to speed on what I had already learned months prior after finishing a beginner’s course.

Why This System Works

The combination of a Codex and Aha! notes works because it mimics the two ways we actually learn:

  • Structured learning (the Codex) where you absorb information in a logical, curriculum-style manner.
  • Experiential learning (the Aha! notes), which captures what you learn by doing, making mistakes, and discovering things on your own.

By intentionally incorporating both types of documentation into your learning process, you create a powerful system that not only helps you retain information but also understand it on a deeper level.

As a software developer, it’s imperative that you learn how to document and structure your notes and keep a log of what you’re learning. These aren’t replacements for real-world experience and actual practice, but they sure can help accelerate the learning process!


Last Updated on June 7, 2025


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *