Retention of knowledge

Hey, guys and gals I just have a quick question.

I have been working with freeCodeCamp for a few weeks know and I just go to the tribute page challenge. I felt like I knew what I was doing during the lessons and challenges but when I got to the project I felt like I knew very little. I was wondering if you guys have any good ways to retain what we learn.

Thanks.

Best way I found initially was to just get out there and code, but no copying and pasting

2 Likes

So you remember more stuff the more you code then?
Thx btw!

1 Like

This is very normal, specially for new comers.

Do not feel bad about it, we’ve all experienced it!

What I’ve done when I come to this situation is to read the official documents and see their examples. From there, try to code it yourself (not copying and paste).

The only way to retain knowledge is to apply it!

4 Likes

Keep practicing. Break stuff and fix it by using read search ask. You will be suprised at how much you know and will learn. :slight_smile: keep up the good work and just take it one step at a time (:

1 Like

Personally, I have just studied whatever course I was studying 2 times. Thin skimmed over a 3rd time.

e.g. api.jquery.com, study whichever methods I need, write the code from memory, then study those same methods again and rewrite the code from memory again. Then skim over it a 3rd time. It seems to always stick then.

So that next time I’m building something, I know the methods I need from jquery purely from memory, their exact signature, what they’re supposed to do, and whether or not it returns anything, all from memory without having to reference anything.

But that route does require a lot of time. And it’s useful only if you really want to code purely from memory.

There is nothing wrong with depending on documentation rather than your memory.

1 Like

I’ve recently been trying something new while building my full stack projects in Rails. A full Rails project will take care of rendering the views for you, so it’s able to keep track of the user’s logged in state, but I wanted to use Rails’ API mode and needed a stateless user authentication setup using JWTs. I found the perfect walkthrough here and was able to follow it to completion easily. The problem was that I didn’t remember what I had done because I was just typing what I saw. I decided on a few steps that would (I hope) ingrain the knowledge in me.

  1. Read through the source code and understand what’s happening at every step.
  2. Make my first version, typing everything (no copy/paste). Play around with it once it’s done. Break things.
  3. Scrap the first and make another. Don’t worry about memorization just yet.

Now, the following step is the “secret sauce” that I hope will bring more gains than rote repetition.

  1. Get out a piece of paper and rewrite the instructions, but without any actual code. This should give you a high level description of the end result. Now, your goal is to make as many versions from these instructions as you can without looking at the original. This forces you to generate the code in your mind, which is (I think) key to retention. It’s up to you to think about the moving parts and how they fit together. Do this as many times as you feel necessary. Take a break and do it again a few days later.

I’m not sure how well this works or in what context it works best, but I feel it helped me.

6 Likes

Wow, this is literally (and I mean exactly) what I did when I was learning React.

Great minds think alike :nerd:

2 Likes

Personally, I have found some “code along” videos on youtube very helpful for bridging the gap between the challenges and the projects. You can find lots of such tutorials. Try to type into an editor as you go along with the video. Good luck!

I made myself a website to put my solutions and projects:
http://coding.citytravelling.me.uk/

I also do extra stuff on codepen, JS Fiddle and JS Bin.

And! I just started a blog to go with the above site.
http://codingblog.citytravelling.me.uk/

How do you get to play at Carnegie Hall? Practice! Practice! Practice!

1 Like

While you start to code over and over you’ll start to remember all statement more easily

If I could go back in time to when I had trouble with finding resources for fcc Front-end first project the only thing that could help me is if someone said this- Even if you think that you forgot EVERYTHING - start the project and DON’T waste time on learning the basics from other courses and websites. Even if you don’t know how to make a HTML page search for it. Search for anything you don’t know. You will find yourself searching every two minutes and feel like an idiot. I can assure you that you will be able to get enormous amount of knowledge and it will be much easier for you to complete the next projects.

First, make sure you have a good coherent learning resource. It should teach you the syntax and also give you a conceptual understanding of how the code works. Freecodecamp material gives you some granular understand but it doesn’t teach you the big picture. Codeschool is much better, in my opinion - and worth paying for.

Second, take notes. My method is to screenshot code examples and then explain in my own words what the code is doing. Taking notes will slow you down and force you to really understand the material. It’s also useful to make a glossary of key terms and methods. That way you can look up what you’ve learnt with a quick ctrl + f in a word doc.

When you get to do projects, the chances are there will still be a gap, even if you have studied thoroughly. There is a creative problem solving element to coding that you can only acquire through patient practice. Algorithm problems are excellent for this kind of thinking - especially for JS. But for CSS and HTML - a great method is just to play. Get in Codepen and just try out every attribute you’ve learnt. Just be a kid playing with Lego.

1 Like

Memory is a funny thing. Turns out the more senses or input/output you can tie into something you need to remember the better the chances it will become permanent and readily available as memory.

What I mean is read the material. Write the material ( take notes as mentioned above ) Listen to it on a YouTube maybe. Recite it back ( what P1xt said about explaining it to someone ).

The more ways you can make use of something the better it will stick in memory.

Repetition is also very important. So Practice, practice practice!

Too bad you couldn’t figure out how to taste and smell it also. Maybe eat your notes… LOL

Start taking notes. I use mindmap software, these days I am using xmind.
If I am following some video tutorial showing code I pause it and I do a partial screen capture and I paste it onto the mindmap.
Taking notes in HTML is a good idea for obvious reasons, but you’d better do a bit of research with tools that help to be productive (like editor add ons) , because typing “& l t ;” every time you want to display a greater than symbol… is not very entertaining.

Learning coding reminds me a lot of my experience learning a second (non-programming) language. Anyone who spent a lot of time learning a language in college will know the feeling of looking up the same word a dozen times… Perhaps even remembering the damn page of the dictionary it was on, but not what it meant. (Non-programming) language learning taught me I will forget a lot after seeing it the first time, but the act of reviewing again is part of hard-coding/internalizing the material. Practice using it outside of a learning environment (in this case, the coding projects) is where the internalization happens. Personally, I’m a big believer in hand-written notes in the reading/watching/initial learning phase–studies seem to indicate special mental powers are connected with the use of our hands (like creativity for example). I learned Chinese, and many native Chinese when they can’t remember a word, try to trace it with their hand because the hand remembers when the mind cannot.