New Programmer and Python

Roy Smith roy at
Sat Sep 18 18:36:22 CEST 2004

In article <_NidnfFXMMGVyNHcRVn-hg at>,
 "PMD96" <PMD96 at> wrote:

> I'm new to programming and have been recommended to start with Python.

Python is an excellent place to start programming.  In one sense, it 
fills much the same niche BASIC did a generation ago; it's very easy for 
beginners to learn.  Python is also available on a wide variety of 
platforms (Unix, Windows, and Mac) and is easy to install.  It is also 
very portable.  There are certainly changes that have happened over the 
years to the language, but at least there's only a single line of 
development, so you don't have to worry about different branches heading 
off in different (incompatible) directions.

Python has a shallow learning curve, which means you can learn just a 
little bit of the language and start building useful programs right 
away.  As you explore more features of the language and libraries, you 
can do more sophisticated stuff, but you need to know just a small 
self-contained subset to get going.

But, unlike BASIC, Python is a powerful modern language, which is taken 
seriously by professional programmers who want to get real work done.  
It supports (but does not require) object oriented programming.  It's 
got good flow control constructs, a rich (but easy to use) assortment of 
built-in data structures, exceptions, and hands-off memory management.

It's also fast enough for a lot of what most people do.  Not as fast as 
C or C++, but comparable with the likes of Perl, Java, and TCL.

It has some controversial aspects, to be sure.  The one that will be in 
your face right from the start is the use of indentation for statement 
grouping.  All I can that can be said about that is "deal with it".  
Some people think it's absolutely brilliant, others think it's the 
stupidest thing they've ever heard of.  But, it is what it is, it's not 
going to change, nobody in either camp is ever going to be convinced to 
change their mind, and there is nothing that can be said about it on 
either side which hasn't already been said 100 times already.

The other thing is the use of dynamic data typing.  People who come from 
a C++ or Java backgrounds often find it upsetting that there is no data 
type checking (nor is there any real notion of private data or methods, 
in the sense that those languages support).  On the other hand, 
Pythonistas find this freedom from "type bondage" one of the best things 
about the language.

Overall, my recommendation to anybody just getting into programming 
today would be to learn both Python and Java.  They are both modern, 
popular, useful languages, but based on very different design 
philosophies.  Once you've learned both, you'll be in a much better 
position to make up your own mind which you like better.

> I've reviewed the tutorial and am looking for additional learning 
> tools to learn programming and Python.  Any recommendations?

More information about the Python-list mailing list