In a former life I learned the rudiments of web design by basically Googling everything whenever I didn’t know how to do something. Although I think my designs were no worse than average and certainly better than many I was rarely using best practices and took too long to abandon bad habits like using tables for structure, etc.
So now that I’m learning how to do things ‘properly’ how important is it to memorize the info from the curriculum? Should I take notes and try to recall all the CSS properties for example? Or is it OK to have FCC curriculum (and maybe W3C) in a tab that I can refer to when I’m doing real dev work?
One reason I ask is that there’s no way simply going through the curriculum is going to stick in my memory unless I make a concerted effort to repeat things many times and take notes. So it seems to me the main value of the curriculum is to visualize what happens when you alter certain settings, not creating dev patterns that will last a lifetime. Which is fine, but what’s more important in the long run - problem-solving or knowledge?
Actively memorizing is a waste of time. You’re far better off with practice, after which you’ll not only remember the things you used most often, you’ll know the context to use them in. For everything else, there’s Google.
You won’t remember everything. Even experienced senior developers have to look up stuff.
What’s important is that you about the bigger concepts and have an idea on how to do things. Method or attribute names can be looked up in documentation
I never focus on memorization, rather I focus on learning by doing. Its hard to memorize things because you probably don’t know what you need until you need it again and again. As such just doing what you want to learn over and over helps the most. Don’t remember how something works in CSS, use it 4-5 times across a number of projects. By the 4th or 5th run you will probably remember it much better than just trying to memorize it for a few hours the first time.
Here’s a few notes on how I work:
- I never write notes, even when learning something new
- I never go “study”, I might read up on some technologies I’d like to use in a side project, and just go out and try to use them when I get a chance.
- I try to use tools that help take some cognitive load off me
- I euse ditors that help with auto-completion like VSCode
- I use languages/linters/tools that help me write code, like typescript rather than trying to remember everything off the top of my head.
- I use tools to keep track of what I need to-do (like github issues as a todo-list/projects/etc)
- I keep my code as clean as possible, so If I forget how it works, the code tells me how it works.
I don’t believe in any quick life hacks that instantly make you better, but I do believe in making concerned decisions on how to improve your workflow. This will help the bottom line more than just trying to improve yourself thru memorization.
An example is using a better editor that provides more information to you, rather than relying on a weaker editor without helpful tools. Using typescript, linters, automated code formatters (like prettier ), and automated tests all help you do less work, this all helps you focus on what is important at the given time.
Finally, nothing replaces practice and experience. If you want to learn X, go try to build and use X. Try 5-10 times. Even if you fail every single time, you get all that experience and knowledge from each failed attempt. You can’t memorize failure, nor can memorizing give you experience.
Practice is much better memorizing.