Sunday, February 10, 2008

Groovy Accelerated Learning Technique

I always waste at least 2 hours of my life driving through traffic everyday. So I decided to attempt to be productive. I tried searching for worthwhile stuff to listen to while stuck in my car and chanced upon an old audio book by Brian Tracy and Colin Rose entitled Accelerated Learning Techniques. I gave it a shot, got myself a copy, loaded it to my iPod and listened away. Much of the stuff made a lot of sense. The bottom line is you have to have a system of learning that works for you. Although I've listened to it twice now since last year, I realized I never really applied what I've learned strictly.

Meanwhile, I've always incubated the idea of adding another programming language in my toolbox within the next few months. Being a Java programmer, the obvious choice is a programming language that works in the JVM. After a lot of struggle, I've finally chosen Groovy to be it, against runner up (J)Ruby.

So, finally, I could test the new learning system I've learned. The Goal: To learn Groovy in the shortest amount of time. The Way: Accelerated Learning Techniques as understood by me, while stuck in traffic. The audio book outlines 6 steps. I would write down these steps and how I could apply them in my quest for learning Groovy via this technique.

The Steps:
  1. Be in the right state of mind - Before you can learn, you must be in the right state of mind. You must have the confidence and the motivation to learn before even attempting. Well, I learned Java, C, etc without much hassle. I don't see learning Groovy any different, except for the way I will be attempting to learn it now. Second, what's in it for me? A dynamic language in my arsenal, more programming paradigms to play with, promising frameworks around the language, bragging rights. Yup I'm pretty motivated :p
  2. Get the facts - You must get the facts in a variety of ways that suits you. You could get information through any of your five senses. You must be comfortable with the materials you've chosen and are ready to break them into chunks while in the process. Now this one's tricky. The technique is to find a way to get the facts in different ways. Visually, I'm eyeing this book. I'll better stick with this first so I won't get distracted with more than one source. I don't need to read it cover to cover. Just directly to the facts I feel I need to learn, and motivated to read through. Auditory-wise, I really don't have anyone who already knows Groovy to discuss it with me. Kinesthetics - hmmm, I guess doing practice programs is considered as that. I just have to remember to break the topics in meaningful little pieces.
  3. Explore the facts -You must look at the facts at various angles, different circumstances, other point of views. Also, relate the new facts to what you already know and see the connection. Finally, ask questions! Easily, I could compare Groovy with Java, syntax-wise. The other paradigms used in Groovy I could compare with OOP. I could explore the solutions I've made in the past and this time implement them using Groovy.
  4. Memorize key ideas - You don't need to memorize everything. Stick to the key ideas. I definitely should memorize key APIs and syntax basics. Need to list them down while on step no. 2.
  5. Show you know - Check how much you've learned by showing it to yourself and others. Teach someone. Discuss with another person with different ideas. Well, I could always blog about what I will eventually learn. I have friends who would want to learn the language as well. I could give some presentations in community gatherings or in the office.
  6. Review and Reflect on the process - After every learning course, reflect on how effective it is and things to improve on. After this, we'll see how effective this stuff is ;)
Wish me luck!