[CoLoCo] New Member in Longmont

Kevin Fries kfries at cctus.com
Fri Sep 7 14:32:43 BST 2007

On Thu, 2007-09-06 at 20:10 -0600, Andrew wrote:
> By the way, I have been interested in learning to how to program for
> some time. I've been meaning to ask someone if I should try to learn
> python first, or c.

Having been a programmer for {mumble, mumble} years, I can tell you that
language is not nearly as important as learning the fundamentals of good
programming design.  Python and C are two very different languages, and
require very different skills: C is a procedural language (you write
step by step procedures for the computer to follow); and Python is an
OO, or oject oriented, language (you build your software by modeling
objects, then extending them to interact with each other).

Any given programming task can generally be done by either type of
language, though one will generally be easier than the other.  If you
want to work on GNU projects, C is generally the language of choice,
with some C++, Perl, Java, Python, and increasingly Ruby.  C is probably
also one of your best choices to learn procedural programming.  And, the
wide availability of open source projects will give you a never ending
amount of example code to follow.

For OO programming, Python is good, but I feel Ruby is better.
Especially for learning OO concepts.  No language follows the pure OO
model as well as Ruby.  You also have a fantastic interactive
environment where you are encouraged to play called the IRB.  I am
currently working on converting from Python to Ruby to build a highly
integrated remote admin site tying together Ruby scripting; Rails (web
portal); God (process management, like monit); and Puppet (configuration
and package management).  Python can get a bit bulky but is also so
widely used, you could not go wrong learning that.  Java would also be
good because of the amount of code base, and it follows OO concepts more
closely than Python, though not as well as Ruby.  I feel you would be
better off learning a more stringent OO language like Java or Ruby
before moving on to Python.  Python code sometimes cheats, and allows
some procedural calls, Java and Ruby don't do that.  While this can be
very powerful in a production environment, the pure environments would
allow you to learn both the good and the bad of OO programming without
being able to skirt around the parts where procedural may be more
convenient (it generally isn't in the long run, which is why languages
like Perl and Python get themselves in trouble).

If you need any help with any of this, there are several programmers in
this group.  I know I would love to help with any questions you may
have, and I am sure several of the other programmers would do the same.

Kevin Fries
Linux Engineer
Computer and Communications Technology, Inc
A Division of Japan Communications Inc.

More information about the Ubuntu-us-co mailing list