views:

87

answers:

2

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?

A: 

It depends on how much time I currently have.

If I want to have a good first start, I read tutorials and about the basic structure/syntax.

If I want to get a job done, I google for what I want to accomplish and try to understand it.

But I have to confess, I really like to read documentation. Because if I want to use something, I want to understand it.

Felix Kling
+1  A: 

It really depends on the learner. Some people learn by doing something themselves, some learn by reading books and some learn by doing both. Or more. Personally I read documentation and random tutorials, but only really learn something when I see or write code using the language/API/whatever. And not in tutorials, but in actual applications.

esalaka
yes but what i've experienced in the learn-by-doing method is that it's great from understanding programming concepts, but not so good for remembering specific lines of code, which is what using an API is about. i understand the concepts covered so far in the django tutorial, but i have to keep going back to remember all the little details, module names, methods, file placement, etc.
momo