Human’s brain isn’t capable of multitasking. When they do ‘multitask,’ what they’re really doing is switching rapidly between several tasks (do A then B then C etc.). You know what else behave like human brain? Operating system. Once upon a time, computers can’t multitask, so they use scheduler to rapidly switch the task they’re working on.

Let’s see, what processing techniques from the computing world that we can apply for human brain so that we can be a better multitasker (read: to be able to rapidly switch between multiple tasks).

Obviously since humans operate at slower rate than computers, we will mostly be talking about switching tasks every few minutes, hours, days or even months, instead of switching context every few seconds, microseconds, or CPU cycles. Sometimes, though humans might need to context switch every few seconds or split seconds, such as when playing video games. Some of the techniques described here may still work for split seconds context switching, but other are best used for slower rate context switching.

Here are the techniques we can use to rapidly switch context sorted by the time and effort cost of the technique in ascending order.

The first technique is to just forget the task and remember it when needed. For example if you are cooking and a text comes to your phone, you can just forget that you’re cooking, see the incoming text, and go back to cooking after responding to it. The trick here is to make it easy to remember what you’re doing. In this case, make sure you text in front of the stove, so that you can see that you’re cooking immediately after you put your phone down. This technique requires little or no effort at all to remember things. I call this technique Interrupt since the interrupt in computing works the same way (the OS do something, an interrupt comes, the OS process the interrupt, go back to what it was doing).

The second technique is to memorize it (remember it continuously). While in the first technique you just remember what you were doing after you were done with the interruption, in this technique you must continuously remember it so you don’t forget what you were doing. For example if you are using the grill to make something, you might decide to wait for the food by watching TV. And so, while watching TV, you must memorize/remember continuously that you are grilling something (else the food get overcooked or burnt). If you cook inside the house, you may not need to memorize it since you’ll smell the food continuously (you remember it without even trying, just like the first technique above). This technique requires a bit more effort than automatic Interrupt, so try to make things automatic whenever possible. Nevertheless, this is a good technique when you only need to remember something for a short period of time (in the scale of minutes or seconds). I call this technique Memorization, since the dynamic random access memory (DRAM) operates in the same way (it continuously refreshes the memory so that it doesn’t forget what it was doing).

The third technique is to put it into a medium, such as writing it in paper, creating a note on your phone, putting a voice reminder, putting a deliberate error on your program (so that the compiler will tell you the line of code you last modify), creating a test suites before coding (so that the next time you code, you’ll know to start from the tests that are not passing), or telling your mom to remember it. For example, if you have to do some work but another more important work came along, you may decide to write a note, postpone the first work for a few hours, and go back to it after you finished the second one. This technique is best suited to remember things over longer periods of time (hours, days, etc.). The time and effort cost for using this technique can range from very low to very high (writing a few words on the whiteboards vs. making pages of detailed notes). The trick here is to store what has been done (before you switch to another task; so that you don’t redo what has been done), what to do next (after you get back to doing this task; so that you can go back to working on this task quickly), and what else need to be done (until the task is finished; so that if other interruptions came along you can just mark what you had done. i.e. you came back from an interruption, see that B is the next step, finished B and C, but D and E is still unfinished, another interruption came, you check B and C as done, go deal with the interruption, go back to this task once you’re done with the interruption and see that B and C is already done). I call this technique Storage, since it’s what the computer did when putting files (storing them) into your hard disk (the computer storage).

The next technique is to compress the thing before putting it into a medium (using the Storage technique above). For example, I read a lot of books simultaneously, and I try to make a summary of some of the books that I read and put it into notes. This way if I got sidetracked by another book, I can go back to reading the first book by only reading the summary. This makes the context switching process shorter than if I reread the book (rereading a chapter from a book may requires 10 minutes while reading the summary that I made of that chapter only requires 1-2 minutes). The trick here is to know what to remove. If you know what are necessary and what can be removed from the medium, you’ll be able to make a lean summary. This technique obviously costs a lot of time and effort since you need to compress things first before storing it (instead of just dumping raw information into the medium). You should also seek to continuously refine your summary (remove even more unnecessary things) when you’re reviewing it (so that the next review will be faster). This way, the more important notes (the ones that get reread a lot) will be the one you put the most effort on refining. This is a high effort technique, so make sure that you use it only if it actually saves effort. No need to make a nuclear bomb if you can just use some dynamites. No need to use this technique if any of the techniques above will suffice. I call this technique Zipping since .zip is a file format for archiving and compressing data without losing the essential information.