I just wanted to hear on the different general learning paths people embark on when learning a new language/framework.
The one I currently use, which is how I learned Bash and am currently learning Python, is:
instant hacking tutorial (very short tutorial introducing the basic syntax, variable declaration, loops, data types, etc. and how they are generally used)
in depth tutorial with good programming style and slightly topic-specific (e.g. Mark Pilgrim's Dive into Python), important topics for me personally are regular expression methods, file I/O, and ways the different data types are utilized best (I wrote a very primitive Bayesian spam filter using Åython's dictionaries to keep track of word occurrences)
spaced-repetion of syntax or short recipes (I use Anki, with questions like 'create dictionary with filename and filesize metadata, human-readable' or simpler ones like 'match 0 - 3 occurences of the letter M in a string', or 'return/create an iterator from two sequences')
The use of spaced-repitition has been invaluable, and I credit it with the ease that I can recall/create Python algorithms. However, I've recently started looking into Django, and I've found that spaced-repitition, at least in my case, doesn't work very well for learning a framework, it works best with short code recipes (either that or I should start looking into more basic Django framework tutorials). The problem I'm encountering is that since framework programming is not only algorithms, but actually learning the API, which can be quite complex since you have to learn all the methods, modules, the places where they are stored, and the sequence of which things have to be done.
For example, in Django to start a project that deals with polls (from the Django tutorial), one has to create the project, edit the settings.py
file, create the polls app, edit the models.py
file (which requires knowing the classes that are present in the module models), edit the urls.py
file, etc. I found that my spaced-repition method didn't work very well for this type of learning, so I wanted to ask: what method(s) do you use for learning the different frameworks/APIs?