Topic talk:Python

From Wikiversity
Jump to navigation Jump to search

Two Tracks? Novice Programmers and Late Adopters[edit source]

It occurs to me that we might want to have two tracks to the Python programming material here. The first track would be oriented towards novice programmers (as with the current material). This would point to items in Topic:Programming and cover things like "using a text editor" and "why can't I run code I've written in my word processor?"

The other track would be address the needs of experienced programmers who want to quickly pick up Python. This would assume that readers are familiar with concepts such as "pointers" or "references," objects, classes, dynamic vs. static typing, etc.

These two tracks are likely to be converge somewhat as the topics become more advanced. However, even as we discuss more advanced Python features we may want to link back out to remedial coverage of basic algorithms and data structures. Sometimes this will be more ancillary. For example a Python programmer will almost always be able to use the built-in sorted() function and the .sort() methods of list and some other container objects, perhaps with the DSU (decorate, sort, undecorate) pattern. So an experienced programmer will have little need nor interest in coding examples that explain and compare bubble, merge, heap, quicksort or other sorting algorithms. Likewise discussion of binary trees and examples of how to traverse, insert, remove and re-balance nodes in a such a tree might not be interesting to experienced programmers. (However, an example of how to implement different traversals of a tree of objects via the Python iterator protocol and using a generator might be useful).

So, one thing that might continue to separate the two tracks is the use of Python to teach basic computer science concepts for the novice track. I suppose those same examples might be useful to advanced programmers as examples of how Python can be used to implement familiar algorithms ... then used as a launching point for showing more Pythonic, dynamic, and/or object-oriented implementations.

I've seen this done in other programming language topics... Can we design it so that a beginning can learn and a intermediate can extract information out of it. I would guess that we can just focus on the beginner stuff and then once we progress we'll go into the advance stuff like you said. There could probably also be easy cheat sheets to get experienced people up to speed. --Devourer09 02:23, 27 September 2008 (UTC)[reply]