# Fear of Forgetting

**URL:** <https://forum.freecodecamp.org/t/fear-of-forgetting/270387>\
**Category:** I Built This\
**Created:** [April 10, 2019, 3:03am UTC](https://forum.freecodecamp.org/t/fear-of-forgetting/270387 "2019-04-10T03:03:52Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![habit456](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/habit456/32/114005_2.png) [@habit456](https://forum.freecodecamp.org/u/habit456)\
**Post date:** [April 10, 2019, 3:03am UTC](https://forum.freecodecamp.org/t/fear-of-forgetting/270387/1 "2019-04-10T03:03:52Z")

</div>

I did the javascript course first and once I finished that, I knew I had to do the HTML and CSS course too. JavaScript and programming is what I really enjoy. I know that for sure. And so the more I’ve been going through CSS and HTML, the more I have this nagging feeling that everything I learned in javascript isn’t being put to use and I’m slowly forgetting it. I felt really sharp with javascript after being put through all of the challenges and completing them. And I’m afraid of that sharpness going away. What should I be doing to retain all of this information? I try to do challenges here and there but it would be insane to regularly go through all of my notes. And the information being added to my memory is only growing. Does anyone have a way of going about maintaining information they’ve learned? I mean my memory isn’t bad but it’s not photographic either.

---

<div class="post-metadata">

**Author:** ![zenshyam](https://avatars.discourse-cdn.com/v4/letter/z/96bed5/32.png) [@zenshyam](https://forum.freecodecamp.org/u/zenshyam)\
**Post date:** [April 10, 2019, 3:22am UTC](https://forum.freecodecamp.org/t/fear-of-forgetting/270387/2 "2019-04-10T03:22:07Z")

</div>

Hello…This is normal to think that we are forgetting the things that we have learnt in past…and it happens with everyone…what I think is that you should make some projects with it…and then you will feel a lot better…This is what I was suggested by other people…and so am I…Good luck for your journey…

---

<div class="post-metadata">

**Author:** ![bradtaniguchi](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/bradtaniguchi/32/110427_2.png) [@bradtaniguchi](https://forum.freecodecamp.org/u/bradtaniguchi)\
**Post date:** [April 10, 2019, 4:49am UTC](https://forum.freecodecamp.org/t/fear-of-forgetting/270387/3 "2019-04-10T04:49:53Z")

</div>

I have a terrible memory. I don’t remember most basic syntax, but I have a number of “hacks” to help me “remember”. The easiest and simplest trick is to just plainly **don’t** try to remember full syntaxes, you want to remember **key concepts** , this way you can **search for the answer later** , either in documentation or other means.

You obviously can’t do everything like this, there are some things you will eventually get used to and the best way to get used to it **is to use it often**. For example, being able to “remove” an item from an array is a common thing that you will probably need todo. There are a number of ways todo this, but odds are you will do this so often you will remember the syntax, or most of it at least.

Other tricks are **using better editors that provide better omni-completion** reading the documentation for specific syntax’s instead of just remembering everything. I personally use [typescript](https://www.typescriptlang.org) in most of my projects to get omni-completion, and better references thru strong-typing. I don’t have to remember most syntax, since its baked into the language automatically.

Just keep working and using what you need in real-world use cases by building things. You can “train” all you want, but the best way to remember is to **do**.

Goodluck and keep building 😃

---

<div class="post-metadata">

**Author:** ![Joke](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/joke/32/109848_2.png) [@Joke](https://forum.freecodecamp.org/u/Joke)\
**Post date:** [April 10, 2019, 5:16am UTC](https://forum.freecodecamp.org/t/fear-of-forgetting/270387/4 "2019-04-10T05:16:07Z")

</div>

I know what you mean. I kept forgetting what I had learned about one subject when I studied another subject. And for me it worked better to keep doing both, but with the focus on the new subject.

Why don’t you take another javascript course elsewhere, just for half an hour a day? On YouTube maybe? That’ll help you to remember what you’ve learned.

And you could check out this free course at Coursera:

> **[Learning How to Learn: Powerful mental tools to help you master tough subjects...](https://www.coursera.org/learn/learning-how-to-learn)**
>
> Learn Learning How to Learn: Powerful mental tools to help you master tough subjects from McMaster University, University of California San Diego. This course gives you easy access to the invaluable learning techniques used by experts in art, ...

It’s written for people like you and me and explains how to learn in online courses so that you do remember what you’ve learned.

---

<div class="post-metadata">

**Author:** ![carquet](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/carquet/32/24902_2.png) [@carquet](https://forum.freecodecamp.org/u/carquet)\
**Post date:** [April 10, 2019, 7:44am UTC](https://forum.freecodecamp.org/t/fear-of-forgetting/270387/5 "2019-04-10T07:44:15Z")

</div>

Oh! I’ve done this course too. with Barbara Oakley!  
It’s an amazing course, I highly recommend it!

---

<div class="post-metadata">

**Author:** ![habit456](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/habit456/32/114005_2.png) [@habit456](https://forum.freecodecamp.org/u/habit456)\
**Post date:** [April 10, 2019, 9:14am UTC](https://forum.freecodecamp.org/t/fear-of-forgetting/270387/6 "2019-04-10T09:14:36Z")

</div>

Thank you. I believe in doing more than studying too. I’ve never heard of typescript so I wanna check it out!

---

<div class="post-metadata">

**Author:** ![habit456](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/habit456/32/114005_2.png) [@habit456](https://forum.freecodecamp.org/u/habit456)\
**Post date:** [April 10, 2019, 9:15am UTC](https://forum.freecodecamp.org/t/fear-of-forgetting/270387/7 "2019-04-10T09:15:33Z")

</div>

I’ve seen this course recommended before so it must be pretty good. Thank you for the recommendation and I’ll go through it. Going through a javascript course is a good idea too. I really want to be more sharp on javascript than anything else.

---

<div class="post-metadata">

**Author:** ![Joke](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/joke/32/109848_2.png) [@Joke](https://forum.freecodecamp.org/u/Joke)\
**Post date:** [April 10, 2019, 9:20am UTC](https://forum.freecodecamp.org/t/fear-of-forgetting/270387/8 "2019-04-10T09:20:46Z")

</div>

@habit456

If javascript is your passion then go for it!

There is lots of work in it. Make sure you know the basics of html/css. You don’t have to know it all.

Check this out:

> **[The Great Divide | CSS-Tricks](https://css-tricks.com/the-great-divide/)**
>
> Let’s say there is a divide happening in front-end development. I feel it, but it's not just in my bones. Based on an awful lot of written developer

---

<div class="post-metadata">

**Author:** ![habit456](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/habit456/32/114005_2.png) [@habit456](https://forum.freecodecamp.org/u/habit456)\
**Post date:** [April 10, 2019, 9:31am UTC](https://forum.freecodecamp.org/t/fear-of-forgetting/270387/9 "2019-04-10T09:31:05Z")

</div>

That article is _exactly_ what I’ve been feeling. Thank you for sharing. That clears a lot of things up that I haven’t been able to put into words.

---

<div class="post-metadata">

**Author:** ![ILM](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/ilm/32/363239_2.png) [@ILM](https://forum.freecodecamp.org/u/ILM)\
**Post date:** [April 10, 2019, 10:11am UTC](https://forum.freecodecamp.org/t/fear-of-forgetting/270387/10 "2019-04-10T10:11:49Z")

</div>

You can practice JavaScript at for example [codewars.com](http://codewars.com) , or other websites where you can practice algorithms

---

<div class="post-metadata">

**Author:** ![saito200](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/saito200/32/101287_2.png) [@saito200](https://forum.freecodecamp.org/u/saito200)\
**Post date:** [April 13, 2019, 11:51am UTC](https://forum.freecodecamp.org/t/fear-of-forgetting/270387/11 "2019-04-13T11:51:47Z")

</div>

Try anki.

I made anki cards of everything that seemed worth remembering during studying, and now I can pretty much recall anything or at least know what they talk about when I see it.

I try to make anki a daily practice

It works (I could land a job thanks to it)

---

<div class="post-metadata">

**Author:** ![habit456](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/habit456/32/114005_2.png) [@habit456](https://forum.freecodecamp.org/u/habit456)\
**Post date:** [April 14, 2019, 3:55am UTC](https://forum.freecodecamp.org/t/fear-of-forgetting/270387/12 "2019-04-14T03:55:38Z")

</div>

I used anki when learning spanish. It did cross my mind to do that… I think I’ll try it out

---

<div class="post-metadata">

**Author:** ![saito200](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/saito200/32/101287_2.png) [@saito200](https://forum.freecodecamp.org/u/saito200)\
**Post date:** [April 14, 2019, 10:11am UTC](https://forum.freecodecamp.org/t/fear-of-forgetting/270387/13 "2019-04-14T10:11:19Z")

</div>

yep take a look.

It will not hurt to read this beforehand: [http://www.jackkinsella.ie/articles/janki-method-refined](http://www.jackkinsella.ie/articles/janki-method-refined)

Also, you may take a look at my anki deck if you want, although I really recommend you create your own: [https://ankiweb.net/shared/info/299314723](https://ankiweb.net/shared/info/299314723)

---

<div class="post-metadata">

**Author:** ![clanmaster](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/clanmaster/32/111859_2.png) [@clanmaster](https://forum.freecodecamp.org/u/clanmaster)\
**Post date:** [April 15, 2019, 10:18am UTC](https://forum.freecodecamp.org/t/fear-of-forgetting/270387/14 "2019-04-15T10:18:56Z")

</div>

Hi and greetings! I to have that concern about forgetting my knowledge of JS but I use an app called Sololearn (Android/iOS). It’s an app that is made for coders in mind. It provides reinforcement of key concepts of JS along with other programming languages. One of the best features is that it allows you to compete with other fellow coders in real time while on the go. Weather your commuting or waiting online to see a blockbuster movie. I highly recommend it.

Keep on coding and enjoy!

---

<div class="post-metadata">

**Author:** ![Diego\_Perez](https://avatars.discourse-cdn.com/v4/letter/d/f07891/32.png) [@Diego\_Perez](https://forum.freecodecamp.org/u/Diego_Perez)\
**Post date:** [April 16, 2019, 7:10pm UTC](https://forum.freecodecamp.org/t/fear-of-forgetting/270387/15 "2019-04-16T19:10:14Z")

</div>

> the more I have this **nagging feeling** that everything I learned in javascript isn’t being put to use and **I’m slowly forgetting it**. I felt really sharp with javascript after being put through all of the challenges and completing them. And **I’m afraid of that sharpness going away**. What should I be doing to retain all of this information? I try to do challenges here and there but **it would be insane to regularly go through all of my notes**. And the information being added to my memory is only growing. Does anyone have a way of going about **maintaining information they’ve learned?** I mean **my memory isn’t bad but it’s not photographic either**.

I’ve felt the same way, and I think that try to remember everything is a source of unnecessary stress ( at least for me).

So **I gave up** on trying to remember, now I focus on the workflow.

My idea is simple, and easy to implement, I think that an example can be good to explain how works:

Let’s think about “best practices”. The most common “best practice” recommended is add a comment to a function. I find a function signature[0] is enough, but you also can add other things:

- function description (1)

- parameter name and description (2)

- what the function returns (3)

- examples (2)

```js
    /**
     * @description Function description
     * @param {Type} name - Parameter description 
     * @returns {Type} - Return description 
     *
     * @example   
     *
     * functionName(input) 
     * // => output 
     *
     *
     * functionName(input) 
     * // => output 
     *
     */

```

And then you can, edit each part of the snippet. But, the thing is, editing a code snippet is an “static” process.

When you edit the snippet, you (have to) think:

- I will start with the function description. ( and then select the line and edit it)
- now I will write the parameter type. (and then select the line and edit it)
- now I will write the example, I will skip the return type … and so on.

You can see, the tool helped to avoid typing, but it doesn’t help with the editing part or the order of the steps (you need to decide the order).

The above is important because, we don’t have an infinite amount of energy and with every decision we expend energy. Editing text is a long series of decisions that had nothing to do with the problem that you are trying to solve (in this case, add a function signature).

A different approach is: Use a tool that keeps track of the fields and boilerplate, and concentrate in solving the problem in an interactive way.

I use Yasnippet[1] and Emacs, I added the “#condition: (string= (car (org-babel-get-src-block-info)) “js”)” part because I write literate documents[2] and that way I don’t have to worry about expand a snippet outside the source (code) block (I wrote it myself, I am currently learning common lisp, so, probably there is a better way to do it).

```auto
    # -*- mode: snippet -*-
    # name: sign
    # key: sign
    #condition: (string= (car (org-babel-get-src-block-info)) "js")
    # --
    /**
     * @description ${1:Function description What the function computes.}
     * @param {${2:$$(yas-choose-value '("Type" "array" "string" "number" "Object" "callback" "boolean" ))}} ${3:name} - ${4:Parameter description}
     * @returns {${5:Type}} - ${6:Return description}
     *
     * @example   
     *
     * ${7:functionName}(${8:input}) 
     * // => ${9:output} 
     *
     *
     * ${7:functionName}(${10:input}) 
     * // => ${11:output}
     *
     */

```

The code above is a “workflow”, every `${n:}` is a step in the workflow.

## Demo

### URL

[https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-algorithm-scripting/convert-celsius-to-fahrenheit/](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-algorithm-scripting/convert-celsius-to-fahrenheit/)

### Description

> The algorithm to convert from Celsius to Fahrenheit is the temperature in Celsius times 9/5, plus 32.
> 
> You are given a variable celsius representing a temperature in Celsius. Use the variable fahrenheit already defined and assign it the Fahrenheit temperature equivalent to the given Celsius temperature. Use the algorithm mentioned above to help convert the Celsius temperature to Fahrenheit.

### Function boilerplate

```auto
    function convertToF(celsius) {
      let fahrenheit;
      return fahrenheit;
    }

```

### Examples

> convertToF(0) should return a number  
> convertToF(-30) should return a value of -22  
> convertToF(-10) should return a value of 14  
> convertToF(0) should return a value of 32  
> convertToF(20) should return a value of 68  
> convertToF(30) should return a value of 86

### Workflow demo

![img](https://res.cloudinary.com/dibkfoic9/image/upload/v1555440533/emacs/yasnippet_workflow.gif)

## What is the difference?

If you see the above gif, I didn’t have to edit anything or decide about the order (with `Tab` I can jump to the next field) . I only have to think about what information I will enter in each field.

And I think that is important, there is no “context switching” between the text edition part and the “what I am describing” part. Adding interactivity to the code snippet has the effect of reducing the overhead.

This is a simple example, but you can create a “workflow” for everything. For example a good workflow for recursion is to have a “base case field” and a “recursive case field” , that way you always are thinking about the problem.

Cheers and happy coding 🙂

* * *

Notes:

- It was not captured by the gif (I have some problems with the program that I use), but I can select from a menu the type of the parameter. Something like this:

[https://company-mode.github.io/images/company-elisp.png](https://company-mode.github.io/images/company-elisp.png)

- I think that you can use textmate for this type of things. I never tried, but the Yasnippet documentation says:  
“The snippet syntax is inspired from TextMate’s syntax”

> **[GitHub - textmate/textmate: TextMate is a graphical text editor for macOS...](https://github.com/textmate/textmate)**
>
> TextMate is a graphical text editor for macOS 10.12 or later

* * *

Footnotes:

[0]  
“A function signature is a comment that tells the readers of your design how many inputs your function consumes, from which classes they are drawn, and what kind of data it produces.” [How to Design Programs, Second Edition](http://www.htdp.org/2018-01-06/Book/index.html)

[1] [https://www.emacswiki.org/emacs/Yasnippet](https://www.emacswiki.org/emacs/Yasnippet)

[2] [Literate programming - Wikipedia](https://en.wikipedia.org/wiki/Literate_programming)

---

<div class="post-metadata">

**Author:** ![Ololade\_Olawale](https://avatars.discourse-cdn.com/v4/letter/o/67e7ee/32.png) [@Ololade\_Olawale](https://forum.freecodecamp.org/u/Ololade_Olawale)\
**Post date:** [April 16, 2019, 10:57pm UTC](https://forum.freecodecamp.org/t/fear-of-forgetting/270387/16 "2019-04-16T22:57:35Z")

</div>

I feel you on this. Finished the HTML/CSS course and I am delaying starting the project to master the skills I have learned. I would suggest completing the projects and maybe starting your own projects. Repetition and project-based work help with remembering the material.

---

<div class="post-metadata">

**Author:** ![ILM](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/ilm/32/363239_2.png) [@ILM](https://forum.freecodecamp.org/u/ILM)\
**Post date:** [January 18, 2021, 7:12am UTC](https://forum.freecodecamp.org/t/fear-of-forgetting/270387/17 "2021-01-18T07:12:13Z")

</div>

Closed on January 18, 2021, 7:12am UTC


