[Tutor] Is Python the language for me?

Chuck Coker python-tutor at ccoker.net
Mon Jan 15 18:53:30 CET 2007


Andy,

Disclaimer: I'm a Python newbie, although I've been developing
software for many years.

(In my humble opinion,) Luke makes some critically important points
here. The first one has to do with programming ~concepts~.

LP> As an introductory language to Computer Science I'd recommend
LP> Python. You spend less time trying to understand the language
LP> itself and more time learning abstract concepts like how a merge
LP> sort works, inheritance, classes, 'self', and things like that.
LP> Once you understand all of these things, C++ will be greatly
LP> easier to pick up, as should most Object-Oriented languages be. I
LP> think if you start with C++, you'll get discouraged. Perhaps not,
LP> but that's how it worked with me.
...
LP> As it turns out, all of the classes at my school are in C++. But
LP> despite the fact that I came here with barely any C++ experience,
LP> I had _programming_ experience, and that, as they say, made all
LP> the difference.

I went from C to C++ and had an extremely difficult time with shifting
my thinking to object orientation.

Once I learned the basics of O-O programming, I've found it very easy
to shift from one language to another. As a contract developer for
hire, and in my work as an employee at Tyrell Software, I frequently
run into situations where, for whatever reason, I need to use a
language that I know nothing about.

Example: On my current project at Tyrell Software, the decision was
made to use a load-testing package named The Grinder. (I highly
recommend The Grinder: http://grinder.sourceforge.net/) The
load-testing part of the project was handed to me. I knew I would have
some questions about Python, so I asked who our resident Python Guru
was. They told me, "You are, now." Sometimes you need to learn fast.

Having learned the basic concepts, when going to a new language, I
have to devote much of my learning time to language syntax issues,
rather than learning the basics all over again.

Don't let anyone tell you that language X is superior to language Y.
In one particular instance that may be so, but in the grand scheme of
things it all evens out. Different languages do different things
better and worse than other languages, but the O-O concepts remain the
same. (This week, I'm being paid to write Python code, so Python
is clearly the superior language. :-) )

LP> ... you can use packages and such to keep your code manageable.
LP> It's probably a good idea to keep your code separated from the
LP> get-go when you reach the time to make your game, because it'll
LP> eventually get to the point where you'll need to break it apart,
LP> so you'd be doing yourself a favor.

Packages, modules, libraries -- whatever you want to call them -- are
the way to go. If you put a little bit of thought into them when
writing them, most things can be reused at some future time. Most code
you write will be code that you will write over and over.

Try to keep your pieces small and generic, except, or course, where
you need to do a specific step that applies to your current project
only.

Good luck on your project.

Chuck

-- 
======================================================================
Chuck Coker, Software Developer                python-tutor at ccoker.net
Tyrell Software Corporation                      http://www.tyrell.com
Office: +1 949 458 1911 x 203                    Cell: +1 714 326 5939
======================================================================



More information about the Tutor mailing list