Here is a protocol I have used in the past:
1. Realize there is a program you really wish you had.
2. Find out that, upon relentless googling, no
such program exists that meets your needs exactly.
3. If 2 fails and a program exist s, go back to 1.
4. Proceed to write this program no matter what it takes--you
may even face some "sitdowns" with your friends, family,
and/or employers.
5. (Very important)
A. Refer to this list periodically for help but making
sure to properly phrase you questions.
B. Try not to rewrite any libraries by first ascertaining
whether a library doesn't already exist for the
sub-task you are programming.
6. Enjoy the new program you have written and the new
knowledge you have gained.
James
Start out with something simple and go deeper. For example, here is
one progression:
1. A simple program that counts words (wc) - read from a file,
tokenize, count
2. A variation of wc that does word frequency count (counts how many
times each word occurs) - wfc - In addition to 1, this allows you to
use a data structure to store words and search for them to update the
count. You may also sort the output.
3. A variation of wfc that reads from a file a set of noise words and
stores them in memory. As you are tokenizing, drop the noise words
from counting (or count noise words)
You could do similar things with database programming (start with
something simple and gradually increase the level of complexity or any
other area.
You can also access Python cookbook, use the examples as a starting
point and build variations. This not only allows you to read some well
written code but also understand various techniques.
Another suggestion is to get hold of a book "Software Tools" and try
to code all the examples in Python.
I found the best way to learn a language is to read some code, write
some code and keep improving it. Many improvements will suggest
themselves as you keep coding.
Hope this helps.
Dorai
www.thodla.com