A developer’s work is connected with memorizing huge amounts of diverse information. Every developer has his or her own specialty niche and wants to be as good as possible in it. There are a plethora of interesting ways and instruments on how to separate simultaneous work of developers of different specialties but still the best is the work of a programmer who is able to see the whole picture.
This means that it is important to have the knowledge and skills not only in one field but in multiple fields. Moreover, a programmer usually works either in multiple projects simultaneously or is switched from one to another. Technologies and approaches in each project may vary and the variations might be almost limitless.
The most important thing is experience you might say and I Agree with you i. It is however no secret even experienced programmers often look into documentation of specialized forums to check whether memory serves them correctly. This means lost time, which can be used in other more enjoyable ways.
This article is my personal viewpoint on how to quickly and reliably remember a lot of information from different areas in order to save some time for other duties.
The price of bullet proof memorizing
Obtaining knowledge is relatively easy but keeping it is another story. A russian proverb says: “A miser pays twice, a fool pays every time” and in our case it’s the same. If at a phase of learning we will not make the necessary and methodically effective efforts, then later we will have to check our knowledge again and again.
So what is the proper way? Let’s try to understand how our memory works. Our memory has two mechanisms: remembering and forgetting. The purpose of remebering is obvious, but why do we need the one for forgetting? The answer is simple: the brain doesn’t want to keep information we don’t use anymore, it considers it unnecessary and gets rid of it. How does the brain understand what is significant and what is not? Thoughts we repeat often are considered to be important and are remembered better, for a longer time and kept “closer” for fastest access.
German scientist Ebbinghaus explored forgetting in an experiment in 1885: he had built a graph called “The forgetting curve”, which shows how information is lost over time when there is no attempt to retain it. The best way to memorize is by systematic and constant repetition:
- first repetition — right after reading
- second repetition — in 20-30 minutes after first repetition
- third repetition — in a day after the second repetition
- fourth repetition — in 2-3 weeks after the third repetition
- fifth repetition — in 2-3 months after the fourth repetition
1. Finding useful apps to help you remember
You’re about to say: “Oh gosh! How am I supposed to follow the schedule from above in reality? It’s too complicated”. Do not be scared because there are good solutions! For instance the modest but powerful and efficient app Anki, written with Python. It is available for many platforms including a web version.
The workflow is simple: you create flashcards in which you input what you need to repeat and remember and then you just watch and learn. The app keeps track of spans of time between repetitions of every specific flashcard in order for you to avoid unnecessary work.
2. Memorizing is understanding
Trying to learn things you do not understand may seem like sheer nonsense. Working on understanding the information is essential in any type of memorization and the more you understand, the easier it is to memorize. If you don’t understand something try to Google it for an explanation. Use several sources to verify and see if you can understand one better than the others.
3. Visualize what you read
Better to see something once than hear about it a hundred times – the proverb says. Try to find any possible kinds of tables, schemes, diagrams and other visual types of storytelling concerning your case. Create your own pictures or diagrams. One of the best types of charts you can build while reading is a mind map.
4. Morning is the best time to study
You really have to convince yourself to study in prime time. Your brain isn’t overloaded yet and there are less distractions. Nowadays it’s very difficult to protect yourself from information overload – there is a lot of information from multiple sources all around us. Unfortunately, our brain is not able to take in this stream of information selectively and usually it’s more difficult to perceive the information at the end of the day than it is at the beginning. Therefore, the best time for learning is the moment right after getting up: try to prepare a cup of your favorite coffee and wake up to nice and useful exercises for the brain. Many successful people get up earlier, so that they can consider their most important decisions in silence, use them as a good example to do it yourself!
5. Try out in order to understand
Type every one of the code examples yourself. Don’t be shy to be a maniac about typing in all of them while you learn. It is very important not to copy and paste and typing in code examples instead of glancing at them in a book or in a video is a more active process that stimulates memory and retention.
Perhaps most importantly, when typing in code examples you will make a mistakes. Finding those mistakes and correcting them is also an invaluable part of the learning process. The more errors you make, the more opportunities you will have to examine the code carefully and in time understand it. Love your mistakes because they make your attention more sharp.
6. Share your knowledge with others
Be open to questions from your coworkers, write blogposts on the subject you are dealing with at the moment. In the comments to a blog post you can see a lot of interesting questions that will make you think deeply and will cause you to extend your understanding and knowledge.
It is also a good practice to contribute in translation of documentation into your native language or in open source projects.
7. Mnemonics gives a helping hand
Learn basic principles of mnemonics. Hook new knowledge efficiently to something you already know. A good example course on this topis is available on lynda.com. This course explains the principles of good memory. Learn how to use repetition, exaggeration, chunking, associations and visualization to significantly improve your ability to memorize and reproduce. Learn basics of usage of mnemonic devices, link systems, similar sound techniques, story methods, note taking techniques, memory palaces and the method of loci, using rhymes and alliteration. These memory techniques will allow you to easily memorize faster and for a longer time.
Mnemonics relies on the use of our imagination and creative thinking. Creative thinking involves the construction of visual images which most often don’t have to be correct. Usually they are absurd and exaggerated.
Exaggeration allows you to remember things better. We better remember things that are knocked out of reality and that differ from the normal. Today’s marketers use it when creating provocative advertising, which easily cuts into the memory so why can’t we use it ourselves?
Mnemonics offers us a tool to create visual association. Below you will find an example of real things that can be compared to some of the signs often used in the syntax of programs , this makes it easier to remember them:
- @ ear
- & pretzel
- ! cat tail
- $ dollar bill
- # hammer
- – piece of chain
- _ floor
- ( ) embraces
- [ ] metalic box
- . eyeball
- : double barrel
- ; wink
- ‘ drop
- ” rabbits teeth
- / samurai is is ready for sword buttle
- he changed his mind, sword is down
- | twig
- ? sickle
- * star
- + medical kit
- ` hair
- ~ ocean wave
- % scale
- ^ carrot
Combining these pictures will help you create an exaggerated story, which will be hard to forget.
8. Quiz yourself
Another good way to keep your knowledge and skills is to make a challenge for yourself. Answer the quiz questions related to the subject you are studying. For instance you may try this one from quizlet.com or another one at davidshariff.com
These are just a few of the techniques that I apply on an every day basis. I am sure that there are many more so please come with reflections and comments on your best tricks and ideas.
Mykhailo is a Frontend Developer at 10Clouds. He moved to Warsaw from Ukraine a year ago and has been a devoted fan of long Warsaw sightseeing walks and hikes in the surroundings of the city. He is a big fan of healthy living and loves bicycles.