Are you forgetting how to code and programming concepts?
Tags: productivity, career, beginners, codenewbie
Published: 2020-01-26 15:42:50

*Have you ever felt that a command or a syntax has just vanished from your head?* 
*Have you ever felt that programming concepts you were confident last days just disappeared?*
Then you return again on the book you read weeks ago, or you just start googling and then go to the first pages of documentation. 
 
**Every time you feel like starting from zero.**
![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/5aaccrwsdz2rf8j02u8o.jpg)
You know what?
Your brain is a muscle made of billions of neurons and connections between them.
And as any muscle to grow, you must train it.

This article is based on three facts : 
* Learning happens because of repetition
* Learning involves connecting new information with existing ones to make the connection stronger.
* Your brain mainly remembers information linked with emotion (a big success, your marriage day ...) or repetition (Bicycle,).

###Why can’t you remember?
As I said before, the brain is a muscle. 
In fact, everything you learn impacts the connection between the neurons. 
The weakest they are, the quickest you will forget.
And your brain is an intelligent computer. 
When you don't use a piece of information often, it won't accord too much importance: **You lose it.** 
![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/hrrhz974avlsvz9o1gqz.jpg)
Then, if you want to remember things easily, you must set time for it, practice consistently and regularly challenge yourself.

###Practice regularly
![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/40gtitdzvot2hd4x3dgc.jpeg)

>Repetition is the mother of learning, the father of action, which makes it the architect of accomplishment. - Zig Ziglar 

As teachers, coaches and parents everywhere like to say: *Practice makes perfect.* 
The brain is plastic.
Overtimes, cells grow, make connections with other cells or lose some connections. As we learn something new, cells that send and receive information about the task become more and more efficient. 
It takes less effort for them to signal the next cell about what’s going on. In a sense, the neurons become **wired together**.
Repetition is the key to be pro-efficient in programming. Because it affects paradigms - ideas, concepts, and beliefs.
The point is not to memorize, but rather to impress the new information into your subconscious mind.
Then, you must have a learning routine, and it's not difficult to create one :
* Start small: Allocate 20-30 mins per day to learn programming until it feels normal in your schedule, and then you can add more minutes.
* Have a learning journal: You can write in it what you learned, how to apply it and write what you are going to learn next. Read it before any learning session.
* Take breaks or ask questions: It's normal to not understand something. Don't be upset by that. Rather, ask questions.

###Challenge yourself
![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/6rm8lwa6lznkzt8va52f.jpeg)

Challenges help you fill the gaps in things you probably forgot. Think about the data structures you are not using often in python. Do you even remember their built-in methods?
[Codewars](https://www.codewars.com/),[leetcode](https://leetcode.com/) and [other platforms](https://geekflare.com/coding-challenges-to-sharpen-thinking/) are available if you have 15-30 mins free every day to challenge yourself or learn great tips.
Or better if you have an idea, work on it and improve it every day. 

###Teach or Write

>If you can't explain it simply, you don't understand it well enough. -Albert Einstein

This quote says everything: something you understand well, you can explain it easily because you have found a simple way to understand it. If you have no problem with teaching or writing, use the Feynman method :
* Choose a concept you want to learn about;
* Pretend you are teaching it to a student in grade 6;
* Identify gaps in your explanation;  Go back to the source material, to better understand it;
* Review and simplify.

###Conclusion

Now you have a few ideas about how to better learn, let me tell you something.
>**Concept first, Syntax later.**

Understand that each language or each technology have their own architecture, design patterns, and concepts. MVC in Laravel, asynchronous with Javascript, concurrency with Erlang ... if you understand the concepts, even if you have written a line of code for weeks, you can come back in just a few days with the syntax.
Don't forget that it is also a slow process and it may take time before you feel the changes.

Here are some resources to help you :
* [Learning from the Feynman technique](https://medium.com/taking-note/learning-from-the-feynman-technique-5373014ad230)
* [How to create the PERFECT ROUTINE to learn CODE](http://codedad.co.uk/create-perfect-routine-learn-code/)
* [ How to learn to code easily? ](https://dev.to/kolawole39/how-to-learn-to-code-easily-3p9j)

>A good programmer doesn't memorize. Instead, they know how to research.

*Happy Coding!*🤓