We are always learning something. Be it new language, framework or another lib. And every one of us has its own methods to learn. I have got mine too. Here I’ll write how how I learn and why I do so.

3 years ago…

I started getting into programming, installed Ubuntu on my machine, got my hands dirty with bash, tmux, vim, and every other cool stuff at that moment. Then I got interested in Rails, started reading Pickaxe, Agile Web Development with Rails. But every time I finish book, I couldn’t remember most of it. Then I come across railstutorial.org by Michael Hartl which was great, but even after it I still didn’t feel fully confident.

2 years ago…

I landed a job as iOS developer on local payment system company. I didn’t have any iOS experience before, so I asked them to give me couple of weeks to learn it. (I was 19y old, and I’ve seen only ‘Replace all occurrences of * with $ in string’ tasks, which gave me false confidence). So I started reading iOS Programming: The Big Nerd Ranch Guide and writing code along the way. The only I passed chapter 4 or 5 of book, my team leader sent me first test task, To-do list. I set aside BNR book and dived into Xcode and started writing code with the help of Stack Overflow. Week later I finished the test project and continued reading BNR.

And that’s where magic happened.

Aha!

My to-do app code was really bad. So bad, it’d make eyes of future me bleed. Though, I get some grasp of iOS development and had many questions on it. So I continued reading BNR. And THIS! Every time I find answer to my questions I was like “Oh, that’s how I should have done. Well, I’ll know it.” So I remembered (almost) everything.

Would this happen if I finished book before getting task? Don’t think so. I’d read book from cover to cover, forget most of it, and fallback to Stack Overflow driven development. I’d still code. But by reading book after getting some questions on mind I knew what to focus on, and had hooks to remember them.

What about Rails

I mentioned my attempts to learn Rails. I have read Michael Hartl’s tutorial 3 times to no avail. Because of lack of practice. And I didn’t have practice because I didn’t feel confident enough to start anything on my own.

Though, two months ago, one of my clients asked me to write Rails app for him. (He was aware I don’t have fresh experience on it.) And I dusted off my Rails skills and started writing app. And I think I’m doing well. Though I have some questions and feel lack of best practices knowledge. I’m going to read some good book on Rails, and I’m sure if I’ll got my questions answered I’ll remember them.

Conclusion

That’s how I end up with my current way of learning new things. Learn basics of it so you don’t spend too much time figuring out along the way. Otherwise, this would take your focus away to little details. Then get your hands dirty. Dig into it. Build something with it, even your code is ugly. You’ll get lots of questions along the way. Then seek answers to them. Best if you find good book on subject, which teaches best practises too.

I’d love to hear what’s your learning habits. Let me know if you got something interesting.