As I go through the exercises I find that I’m having trouble keeping track of everything I’ve “learned.” When it comes time to use something I either forget that I learned it or how to do it. How do you guys best retain what you learned day to day?
The exercises introduce ideas. The algorithms and projects solidify them.
Practise, practise, practise!
You might also find something like http://codewars.com useful for when you need to practise more JS algorithms than the ones provided.
From my personal experience (which is mostly amateur/hobby) I would just keep practicing. I would change my website layouts on almost a weekly basis and just code the page to what I envisioned. I recently dedicated a notebook to jotting down notes on things (specifically: JQuery) to have as a reference. I think the most effective way is to just practice, put things in codepen or github that you can reference later, and just keep going! Go back to what you forget and re-do the exercise. Keep a bookmarks folder of tutorials or guides on things you don’t understand or want to understand later.
Working on projects is key.
I’ve been working on an elaborate to-do app for the past month. To-do apps are pretty common as a beginner project but they generally don’t do that much; they just add items to a list. I thought I’d try to make one that does more. Mine does the following:
- adds items
- moves items up and down the list
- moves items to top or bottom
- sorts alphabetically
- sorts by time added
- deletes items
- restores deleted items
- clears deleted items
- crosses-out items
- highlights specific items
- each item includes a time stamp
- stores items in local storage so the list is saved for later without using a server
- more to be added
This I will use at work to help me stay organized so it’s a useful project. The CSS alone is a handful to make it work on desktop and mobile. Just keep at it.
In it’s Basic sense, you do:
10 PRACTICE 20 GOTO 10
Sometimes, knowing that such X command or Y function exists in a given language is helpful enough. Then just check the command reference manual/google for the finer details.
As an example, .NET Core 2.0 has 32,000+ API calls. Nobody can memorize and retain all that. But it will be helpful to know, that hey a SHA512 encryption library exists and is available to use.
But some of the more common commands you’ll just retain/remember how to use if you constantly use them… i.e. practice practice practice.
Here’s an approach which I adapted and been using for years. I have a file called
iread.txt (I use emacs and org-mode to write my notes). Ideally, anything worth of remembering that I encounter on the internet or during offline reading, should find its way into this file.
Here’s how I organize it:
At the top level I have series of topics. There are for giving context to the questions which follow. I try to include the url to the source material, but I’m yet to take advantage of that. If I begin entering my notes for a topic, I try to be as thorough as to never have to go back to the source material again.
I put my notes down in form of
question - answer. This serves two purposes:
- It gives me an opportunity to eventually export all my notes into Anki or similar flashcards software. I haven’t figured out this process yet, but my eventual goal is to gradually reduce the size of this file by removing questions and topic, which I can effortlessly recall.
- It forces me to look at the material I just heard from a different perspective. I believe its good for strengthening neural pathways, and makes you think if you really have enough context to understand the problem which this piece of information tries to address.
Most of the notes I take are probably ineligible to anyone but me. It may be worth your time to try and formulate them nicely, as opposed to copying verbatim from the source, because of, again, neural pathways. Sentence composition does not come easy for me, so I don’t bother.
In practice taking notes like this is pretty easy. It takes at most twice as much time as reading the material directly. But the benefits of this approach outweigh the expense. I consider any information that enters my ear that I haven’t written down, to be soon lost. There is a chance I will remember it, but there’s also a chance that I will not be able to recall the fact ever receiving it.
I also recommend following materials, which shed some light on the science behind effective learning:
- Coursera - Lerning How To Learn I think it’s one of the most popular MOOCs out there. It opened many new people to valuable information, much of which since then became available elsewhere.
- Youtube - Crash Course: Study Skills Well developed topics in bite-sized chunks packed with valuable information. Will be as useful to a student, as to a professional looking to improve their productivity.
I guess for me, I just assume that things are only worth remembering in detail if I use them regularly (and if I use them regularly, I’ll recall them from sheer rote anyway). For everything else, there’s mastercard…err, sorry, reference guides. As others have said, the projects really solidify your information retention.
I write it all down in a notebook. I’m learning JS right now so with every new lesson/concept I make a note. I try to formulate the explanations in my own words (as if I were trying to explain it to someone else) and that helps me not only remember it better but also understand it better. Along with the explanations I’ll also write down coding examples that go along with them so I have a quick visual reference.
I’ll usually then reinforce that with a computer file. So for example let’s say I’m currently learning arrays. I’ll note what an array is, what it does, what I can put in it, how to access it in different ways all in my own words, write down some examples and then create a .js file with code in it to see it working in action. I’ll even make notes in the .js file too.
Jumping on the bandwagon, the major thing is practice. Repetition is one of the best ways to remember something. But it doesn’t hurt to have a notebook or several to serve like extra brain space.