I started a software engineering bootcamp about 2 months ago, and while I wasn't expecting it to be easy, I don't think I fully realized what parts would be the most challenging. One of those for me was re-learning how to learn. I had been out of school for a couple years before beginning the program so when I went back into a learning environment, I wasn't really sure what best practice would be- especially with a topic I had no previous experience in. This are some tips that I found helpful while re-navigating how to learn.
There are three main learning methods that people learn by: watching, listening, and doing it themselves. There may be one that people gravitate more towards, however it seems the best practice is to do a combination of the three. Watching youtube videos and tutorials was something that helped me through, and then creating "playgrounds" in my terminal or messing around in REPL to try to replicate what I had just seen or read. With coding in particular, the most beneficial learning method I found was to do it myself. That way if I get stuck, you learn how to get good at googling, how to ask the right questions, and how to find the answers.
Practice! Practice! Practice! Continuous practice helps strengthen our memory and can get us used to thinking in specific ways, rather than just memorizing code. By practicing, we are constantly learning new material as we go through, making it easier each time.
Testing yourself is a great way to see what you have learned and what you still need to develop. One of the hardest things with learning, is feeling like you're not doing it well. But that's ok- because it's just learning! We need to put away the thoughts that we have to be perfect or that we can't make mistakes, because we're going to (a lot), and those mistakes are what's going to help us out in the long run because we can target our skillset.
The reason why practice is so good is because it is repetition and get's our brains used to looking at similar information. Writing things out by hand is known to also have a longer-lasting effect in our memory. It sounds weird for coding to grab a pen and paper, but something I found helpful was to write out flashcards when I was first starting off with the new terminology and any specific syntax that I had trouble with.
When learning something new, although maybe anti-intuitive, it's very helpful to then try teaching that concept to another person. If you have classmates, try to answer their questions when you can. Or challenge yourself to see if you could explain some concepts to a younger child. It will help you solidify any understand you have, and it may help you hone in on what you don't.
Primacy effect is when you better recall information you learned first and recency effect is when you better recall information you learned last. Both are shown to better store information into long term memory than what was learned in the middle. We can incorporate both of these while we study by starting with concepts that are trickier for us, and then ending by reviewing those topics again.
Learning is something that can be practiced and the more opportunities we take to learn the easier it will be because our mind will already be used to that state.
It's okay to make mistakes. That's how you learn. It's important to be kind to yourself, your brain, and your body. Getting a good nights sleep can help improve our memory. Staying hydrated as well. As much as we want to cram a night before, it's not the most productive thing we can do to actually learn and solidify information. And take plenty of breaks!
You're going to dread learning if it's not something you're interested in or you're making the information more boring than it may need to be. Here is an article with some mnemonic devices people have used to help them remember topics in software engineering. Some examples are
'I never remember that . = class and # = id in CSS, so I use ‘say no to drugs’ to remember that ‘hash is not class’.” hill79
“.unshift - makes it bigger. Longer word than .shift
.shift - makes it smaller. Shorter word than .unshift” da02