Last week I decided to finally replace part of my Usenet time by something more productive, starting today. I had decided to use the first hour after breakfast for studying instead of reading Usenet posts and doing other things on the computer that I considered not really productive. I had planned the first hour after breakfast of the first 4 days of the week as follows:
So this morning, after breakfast I sat down at the dinner table with a print out of the "Python Tutorial - release 2.4" by Guido van Rossum and Fred L. Drake, Jr. (editor) in order to study the Python language.
I had read the print out of the Python tutorial before, quite some time ago, and also read a major part of "Dive into Python" by Mark Pilgrim, taking notes while doing so. But this time I wanted to do things a bit more serious meaning not reading a chapter at a time in bed at the end of a busy day.
And it worked out quite well. I started out in chapter 2 "An Informal Introduction to Python" and after about one hour I finished with section 4.6 "Defining Functions". It was quite easy to read since I had already some understanding of Python and quite a background in programming in general. However, I know that it will take me many months to get fluent in the Python programming language. One doesn't learn a programming language in 21 days, notwithstanding all the promising book titles one can see in the computer books section in bookshops.
Some might wonder why I decided on learning Python. I already am very skilled with Perl, and both Python and Perl are considered scripting languages, and hence sometimes seen as being similar in a way.
I have several reasons for picking Python, of course, and being a scripting language, like Perl, might be one of them albeit a minor one. More important to me is that I like a lot what I've seen so far of Python. Also, Python is used to automate (script) things in Blender. And as you probably have noticed, Blender is planned for Wednesday.
Sometime ago I made a list of programming language candidates I wanted to learn: C#, PHP, and Python were in the top 3, I only had to figure out the order...
I have a kind of hate/love relation with PHP (some would say mostly hate, but that was more the case when PHP was young). PHP has copied a lot of ideas from Perl, but some ideas were not copied, often for the wrong reason, while others shouldn't have been copied for a good reason. So PHP often looks to me like wrong Perl, which makes it hard to me to use this language. Even worse is the huge amount of extremely badly written PHP code I have seen so far, often managing to beat Perl in unreadability. And I know that this says a lot about the programmer, and next to nothing about the programming language. Yet, as a freelance programmer, I do maintain projects written by others and I am very afraid to be asked to maintain PHP projects.
As of C#: I already am quite fluent in Java. And I am still unsure if I should catch up with Java and extend my knowledge, or learn C#, which has a lot in common with Java. I decided to start with Python, also because IronPython makes it possible to integrate with Microsoft's .NET Framework and use .NET libraries available, while maintaining full compatibility with the Python language. So I might be able to study (a part of) .NET while extending my Python knowledge. Sounds like a good choice to me.