22 Jan 2020

What can cause learning inefficiency

History / Edit / PDF / EPUB / BIB / 2 min read (~394 words)

What can cause us to learn inefficiently?

There are many reasons which can cause someone to learn at a slower pace than what should be possible for them. This can be caused by many factors, amongst them:

  • Learning the same material under different wordings: You are going through material which you've already read, thus this "new" material is not providing you with any fresh information.
  • Learning outdated material: You are learning material that has already been replaced with better material. It may be useful to learn outdated material for the historical purpose, but you should always aim to know what is the latest material.
  • Learning incorrect material: You are learning material that is effectively not providing you with the information you want to learn. It may appear like you are learning something, but learning the wrong facts is a waste of your time.
  • Learning from a source that makes the material difficult to understand: Learning efficiently is about learning from the best sources. If the material you have makes it difficult to understand what you are trying to learn, you should look for content elsewhere.
  • Learning material for which we do not know the prerequisites: Learning a topic when we do not have the prerequisite knowledge will generally lead to confusion and make it difficult, if not impossible to learn.
  • Learning from multiple sources with contradictory information: Learning from sources that disagree on facts makes it difficult to learn because you have to either accept that both answers are true, which can be complicated when they contradict each other, or that you need to establish which answer is the correct one, which requires additional effort.
  • Learning while not being completely focused on the task: When learning, it is imperative to dedicate our focus to the task. Not doing so is likely to lead to information falling through the cracks of focus, leading to gaps in understanding, leading to requiring to go through the material again.

What is important to do while learning is to recognize when certain behaviors or circumstances make learning less efficient than desired and writing those behaviors or circumstances down so that you may have your own list of causes for learning less efficiently. As you discover those causes, make sure to put in place some contingency plans that will help you reduce their impact on your learning abilities.

21 Jan 2020

How often to review your own notes

History / Edit / PDF / EPUB / BIB / 3 min read (~415 words)

How often should I review my personal notes?

The simple answer is to do it as often as possible.

The more often you can go through your notes and review them, the more they will be fresh in your mind.

However, as you write more and more notes, it will be difficult to go through them all. At one point you will need to start prioritizing what you want to review and at what frequency. I see writing the same way I see programming: certain parts of the code work well and don't need to be touched for a while, so they are left alone. However, sometimes certain parts have become neglected with time and need to be looked at again.

All my notes on this blog, as well as my private project and personal notes are committed to git automatically every time I switch out of VS Code. This means that I have a very granular history of the last time a file was touched. This allows me to look back at the list of files I have and to find the files that haven't been touched in a while. Sometimes I'll read them again, think about them a bit, then close them if I have nothing to add. Other times I'll write about something that I've learned since then. Doing this feels a lot like improving some part of a codebase after you've learned how a piece of code would be used.

Another way you can schedule reviewing your notes would be with a spaced repetition system like Anki. It wouldn't be too much work to have a system that automatically creates an Anki note/card with a link to the file itself. You would click on the link, which would open the file in your text editor of choice, read the note, change it if needed, then close it. You would then go back to Anki and pick between hard/good/easy to decide when is the next time you would review the note.

I'd suggest dedicating a small amount of your week going through what you wrote and refreshing your memory. It is definitely useful to simply write things to get them out of your mind and to attempt to express your thoughts clearly. It's also useful to review what you thought about because your subconscious might have kept working on those thoughts well after you wrote them down and there might be more to contribute on a topic.

20 Jan 2020

Why ask questions when few are answered

History / Edit / PDF / EPUB / BIB / 1 min read (~194 words)

What is the point of asking ourselves many questions when we only answer a few of them?

The purpose of asking yourself questions is to prompt your subconscious to look for the answer.

Asking yourself questions is a way to determine if you know or do not know the answer. If you don't know the answer, then nothing will come on the top of your head quickly. On the other hand, if you know an acceptable answer, it will show itself rather quickly.

Asking yourself questions is a way to explore the domain of your knowledge and look for areas where you might need to do additional research.

If you ask yourself a lot of questions on a certain topic you're studying and you don't know the answers, then it can let you know that your knowledge is lacking and that you need to study more.

In some cases you might ask yourself questions that you don't really want to know the answer to.

One of the main reason a lot of questions remain unanswered is because asking questions is easy, but answering is hard.

19 Jan 2020

Belief traceability

History / Edit / PDF / EPUB / BIB / 2 min read (~310 words)

What is belief traceability?

In software development, is it very common to want to have traceability between things. We want to know from where a requirement came from, who created the entry, who approved that it should be supported by the software, the issues in the issue tracker that will implement the requirement, who implemented the requirement, who reviewed the implementation, etc. The goal is to be able to retell the story of this requirement from beginning to end if necessary.

In the case of belief traceability, we want to be able to trace how we've come to believe in something. Being able to trace back to the source of our beliefs allows us to determine if we still want to believe in them. Being able to also determine how a belief affects or generates other beliefs can be quite critical when we are re-evaluating our beliefs at some points in our lives.

Belief traceability starts with making a list of all the beliefs you have. Once you have made this list, you can try to determine if certain beliefs lead to other beliefs. You can also try to figure out if you have conflicting beliefs. You can attempt to associate beliefs with people, either because you think they are the ones that led you to believe something, or because they believe in that belief themselves. You may also have changed beliefs at certain points in your life. As such, it is interesting to create a timeline of your beliefs, where said beliefs are seen as being replaced or evolving over time.

As you get familiar with the process of tracking your beliefs, you will want to update your belief tracking system as you acquire new beliefs. This will allow you to reflect explicitly on what you believe and help you make a thorough analysis of those beliefs.

18 Jan 2020

Learning according to machine learning

History / Edit / PDF / EPUB / BIB / 2 min read (~201 words)

What is learning according to machine learning?

It is (for supervised learning) looking at numerous samples, decomposing them into input variables and their associated target variable, and deriving according to an algorithm how to predict the target variable given input variables.

It is the (potentially lossy) compression of the observed samples, where the learning algorithm describes the compression/decompression algorithm. The compressed data is the information necessary for the algorithm to make predictions (decompression).

It is the creation of some "memory" of the observed samples. Whereas an untrained model has no memory of the dataset since it hasn't seen the data, a trained model has some form of memory. A simple model such as sklearn's DummyRegressor will learn and memorize the mean of the target variable. It may not have learned and memorized much, but it has built its internal model of the data.

It is to imitate as closely as possible the source of data it is trained on. This means that given input variables, it should produce target values that are as close as possible to those observed during training (learning).