I’m currently going through the Intro to Rails workshop, and while I don’t have any problems understanding the content, I find myself constantly forgetting information from past lessons with no easy way to search back to the info without scrubbing through a whole video.
How do you guys best retain information? Do you just follow along and remember? Or do you take notes, or any other techniques?
I personally learn best by following along. Even if you aren’t building the same thing, it’s nice to follow the techniques. That course was excellent and I would just build along with Matt if I were you. Doing the tasks a few times will solidify it for you.
As first I always try to understand the solution. If I do not understand it then I don’t move forward until I do. This is especially important in tutorials…
Then I take notes. Almost for everything. I’ve build my own app to do this. Check this short video to get an overview how it works.
And also I am trying to memorize important facts. About language, tools, frameworks… For this I use anki. Check this great article to see how it works and how to use it.
And then just practice everything a lot and you will memorize things naturally ;).
I went through the Ruby on Rails tutorial twice and didn’t learn anything.
You have to know yourself. Just following along and typing what it says looks like learning, but I learned nothing. You need to figure out what works for you. Here’s some things that worked for me, and hopefully they will help you or give you ideas.
Repetition. Create the same app many times, especially without going through a tutorial. If you have a bunch of stories, you can build out the features without a script. When you have a question (“How do I set up this association?”), then you can go figure that out. I guess it is the process of figuring things out that makes me learn.
Always do TDD/BDD. Then you know what is going on. It’s a much faster way to learn what is happening. Without tests, we think we know what is happening, but we really don’t. Also, tests teach you in tiny steps.
Information in bite-sized pieces. I think the problem for me with long tutorials is that there is a ton of information with no repetition. Bite-sized pieces like Prime Bytes, blog posts, Railscast, Ruby Tapas, DAS, and Codewars kata are much easier to digest. Also, it is easy to go back and find the information when you need it.
Hire someone to look at your code and answer your questions. I talked to the tutor 3 times a week for 30 min to an hour. That’s all it took. It saved me endless frustration because he could answer a question in 5 minutes that would take me all day to figure out.
Develop your memory. It is very helpful to read something and then be able to remember it a week later when you need it. I never thought a good memory was very useful, but learning Rails showed me that it is very useful.
I think you have to be very active in assessing your knowledge, and admitting what you don’t know. I find it easy to follow along with a tutorial and say to myself ‘Oh that makes sense!’. However, if I’m trying to solve the same problem on my own, the thought process seems foggier and I second guess myself.
One process I use is if I hit a road block in my understanding, I’ll write the issue down no matter how big or small the issue is. It can even be a simple syntax issue. But I’ll write down in a .txt what the problem is, and then I’ll dive into SO, Google, Railscasts, this forum, etc. and try to find the answer (if it is a concrete issue) or find different opinions. I’ll copy and paste the links to the pages that helped me find the answer.
The last and probably most important step is to articulate the answer to the original problem in your own words. I think writing down your own rational is super important because you must actually understand it. You can’t think about the problem, make leaps in logic and give yourself the satisfaction that you actually grasp the concept.
Writing it down also is a good way to go over the problems you’ve had and how you solved them. It also provides a nice journal of your progress.
I’m actually thinking about making an Rails app to use for just this work flow, because doing it in a .txt file can get a bit hairy.