This was originally posted on my blog, but since my I’ve taken it down (I hadn’t posted anything on it for a while and since it was running Wordpress it was just getting bombarded with bots trying to guess the admin password!) I thought I’d repost here. I’ve updated it slightly too
The tips here helped me learn Ruby and Rails and I’m hoping they’ll help me (and maybe you!) learn Elixir and Phoenix!!
If you have any tips of your own, feel free to add them
1. Learn something you’re interested in!
This one’s easy. We learn best when we have an avid interest in the topic. The more passionate we are about something, the easier it will be picking it up.
2. Choose your resources wisely
Finding a topic is the easy part – finding the best material can be a bit trickier. Here, my best advice is to play the field. Take a look at what’s out there, read book reviews (look for responses that are passionate and infectious), and listen to the advice of people you trust or who are well respected in their field. Also go ahead and try things – just because you bought a book, doesn’t mean you have to read it all. I’ve bought a few that I started and just couldn’t get into. That’s cool, because when you find a book you really like, you appreciate it that much more.
Don’t limit yourself to books either, screencasts or interactive learning sites are excellent ways to combine all the best ways of learning; watching, reading, doing. Similarly, don’t limit your resources either - get material for every aspect of what you want to learn and build a plan of how best to go through them. So for us here, that’s books on Elixir, books on Phoenix, books on OTP, books on Erlang! Want to be an expert? You can be! All that precious knowledge and expertise has been captured for us in books (and courses/screencasts!), and particularly when it comes to books, what are a bargain they are when you think of all the knowledge they contain.
3. Pick a starting point that’s right for you
Don’t feel like you need to speed through to the final or start too far ahead – don’t be afraid to start from the basics - it may actually end up saving you time in the long run.
4. Get a Kindle
Forget your iPad or computer screen – they are LCDs which not only give you retina burn because of the ridiculous brightness, but by also ‘refreshing’/flickering many times a second, contribute towards eye fatigue. The screen on the Kindle does not flicker. I read all of my Ruby books on my Kindle, and the only drawback I found was when you’re view large code blocks or when you need to click through to the full code for something (on the larger Kindles this is less of an issue, see: What is your preferred device for reading programming books?)
Kindle’s also allow you to highlight text and if you buy an e-book from Amazon directly, you can view ‘popular highlights’ – which is a great way to see what your peers think is important or worth noting.
5. Read last thing at night
Can you remember what you did first thing yesterday morning? Nope neither can I! I bet you can remember what you did last night though. And there’s a good reason for that – because of the way your brain works. It starts indexing in descending order, so what you did last, gets indexed/stored first. Try it. Read something in the morning, and something in the night – the following day see which you remembered best. (Edit: I can’t find the link to support this now, but as I said, try it! Try reading at different times of day to see which you remember better!)
Hear that? Another good reason to read at night is for the peace and quiet. There’s nothing worse than distractions, whether it’s traffic, kids playing, or the general ambiance of people hovering around – and although you might not notice it - your subconscious will. I find I concentrate much better at night, when the pets are asleep, phones are not ringing and the rest of the neighboured is tucked in for the night!
6. Don’t get ahead of yourself
Similar to Tip #3 (pick a starting point that’s right for you!) don’t be afraid to take a step back if you begin to feel lost. If you’re reading something that you just don’t seem to get, restart the chapter and try again. I have had to read a chapter 2 or 3 times before it actually sunk in in the past. As a general rule, do no proceed to the next chapter until you have understood the previous one.
If that doesn’t help, then put the book away get a book that tackles the topic a step down from what you were reading. If you ‘get’ this new book and then go back to the other book and still don’t get it, do the same again – put it down and find another book that covers something simpler. You won’t be wasting your time, if anything it may save you time in the long run. Going over a topic will also help ‘repeat and reinforce’ what you’ve been learning.
If you just can’t get into the book that you kept putting down, maybe it wasn’t a good fit for you – find an alternative that covers the same material, waste no more time on it or come back to it later as a bonus.
7. Can’t concentrate? Close your eyes and breathe…
Sometimes you’ll have things buzzing around your head. You might be stressed out about something, or something could have happened that is on your mind. Sometimes it will also take a while for your eyes to adjust from a flickering LCD to the tranquillity of e-ink. When you find your mind running away or when you can’t seem to concentrate, close your eyes and slowly count to 20 while thinking of nothing other than the darkness you see and while breathing in through your mouth and exhaling via your nose. If something comes into your mind, push it out of your mind and start from 0 again, making a conscious effort to think about nothing. Repeat until you can count to 20 three times in a row. It works! When you get back to your book you’ll notice a huge difference, if will ‘feel’ different. It certainly does for me!
Make sure you are drinking enough water as well as dehydration can also impact concentration, see below for more.
8. Eat well
Your body is a complex machine which needs fuel, energy, and important nutrients to be kept in optimal working order. Don’t mess up your body by eating ‘garbage/junk’, doing mind-numbing drugs or wearing poisons on your skin (you shouldn’t really put anything on your skin that you wouldn’t put in your mouth).
I personally advocate a clean, natural, and species appropriate diet/lifestyle, and to me that means sticking to foods that our ancestors would have eaten. No processed nonsense, the wrong fats, sweets, breads, pizza, etc. Care about how your foods are produced too. Do you think growth hormones, steroids, routine antibiotics, in-breeding, poor quality and non-species appropriate feed along with poor housing conditions is going to rear good healthy stock? Think again
Drink plenty of natural mineral water (not tap) too, dehydration can impact your performance by up to 40%. Also consider eating food that is known to help cognitive function - such as salmon (Omega 3), certain nuts, as well as herbals like Korean Red Ginseng (also good for prostate health).
People go on about bad education for the poor, but you know what? Education is, imo, only half the story – diet and lifestyle will probably have more of a profound effect on your learning ability than whether you go to a good school or not.
9. Sleep well
Your body needs quality sleep, and in terms of learning, sleep is when your body indexes everything you’ve done/learned that day. If the quality of your sleep is poor, your brain won’t have been able to properly store/index everything… so all that time you spent reading something could well be wasted.
Luckily for you, eating clean (see above) will help you sleep well too!
10. Make notes and go over things
When I first started learning Ruby I found I was reading and understanding things but not really remembering them - even the gist of them. So I started to make notes. Then, before a reading session, I would read my notes from the beginning before continuing reading the book. It’s a bit like a Matrix-y way to read a book 100 times over… but because you are just reading notes it doesn’t feel like you are reading the entire book 100 times over!
But what do you write in your notes? Basically anything you think is worth remembering… although you’re not really doing it to remember it, but rather, not easily forget it. What we want to do is remember what is possible - not the exact or fine details (they can be looked up later) and I feel this technique is really good for that.
I also went through a phase of using the Kindle’s highlighting feature, but I found that because books keep getting updated your notes are then split over various versions of the books. Plus it isn’t as easy to go through lots of Kindle notes/highlights than it is through a physical note book. So I have reverted to making pen & paper notes. Believe it or not, when I was learning Rails I made a second version of notes, a super condensed version - which I would read on the loo or whenever I got 5 minutes
Sometimes getting two (or more) books that are aimed at the same level saves you having to write notes – repeating is reinforcing. Repeating is…?
Bonus tip. Enjoy yourself!
Whatever you do, when it starts to get boring or feels like a chore – stop. Keep things interesting, fun and pace yourself so you feel like you’re achieving stuff. It’s one of the reasons why I tend to get at least two books that deal with the same level of whatever it is I am learning – when you read the other book you often catch yourself thinking ‘I know that!’ and it’s moments like that that give you a buzz and remind you that you are actually learning something. Little achievements like that give you the incentive to carry on.
If you need even more of an incentive, jump in to one of our Book Club threads!