DEV Community

Memorization and learning to code

Carlos Diaz on August 30, 2023

Memorization equals learning. For many of us, it’s how our understanding was assessed. We were praised for memorizing the alphabet, numbers, the f...
Collapse
 
zupi profile image
Neven • Edited

Excellent text. I've been learning on The Odin Project for a year now, but even today, I sometimes forget that the goal isn't to memorize everything, but to know that something exists/is possible, and then I Google it and find the syntax on MDN Web Docs to solve the problem. It's the same for everyone on any platform, no matter how good it is – we all face the same challenges.

Collapse
 
tjohnson009 profile image
Tim Johnson

Extremely encouraging and well said. I’m sure there are many like me who hear the familiar knock on the doors of our minds by that dark shadow called Imposter Syndrome whenever we forget something. This is a helpful reminder, perhaps an epiphany for some.

Collapse
 
madsklitgaard profile image
Mads Klitgaard

Thank you SO MUCH for this post. I really needed it. Having just started out trying to learn coding - especially JS, React etc. - after being diagnosed with ADD, which in itself impairs the ability to "return" things from memory so even though you know it, you just can't recall it - this write up really gave me some hope that I will be able to make it through my learning. So thank you.

Collapse
 
arnebab profile image
Arne Babenhauserheide

I realized how important that external memory is to me when I tried to write Python code without Google. It hurt.

On the other hand I learned something wonderful some of the heroic programmers of old had: they had texinfo documentation. Full-text search in the actual docs of the programming language and libraries you're using, all well-structured, so you can search for functions, check out the API listing, and so forth.

Try programming in GNU Guile for once and run info guile reference in a shell. The coders of old could do without Google and Stackoverflow (though SO is undoubtedly awesome and the prime method to quickly get an answer) because they had manuals that were actually useful.

That’s like mdn, but local. And faster — those tiny delays on every action actually matter during quick access to your external memory.

Though the manuals often were on paper, heavily diminishing their value (do you remember how Emacs calls itself self-documenting? That used to be a power-feature). And lacking in their own ways … (the Guile reference lacks in examples).

Now if Google fails us, all we can hope for is usually good API documentation that if we’re lucky gives us enough hints in the IDE that we can discover what we need during coding.

Or hope that we have tldr installed … (which is a tool that likely would have had the coders of old drooling in awe, even though the one I have here is too slow for comfort; need to find another implementation).

Collapse
 
lukaskrimphove profile image
Lukas Krimphove

A good engineer does not know the answer to every question or the solution to every problem, but he knows where to find it.

Collapse
 
bklau2006 profile image
BK Lau

Thanks for sharing Carlos.
I agreed with this statement:
"We can’t memorize everything. But we can become aware of a ton. Equipping ourselves with awareness of what to research is good enough for getting through learning"
Essentially have a cursory breadth and awareness is useful to know the thing exist and then research deeper when you needed it. With AI generative tooling like ChatGPT that's gold.

On the other hand, I'm not a fan of memorization for interviews.
It's liken to a puffer fish blowing up spiky body to look competent.
"Having some stuff memorized by the time you get to interviews is useful. But by the time you get there you'll be surprised by how much has stuck."

In fact, I'll argue that most people suffered from LRU(Least Recently Used) memorization failures at interviewing rounds.
You get lucky if the most recently memorized algorithms and coding problems are being asked. Otherwise, it probably the case that you can't recall and looking bad on the spot.

Collapse
 
a_a_hajji profile image
Ahmed abdirahman • Edited

I remember trying to memorize programming syntax taking lots of note , passively reading or looking at code samples hoping to memorize or remember them. But then I realised later something that was whatever you want to learn just understand the concept and big picture, even If you stuck at understand a concept Move on keep on learning somewhere and later years it will click onto your mind. That concepts you don't understand now could relate other concepts in the line later on your learning process. Keep learning don't hold your mind on tiny concepts try understand the big picture and move on.
Right now I'm talking there’s projects I've built with my own and projects in course I don't know what is going under the hood like some (functions,methods, a Concept or syntax)but the pig picture and the why. I almost revisit them. Even some concept come on the way with different projects. 🧩⏰

Collapse
 
ahmed_muhammedgaladima_5 profile image
Ahmed Muhammed Galadima

this is perfect, well said unfortunately though we may not all be fortunate to meet people like john in our life but as a young aspiring developer one of my greatest fears and i guess what keeps one in tutorial hell is the fear of never knowing enough but if the big Engineers sometimes have to google themselves that sort of gives me a sense of relief and i hope one day i too can look back and smile at all this, thank you for the amazing article.

  • la lumiere developer.
Collapse
 
olivia73code profile image
Olivia73-code

This was great to read, thank you. I am at the very beginning stages of learning (HTML) and I have often wondered how I will remember everything. However, I am good at making notes and have been able to understand the documentation I have read when a point needs further clarification. Thank you for sharing!

Collapse
 
ben profile image
Ben Halpern

Great post

Collapse
 
squidbe profile image
squidbe

I couldn’t think of a thing to say. I apologized and said I forgot everything about [localStorage].... The fact that he didn’t flip out was shocking and that stuck with me.

Really? I'd be shocked if someone did flip out about that 😀. Seriously, though, I always hope that people do what they can to ensure that kind of behavior is not normalized. Some engineers feel that their passion gives them permission to berate their colleagues (I've seen it first-hand). It's important to teach those people that they if they want their professional opinion to be respected, they need to express that opinion professionally.

Collapse
 
mjoycemilburn profile image
MartinJ

Spot on. I think the important thing is to acquire a general impression of the shape of things and the capabilities of the tools you use. I use templates and searchable notes to supply the details. When these fail, I Google for assistance - w3schools and mozilla are my standard "gotos".

Another thought is that I strongly believe that if you focus too much on memorising detail you lose sight of the "big picture". Boy, do I struggle with this right now. Was there ever a time when IT development technologies offered so many different options?

Collapse
 
tardisgallifrey profile image
Dave

Well said. I am older than most. Memory is a very short lived thing for some stuff. If I work with a particular language intensely and over a period of weeks, much of the basic stuff is easy to do. But, if I stop and switch to another, my facility with the other language decreases over time.
This is especially true with me because I am drawn to the languages with C-like structure. Yet, I find that some do a "for" loop differently. A few don't do it at all. I'm often scratching my head and heading to Google for the answer. Not a prob. Now, back when we only had books...

Collapse
 
debbie1505 profile image
debbie1505

This is so good and is really going to help me learn better going forward. I've always have shame with forgetting syntax, and I've always thought I should remember syntax for me to consider myself a programmer. But this article took that shame away and validate that it is okay to forget syntax and it is okay to google stuff. And a statement that stood out to me is "Knowing that it’s possible to remove the last element of an array is just as good as having the syntax of JavaScript’s pop method memorized.". And now I'm going to focus on being aware of ways to solve a problem instead of remembering each syntax, I could just google it.

Collapse
 
princemuel profile image
Prince Muel

💯 me. Anytime I learn something new, or encounter something useful, I ask myself... "in what situation would I need this?". Once, I have my answer, I'm free to make a mental note for the use case then forget about it until run into a situation where I need it. This has never failed me...yet 😁

Collapse
 
frontendfungi profile image
FrontendFungi

This is very encouraging. I let out a big sigh of relief after reading this article. If simply remembering that something exists is good enough most of the time, then I will try not to stress about memorizing. Thanks, Carlos! ⚡

Collapse
 
adriand profile image
Adrian Dobre

One of the best MOOCs I followed was Barbara Oakley's Learning how to Learn. In a Talk at Google, she summarized her research and mentioned memorization as a positive thing. Here's the video at 45:15 when she explains it https://youtu.be/vd2dtkMINIw?feature=shared&t=2714

I'm trying to figure out now the best way to supplement my Odin Project learning with tests that are at the same skill level.

Collapse
 
sergionr profile image
Sergio N

Good lord! Created the dev.to just to share my sincerest gratefulness

In my head i kept wondering if i was failing since i keep not-remembering some methods and having to look back at documentation

thank you!

Collapse
 
as_wittwer profile image
alex

I graduated college with a b.a. in mathematics and statistics back in 2020; I think the last time I did a partial differential equation was sometime in 2017.

fast forward to today, and i panicked because I couldn't tell you how to do a differential equation, what df/dx of sin(x) was, or even what l'hopital's rule did. But that didn't mean I didn't know how to do it.

See, when you learn things, you dont need to memorize it. You just have to do it. You don't have to memorize how to push pedals on a bike; if its been a few years you can still get on a bike and ride it.

The key is getting back on the bike.

See, I didn't know how to do those things, but I was able to figure them all out within minutes after google searching or reading something about it. Thats how memory works, and how developing skills works, versus rote memorization of formulas, algorithms, etc. If you understand the how and the why of something, you don't really need to know the exact details.

Take for example, your favorite book or movie. Do you remember every line of The Princess Bride? No, but you remember that one can never beat a sicilian in a game of chance when life is on the line. So you work from there. You remember the poison, but not the type. Etc etc. It comes back, and you have all the structures for relearning it there.

I guarantee you that nobody knows it all. If they do, they're lying. You just need to do it. You just need to get back on the bike.

Collapse
 
cyberlex profile image
Alexis J Cuevas

Thank you, Carlos, for your reminder and words of encouragement. I am still actively working on the Odin Fundamentals section. After reading your message, I will be more attentive and mindful during my learning journey

Collapse
 
tgod profile image
ThankGod Munachimso Agu

thank you so much bro......... i used to think that as a full fledged software engineer you gats to memorize everything but now, the only is just to know the concept of that.

Collapse
 
charles_shorrock profile image
Charles Shorrock

Thanks for sharing this. It reminds of me a brilliant physics teacher I had in high school. He told us that a formula reference sheet would be provided with the final exam, something that seemed sacreligious in our hallowed halls of memorization.

When someone asked why, he replied that we shouldn't waste time filling up our brains with a bunch of equations that, in real life, could easily be looked up. Instead he said we should focus on understanding how and when to use the concepts they represented.

I can't speak for anyone else in the class, but for me that idea was a big awakening and changed how I've approached learning to this very day.

Collapse
 
rebecca_gaut_4eb04369831f profile image
Rebecca Gaut

Extremely learning well said. I thought that it was enough to memorize and use memory techniques, but I love that you said we don't have to remember everything. The fact that you can Goole it or know what to Google is enough is amazing.

Collapse
 
crespire profile image
crespire

Carlos, your wisdom shines through no matter the medium!

Collapse
 
ojimcy profile image
Ademu Emmanuel

This is supper encouraging. I used to think I'm dumb.
Thanks for sharing. Long love chat gpt 😂

Collapse
 
9galaxy profile image
9Galaxy

Fantastic post. I can literally find myself with all you've written in this post.
Thank you a lot for sharing this post for the current and new developers.

Collapse
 
icandoallthingthroughchrist profile image
ICanDoAllThingThroughChrist

This is exactly how I feel👍. Well written

Collapse
 
iromata92 profile image
Yagmus Inyagham

Thank you...this write-up has really encouraged me.

Collapse
 
blehnk profile image
Ashish Nath

Thanks for helping me calm down :)

Collapse
 
thug profile image
TheUtdFlex

inspiring stuff keep posted!!

Collapse
 
kino6052 profile image
Kirill Novik

The most important thing in learning is understanding of concepts. That's why some students like STEM subjects, is because if you understand, you don't need to memorize

Collapse
 
datadragyn profile image
DataDragyn

This is a good thing to remember. Thank you for sharing and letting us know we're not alone in this.

Collapse
 
uvro profile image
Suvraneel _Saha

Loved it Genuinely , I forget a lot of things , the best way i guess for me is to think myself as an Evergreen Student , i keep on learning and making Google my best friend is the way to go .

Collapse
 
thielison profile image
Thielison Alves

Thanks @bycdiaz for the really helpful insights!!

Collapse
 
respect17 profile image
Kudzai Murimi

Well-written, thanks for sharing!

Collapse
 
adriananin_ profile image
Adrian Anin

Great read and encouragement thanks !

Collapse
 
tomquincy profile image
Tom Odey

Thank you for this reminder. It's a relief to know that even the best of us lose a few bytes of data every now and then.

Collapse
 
lbuduen profile image
Leodan A Buduen

What a reassuring text, I've struggled with this my whole dev life, I'm kind of glad I'm not the only one

Collapse
 
vickyd1 profile image
VickyD1

The honesty around here is crazily genuine!
And this makes me feel like "I am normal/nothing is wrong with me after all".
Thanks.

Collapse
 
oothman profile image
Oothman

Was coming to the same conclusion in the short amount of learning I've completed, so it's great to read this from an experienced software developer. Thank you for sharing, Carlos.

Collapse
 
skynter profile image
Hamza

Great post. A true goldmine for all learners ! Keep up the good work.

Collapse
 
mdwasim74 profile image
MOHAMMAD WASIMUDDIN

Hi Carlos
Good share of info....I have recently discovered that regular reading and understanding from documentation is far more better than memorizing....

Collapse
 
idkitti profile image
Kitti • Edited

It helped me a lot.

Collapse
 
donavanc13 profile image
Donavan

This article was great, really insightful. It helped me. Reevaluate my perspective of what learning something new really means