I’ve been busy the last three days practicing python. My primary interest in python was to be able to code for blender. I was told it was the best way to enter blender’s developers world.
After reading some tutorials on web, I decided to start programming. My first attempt was to use SPOJ [1] to practice, since most of the problems avaiable there may be submited in any language. The main difficult in training there is that problems generally have limited time to execute. I know there’s a way to optmize python execution, but I thought I needed to start low.

I don’t know how I’ve found this site: http://projecteuler.net/, but I discovered it was very suitable for my purposes. First of all, you can program in any language (or none at all), since you just need to send the answer, not the program. Secondly, for the same reason, time is not mandatory, even if it takes python three times more than C to run, I won’t bother to wait that much.
Another advantage to use python to solve the problems in that site is that python have many third-party libraries that are much easier to include than in C/C++. By the way, I found it very useful the scypy library. Also, in python you don’t have to declare variables and define their types and python has a built-in support for arbitrary precision integers. This combination makes a problem like “Find the sum of the digits of 35^100″, a trivial task.
Python data structures are also very very good. The new great concept python introduces is Lists [2]. This is a very intuitive way to manage data. I’ve also used some structures common to C++ STL, like sets [3]. The recently released python 2.6 provides a new data structure: Fractions, which implements rational numbers.
I’ve been coding python under windows using Netbeans IDE 6.5 which now supports python development. I have nothing to complain about this tool.
Python is a great language and I think it’s fun to program. The most part of what I’ve learned comes from the references below. But I think that it’s not enough to read all python materials and tutorials: practice is essencial! I hope that describing my first steps in learning python I may help anyone willing to do the same.
References:
[1] Sphere Online Judge
[2] An Introduction to Python Lists
[3] sets — Unordered collections of unique elements
[4] The Python Tutorial