should i learn it first ?

Laura Creighton lac at strakt.com
Sat Mar 9 16:59:51 EST 2002


> Q
> 
> Do you guys not agree to master C/C++, a large amount of time will be
> required (somewhere on the net i saw it's appro 3-4 years.  whew!!)
> In one i want to learn it but on the  other this time consuming issue scare
> me .as the  bad tradeoff -- it's smarter to use a language that uses the
> machine's time less efficiently, but your time much more efficiently.
> 
> am i whining? , :-)

You aren't whining.  This is the biggest argument in favour of using
Python rather than any other language on the planet (though there
are some fans of LISP and Smalltalk who will want to say MINE too!).

I don't know of a single person who considers themselves excellent in
C++ who also knows Python who doesn't also consider themselves to be
more productive in Python than they are in C++.  And we are talking
5, 6, 10 times as productive in Python.

> 
> and one more question,  what's you view of "you have mastered a language" ?
> knowing syntax and grammer is the begining to master, then know how to use
> them(wisely) and  coding coding ... after certain long time , that you call
> you master the language? As the same data structure and programming mind
> almost  apply to any language, i never so sure if i master a language or
> not, and only feel i can use this or that language do the job. Or maybe this
> can be said there is no such thing you master the language, It's only you
> know this language better and have more experience with it.

You need to spent a lot of time fixing the bad programs written by
people who are learning a language before you can say that you have
mastered it.  You need to know more than 'how I alone can use it to
make wonderful programs', but instead 'how to write code so that other 
people, including other people I have not met, can adapt the programs 
I made in ways I never envisioned'.

When you are a Master, other people get better just because you are
around -- and when you are an exaulted Master other people get better,
all the time, just to read your code.

> 
> Those are the questions poping up in my head once in a while when i am
> tempted by some fance widely used languages and wondering should i give it a
> go by putting aside the one i am using which i am not sure if i've mastered
> it yet.
> 
> sincerely thanks any input which will help me explore the programmer world
> .....
> 
> Q.

If you do a Google search of comp.lang.python of articles written by me
that mention C++, you will rapidly discover that I hate the language.
This is because I used it all the time, not because I never learned or
mastered the language.  (C on the other hand, I love.  But not for
writing application programs in.)

I do not think there is a single concept in programming that you need 
C++ to learn; every one that exists there you could learn just as well 
in some other language.  And I truly worry about somebody who worries
about 'using his own time effectively' programming in C++.  C++ is the
language where you trade programmer hours to make code that runs
very, very, fast.  If only the fastest code will do for your needs,
then C++ may well be the language for you.  But it is a language to
suffer for.  It _wants_ the kind of dedication where you are willing
to make the heroic effort; C++ programmers suffer all the time.  It
is a very macho language that way.  And C++ programmers get to say
'ha ha, my language is harder to use than yours is, so I am a tougher,
stronger, better programmer than you are'.  And some of them say that
a lot.  It's harder to kill your own antelope dinner with a club
as well ...

If, against this advice, you decide to go master C++ next, could you
do us a favour and remember Python?  There are a great many people in
this world who decided one day that they would learn C++, hated it,
and to this day believe that they hate programming, and are no good at
it, when they only hate C++. If this starts to happen to you, remember
Python and come back.  I guarantee you will enjoy learning Python more
than C++.

Laura Creighton




More information about the Python-list mailing list