Writing is Learning

By writing as we learn, we get to take what we're studying and process it in our own way, with our interpretations. Writing helps us absorb and retain the essential facts, concepts, and principles while building the vocabulary that goes with them.

There have been quite a few times when I've struggled to retain something I've just watched or read while learning how to code. Being unable to remember something I just read started to interfere with my progress.

One way to solve my retention problems was to start writing to improve and solidify my understanding, which led to better retention. I became fascinated by the idea of writing as a powerful learning tool. It provides a natural mechanism for figuring out what we understand and what we don't. In the absence of direct feedback from an expert, which many of us don't have, writing allows us to see our mistakes and monitor our progress.

I want to walk away with a solid understanding and a carefully scaffolded framework to build the essential skills I need to be successful.

Because writing is more cognitively demanding than just consuming content, we are constructing and reinforcing neural pathways, building a learning framework.

My Plan

So how do we do this? Here is my plan so far:

Map It

I skim the content I'm learning and build a concept map of the main topics, sub-topics, and related vocabulary.

The map doesn't need to be comprehensive, at least not at first. You can focus on the lesson or concept you're working through and grow it from there. It's OK at this stage if you don't understand everything you're reading; right now, we're laying out the key concepts, principles, and vocabulary.

For this example, I'm using a description of the Software Development Process found in Python Programming: An Introduction to Computer Science.

Plan It

Using your map and the learning material, pick a topic and create an outline. We then write a brief learning objective for each subject. We are not shooting for originality at this stage. It's OK to borrow from your references. Our plan is a means to an end. Having a well-defined objective helps us focus on the actions that get results.

Learning Objective: A learning objective describes the learner's outcome. It should explain what the learner can do after a lesson or exercise.

Let's analyze the problem using the mind map as our topic. Using our learning material, we've skimmed through an example the author provides, and we've found what looks to be three steps to better understanding a problem.

  • Identify the input.
  • Identify the output.
  • Describe the process required to convert the input to the output.

In this case, our learning objective could be something like this:

When I finish this lesson, I will be able to take a problem and break it down into the available input, desired output, and describe the process for converting the input to the output.

Research It

Watch the lesson, read the chapter, answer the questions, and do the exercises. Resist the urge to take comprehensive notes. Write down essential concepts, but not word for word; get the gist of them. Try to focus on giving the material your undivided attention.

Challenge yourself here. How would you rate your overall understanding of this topic?

Our example about the author in our learning material talks about a standard pattern called IPO, or Input, Process, Output. While I understood it conceptually, I decided to read around this a bit more to understand better how to break down a problem.

In another book, Exercises for Programmers, I found an excellent chapter titled Discovering Inputs, Processes, and Outputs. The author describes how by writing down the problem statement and then breaking out the nouns and verbs, we can understand what we need to do.

Write It

Using the outline you made in the Plan It stage, do a brain dump. Write everything you can remember about the topic you just watched or read. Do this without looking at your notes or rewatching/rereading the material. Don't worry about getting it wrong at this stage. Remember, we are writing to learn. Resist the urge to edit while writing. We'll edit after our brain dump.

If you're writing about how to do a specific coding task, write code examples with what Brian Hogan calls "The Code Sandwich."

  • Write a brief high-level description of the code.
  • Write the code.
  • Write a deeper dive into the tricky bits of the code.

Even though our example isn't code, it's a process for understanding a problem. However, we can still follow Brian's advice by writing the high-level overview, providing an example, and then diving into parts that may have tripped you up.

Now that you've got a rough draft, ask yourself,

  • How confident am I that the things I just wrote are correct?
  • What concepts were/are difficult to understand?
  • Do my examples work?
  • Can I do what I described in my learning objective?

With these questions in mind, go back through and review and fix anything incorrect. Go ahead and correct any mistakes in grammar and spelling while you're at it.

Now you have a not-so-rough draft. At this point, it's time to walk away for a bit. Go for a walk, get a snack, talk to someone.

Now that you've had a little time and space away come back through and review it again. Tweak it, fix it, make it right. If necessary, go back to the learning material, then come back and tweak it some more.

Note: It is crucial that you are not just copying someone else's words. To absorb and retain what we are trying to learn, we need to process it through our own experience and understanding. Don't plagiarize!

Publish It

Just f**king publish it. I struggle with this part a lot. I don't like the idea of putting something out there, putting myself out there. The reality is that it may never be perfect, and if I don't publish something, I won't ever publish anything.

Part of the learning process is putting things out there and getting feedback. It lets us check our thinking and make corrections. The good news is that unless you already have an audience, most likely, no one will read the work, which is OK, too. We are building a body of work that will pay dividends in the long run. Writing is about learning, improving, and challenging ourselves.

Conclusion

Writing, as we learn, is a powerful system for developing a deep understanding of a topic. We build a solid framework of concepts, absorb and retain more of what we learn, have a solid foundation for building the skills we want, and have content we can save and share. is learning!