Anyways, regardless of the programming language used - as for me - the best way to learn is to find a good open source project, which is properly designed and implemented, and then try to recreate bits and adjust them to my needs :) Any difficulties that I have, I'm able to overcome with the help of stackoverflow :)