I like to find a good basic intro to the language (like a book or a tutorial series) and work through it. After every chapter I write a small program that focuses on using the subject of the chapter. After I finish the book or tutorial I like to write a program that I will use.
At this stage I think programming for yourself and developing a passion for your chosen career is more important than mastering a language. I wrote a blog post about that if you want an example of what I'm talking about. http://progfiles.wordpress.com/2012/04/29/flow/
I think taking notes is good for making sure you understand a concept. If you can summarize it accurately you probably know it well enough. Also notes are nice when you want a refresher on something, but don't want to hunt through the source to find it.
I recommend Eloquent Ruby (The Kindle version is only $17).
I think it has to do with not being average/mediocre. Basically hang out with people that are pushing the envelope (for various definitions of envelope), and hopefully you will be lifted up too.