Discussion:
programming
(too old to reply)
blanker
2005-01-19 16:37:19 UTC
Permalink
i would like to learn a programming language and have heard good things
about python. i bought the o'rielly book "programming python" but it was a
little too advanced for someone like myself who has absolutely NO
programming experience at all and i have yet to go buy thier introductory
book on python (forgot the name). so finally to my question. is python a
good choice for a first timer? i don't mind a little difficulty. i just
want to know what language might give me the broadest base and the greatest
understanding of programming in general. any insight would be greatly
appreciated.

gerald
Robert E. Turner
2005-01-19 16:37:19 UTC
Permalink
Post by blanker
i would like to learn a programming language and have heard good things
about python. i bought the o'rielly book "programming python" but it was a
little too advanced for someone like myself who has absolutely NO
programming experience at all and i have yet to go buy thier introductory
book on python (forgot the name). so finally to my question. is python a
good choice for a first timer? i don't mind a little difficulty. i just
want to know what language might give me the broadest base and the greatest
understanding of programming in general. any insight would be greatly
appreciated.
gerald
Hi Gerald:
Your first programming language is your most important step to
becoming computer literate. All most any structured language will work,
but do not use basic. BASIC programs produce brain damage that can
not be corrected later. A study of swiss college students, showed that
the students who used BASIC first had problems later on in their studies.
Structured languages like Pascal, Algol, will help build logical programs,
that are easier modify later. I don't know if I would suggest a scripting
language like python, as a first computer language to learn.


Robert E. Turner
President - Martian Technologies
email: ***@martian-tech.com URL: www.martian-tech.com
David M. Cook
2005-01-19 16:37:20 UTC
Permalink
Post by Robert E. Turner
that are easier modify later. I don't know if I would suggest a scripting
language like python, as a first computer language to learn.
Python is not a "scripting" language in the sense that Tcl and Perl are (or
at least as they are marketed). Though it's often compared to those two,
it's more in the tradition of general purpose computer languages (it was
highly influenced by Modula3). In the words of the executive summary:

--
Python is an interpreted, interactive, object-oriented programming language.
It is often compared to Tcl, Perl, Scheme or Java.

Python combines remarkable power with very clear syntax. It has modules,
classes, exceptions, very high level dynamic data types, and dynamic typing.
There are interfaces to many system calls and libraries, as well as to
various windowing systems (X11, Motif, Tk, Mac, MFC). New built-in modules
are easily written in in C or C++. Python is also usable as an extension
language for applications that need a programmable interface.
--

It's an excellent first language IMO. I assume your reservations are based
on unfamiliarity.

Dave
Lan Barnes
2005-01-19 16:37:20 UTC
Permalink
i would like to learn a programming language -snip- i don't mind a little difficulty. i just
want to know what language might give me the broadest base and the greatest
understanding of programming in general. any insight would be greatly
appreciated.
Well . . . any credence you may or may not give my thoughts
should be tempered by the fact that I have been strongly
disagreed with by an (otherwise?) intelligent person on a recent
language recommendation, but . . .

<not-too-qualified opinion>

There are several separate issues in programming that may best be
addressed by different learning experiences and (therefore)
languages:

1. Structure (looping, flow control, variable scope, first level
abstraction (procedures and functions)). Traditionally this is
learned first through some structured language like Pascal
(developed as a didactic language, and not worth much IMHO for
anything else).

2. Machine behavior learned through any assembler.

3. Data structures and algorithms (also first level abstraction).
For some reason this is also taught in Pascal, which is like
teaching someone to swim by tying paddles to his arms.

4. Higher levels of abstraction -- object orientation, call by
reference, and flat out magic.

The order of 2 and 3 can be swapped, and most of us learn a lot
as we go along and read code.

I personally don't recommend C as a first language to study,
because it confuses issues in 1 and 2. Learn structure before you
start tweaking the machine. But eventually you must at least be
able to read C (NB: C, _not_ necessarily C++) if you are to be
literate in *nix.

Unix scripting languages are Good Things. Sample at least a
couple. Learn what suits you.

Don't bother with anything that doesn't interest you. This is
supposed to be fun, right? ;-)

Finally, you'll be tempted to believe as you learn languages that
each new one is either The One True Answer or Prettymuch Fscking
Worthless. Probably neither is true.

{I went dBASE II -> Pascal -> PDP-11 Asm -> Pascal Data
Structures -> 8086 Asm -> C -> More C -> God I Love C! -> Clipper
(Yuk!) -> -> -> perl, Tcl/Tk -> ?}

</n-t-q o>
--
Lan Barnes ***@earthlink.net
Icon Consulting, Inc 619-273-6677

The irony is that Bill Gates claims to be making a stable
operating
system and Linus Torvalds claims to be trying to take over the
world.
- Drakmere
Chris K. Young
2005-01-19 16:37:20 UTC
Permalink
On Fri, Jul 02, 1999 at 11:15:39AM -0700, Lan Barnes wrote:
! {I went dBASE II -> Pascal -> PDP-11 Asm -> Pascal Data
! Structures -> 8086 Asm -> C -> More C -> God I Love C! -> Clipper
! (Yuk!) -> -> -> perl, Tcl/Tk -> ?}

Can't resist adding my own learning path here: :-)

Quick Basic -> 8086 assembly -> C -> (the great Linux transition) -> more C
and assembly -> bash -> Bourne shell -> Perl

They say don't make C your first language, but it really doesn't matter
which languages precede it, really. :-) Certainly, structured languages
aren't a prerequisite.

Chris.
--
Chris K. Young <***@pobox.com> | My dog died last week, he never did
The Young One @ /var/mints | that before. :o)
Auckland, New Zealand | -- Neil Schneider
Maneesh Yadav
2005-01-19 16:37:20 UTC
Permalink
Ok I'll put in mine,

QuickBASIC-->8086 asm--->C++-->pmode asm-->Java--->smallTalk-->Python, scheme,
and just recently perl:)
Paul Norton
2005-01-19 16:37:20 UTC
Permalink
FORTRAN IV-->PL/I-->IBM 370 ASM-->C-->80x86 ASM-->Pascal-->
LISP-->C, more C, God I _love_ C!-->C++-->Perl...

..with a smattering of half a dozen other languages in the course of
my CS education.
Post by Maneesh Yadav
Ok I'll put in mine,
QuickBASIC-->8086 asm--->C++-->pmode asm-->Java--->smallTalk-->Python, scheme,
and just recently perl:)
Robert La Quey
2005-01-19 16:37:20 UTC
Permalink
Here is one that is a bit different;

machine code, 7bit+1parity punched by hand on paper tape
asm, for same machine (built of vacuum tubes)
FORTRAN I or II ????
Nothing for 10 years (mostly doing math and physics)
8080 machine code toggled in thru switches (embedded system)
8080 asm, 6502 asm
Pascal, ugh, like wearing a straightjacket
Forth, all kinds of small platforms (loved it)
FQL, NUMSQL, little languages that I implmented in Forth,
FQL = Fuzzy Query Language
NUMSQL = Numeric SQL
Lisp, (Ho (hum after Forth)(slow))
C, still love it, algorithms,
C++, can you spell bloated, unneeded complexity?
Java, not too well, could not buy into hype,
Perl, feels a lot like fat Forth for C programmers
Tcl/Tk, just learning,
Python, just looking, smells rigid,
lotsa shells just well enough to get by.
Paul G. Allen
2005-01-19 16:37:21 UTC
Permalink
Post by Maneesh Yadav
Ok I'll put in mine,
QuickBASIC-->8086 asm--->C++-->pmode asm-->Java--->smallTalk-->Python, scheme,
and just recently perl:)
---
http://www.kernel-panic.com
list archives http://www.ultraviolet.org/mail-archives/kplug-mail.html
To unsubscribe, send a message to the address shown in the list-unsubscribe
header of this message.
Now you've forced me into it:

Assembly (TI 99xxx)-->BASIC-->Fourth-->FORTRAN-->Pascal-->COBOL->Assembly
(8086/8088,Z80/Z8000)-->Assembly (TMS34010/TMS34020)-->Assembly (TMS
320Cxxx)-->Assembly (MC68xxx)-->Assembly (x86,
Pentium)-->C-->C++-->Abel-->VHDL-->Verilog-->Assembly (ARM7TDMI)-->Assembly (OAK
DSP)

and I suppose I will learn a couple scripting langauages soon (since I'm now
using Linux full time and maintaining a LAN) :)

Have all the egos been fed enough now? Mine has. ;)


PGA
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pgallen.vcf
Type: text/x-vcard
Size: 288 bytes
Desc: Card for Paul G. Allen
Url : http://www.kernel-panic.org/pipermail/kplug-list/attachments/19990703/851fa5de/pgallen.vcf
Deirdre Saoirse
2005-01-19 16:37:20 UTC
Permalink
Post by blanker
i would like to learn a programming language and have heard good things
about python. i bought the o'rielly book "programming python" but it was a
little too advanced for someone like myself who has absolutely NO
programming experience at all and i have yet to go buy thier introductory
book on python (forgot the name).
Learning python, which is a MUCH better book than programming python.
Post by blanker
so finally to my question. is python a
good choice for a first timer? i don't mind a little difficulty. i just
want to know what language might give me the broadest base and the greatest
understanding of programming in general. any insight would be greatly
appreciated.
I think Python is a GREAT language for learning for a bunch of reasons:

1) structure and flow control is very similar to what you would learn in C
or Pascal.

2) because indentation of loops is syntactically significant, python
forces you to learn a better coding style.

3) you can do it either OO or not, which gives you an advantage over Java.

4) a lot of things you'd have to write in C are included in python, so it
lessens the learning curve (this is also true with Java and perl)

5) Like perl, the syntax of python is terser than Java or C. When you're
learning, fewer lines of code to debug is a Good Thing.

6) great tutor list and a #python channel on EFnet to help with problem
solving.

Since others have discussed it, order I learned languages in (that I used
professionally over the last 23 years): Basic, Fortran, Ratfor, PL/1,
Pascal (LOTS of Pascal), Ada, C, C++, Perl, Python, Java, Javascript. Of
these, I still use C and Python.
--
_Deirdre * http://www.linuxcabal.org * http://www.deirdre.net
"I have a simple rule in life: If I don't understand something, it must be
bad." & "If you want more than 4 gig of memory, get a *real* CPU."
-- Linus Torvalds, speaking at BALUG (www.balug.org)
Andrew G. Feinberg
2005-01-19 16:37:20 UTC
Permalink
Yes! Python is a wonderful choice for a first language, however the
"Learning Python" book might be a better choice for a first-timer.

Andrew
Post by blanker
i would like to learn a programming language and have heard good things
about python. i bought the o'rielly book "programming python" but it was a
little too advanced for someone like myself who has absolutely NO
programming experience at all and i have yet to go buy thier introductory
book on python (forgot the name). so finally to my question. is python a
good choice for a first timer? i don't mind a little difficulty. i just
want to know what language might give me the broadest base and the greatest
understanding of programming in general. any insight would be greatly
appreciated.
gerald
---
http://www.kernel-panic.com
list archives http://www.ultraviolet.org/mail-archives/kplug-mail.html
To unsubscribe, send a message to the address shown in the list-unsubscribe
header of this message.
Andrew G. Feinberg ***@ultraviolet.org http://www.ultraviolet.org/andrew
PGP Fingerprint: 78 55 2B B4 A7 B2 96 FF 84 BA 4A 3F 23 82 DD 80
Pager: 1-888-950-5050 PIN 6093780 WHOIS: AF897 gnarph @ IRC
http://hs-lug.tux.org - High School Linux - Educate!
http://www.debian.org - Debian Linux - The choice of a GNU generation
mmarion at miguelito.org ()
2005-01-19 16:37:20 UTC
Permalink
Post by Maneesh Yadav
QuickBASIC-->8086 asm--->C++-->pmode asm-->Java--->smallTalk-->Python, scheme,
and just recently perl:)
Not to be left out...
QuickBASIC-->Pascal-->Vax-11 asm/C(different classes at the same time at
SDSU)-->C++(which I suck at)-->csh-->sh-->java(also suck)-->perl
--
Mike Marion - Unix SysAdmin/Engineer, Qualcomm Inc.
A yer ago I kudnt spel Sistum Admnistratur; now i R won.
mmarion at miguelito.org ()
2005-01-19 16:37:20 UTC
Permalink
Post by mmarion at miguelito.org ()
Not to be left out...
QuickBASIC-->Pascal-->Vax-11 asm/C(different classes at the same time at
SDSU)-->C++(which I suck at)-->csh-->sh-->java(also suck)-->perl
Forgot to throw Fortran in there somewhere too....

--
Mike Marion - Unix SysAdmin/Engineer, Qualcomm Inc.
A yer ago I kudnt spel Sistum Admnistratur; now i R won.
James Meadows
2005-01-19 16:37:20 UTC
Permalink
Post by mmarion at miguelito.org ()
Post by mmarion at miguelito.org ()
Not to be left out...
QuickBASIC-->Pascal-->Vax-11 asm/C(different classes at the same time at
SDSU)-->C++(which I suck at)-->csh-->sh-->java(also suck)-->perl
Forgot to throw Fortran in there somewhere too....
--
Mike Marion - Unix SysAdmin/Engineer, Qualcomm Inc.
Me too!
Darthmouth BASIC, Abel(Recomp II) IBM 1620 Asm, Fortran II, TSO BASIC,
Ultra 32, CMS-2, PL1, 8008 asm, 8080 asm, Z-80 asm, C, C++, JAVA. Although
difficult JAVA training has the best potential in the markets I see.

Jim Meadows
Deirdre Saoirse
2005-01-19 16:37:20 UTC
Permalink
Post by James Meadows
Z-80 asm
Oh yeah, I forgot all about that. ::sigh::
I also forgot to mention Forth. Oops.
--
_Deirdre * http://www.linuxcabal.org * http://www.deirdre.net
"I have a simple rule in life: If I don't understand something, it must be
bad." & "If you want more than 4 gig of memory, get a *real* CPU."
-- Linus Torvalds, speaking at BALUG (www.balug.org)
David M. Cook
2005-01-19 16:37:20 UTC
Permalink
Post by blanker
i would like to learn a programming language and have heard good things
about python. i bought the o'rielly book "programming python" but it was a
little too advanced for someone like myself who has absolutely NO
The beginning Python book to get is _Learning Python_ by the same author and
publisher. _Programming Python_ has some interesting stuff in it, but it
rambles too much. It was Mark Lutz's first book and he did a much better
job the second time around.

Dave Cook
Paul G. Allen
2005-01-19 16:37:21 UTC
Permalink
Post by blanker
i would like to learn a programming language and have heard good things
about python. i bought the o'rielly book "programming python" but it was a
little too advanced for someone like myself who has absolutely NO
programming experience at all and i have yet to go buy thier introductory
book on python (forgot the name). so finally to my question. is python a
good choice for a first timer? i don't mind a little difficulty. i just
want to know what language might give me the broadest base and the greatest
understanding of programming in general. any insight would be greatly
appreciated.
As a programmer I started differently than most (in fact, I don't know any
programmer that learned the way I did, but that doesn't mean there aren't any
:). Most programmers learn BASIC in school, in my opinion (knowing what I know
now after 23 years of programming) that's a big mistake. I learned assembly
language when I was in 8th grade. Assemby is the lowest level language and has
the advantage of teaching a programmer how a CPU *really* works. Higher level
languages, such as C, FORTRAN, Python, etc. hide that from the programmer.
Another advantage of learning assembly is that you are forced to learn how to
derive an algorithm in order to solve the problem at hand. For example, in C, if
you want to print something, like "Hello" on the console, you simple use printf
( "Hello\n" ); in your program. Assembly language has no printing function and
doesn't know what a text string is. The programmer has to create a printf for
himself. Once you can figure out the algorithm for solving a problem,
programming it is simple in any language. Assembly language promotes the skills
required in deriving algorithms, the most important part of programming.

I've also found that once I knew assembly language on one processor, it was very
easy to learn it for any other (assembly language is different for every
processor). I also found that learning BASIC, C/C++, FORTRAN, Fourth, etc. were
simple as compared to assembly. IF you want a thorough understanding of
programming, learn assembly language.

PGA
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pgallen.vcf
Type: text/x-vcard
Size: 288 bytes
Desc: Card for Paul G. Allen
Url : http://www.kernel-panic.org/pipermail/kplug-list/attachments/19990703/3af36781/pgallen.vcf
Robert La Quey
2005-01-19 16:37:21 UTC
Permalink
Post by Paul G. Allen
Once you can figure out the algorithm for solving a problem,
programming it is simple in any language. Assembly language
promotes the skills required in deriving algorithms, the most
important part of programming.
I do not agree with a lot of what Wirth said but I do think he got
it right when he said, "Programs = Data Structures + Algorthms".
I would add that if you get your Data Structure right then
your Algorithm is likely to be rather simple. So I think learning
Data Structures is much more important than learning Algorithms
although you obviously need to know both to Program.
Post by Paul G. Allen
I've also found that once I knew assembly language on one processor, it was very
easy to learn it for any other (assembly language is different for every
processor). I also found that learning BASIC, C/C++, FORTRAN, Fourth, etc. were
simple as compared to assembly.
I concur with the exception of Forth. The extensibility of the language,
its flexibility, its ability to act as a metalanguage for writing other
languages all put it in an entirely different class than BASIC, C/C++,
FORTRAN. Forth is something most like an extensible macro language for a
two stack processor (the optimal machine for context sensisitve languages,
ala Chomsky) and is like nothing else. People who treat it as just another
language really do not get it.
Post by Paul G. Allen
IF you want a thorough understanding of
programming, learn assembly language.
No learn Forth, and possibly Lex and Yacc, but proably not.
Then you will understand how to construct all of the
other languages. You really need to understand that the primitives
of all languages are the same, that they are expressed differently,
but have common deep structures. They begin to diverge when higher level
abstractions are introduced. Assembly is fine for the low level
and for learning CPU architectures but will give you no insight at
all into data abstraction, objects, virtual machines, i.e. all of
the more abstract issues that really matter a great deal more.

This is however a hard task. If you just want to learn to be a
decent programmer then forget the above ... learn C and Perl,
maybe Python. Be practical.

Besides real men use machine code, why bother with an assembler
when in Forth you have C, ? And they write their own compilers
for their own languages. Anything else is just like being a band
that only does cover songs. You may sound great but somebody else
is doing the creative work.

``The lyf so short, the craft so long to lerne.'' - Chaucer
Paul G. Allen
2005-01-19 16:37:21 UTC
Permalink
Post by Robert La Quey
Post by Paul G. Allen
Once you can figure out the algorithm for solving a problem,
programming it is simple in any language. Assembly language
promotes the skills required in deriving algorithms, the most
important part of programming.
I do not agree with a lot of what Wirth said but I do think he got
it right when he said, "Programs = Data Structures + Algorthms".
I would add that if you get your Data Structure right then
your Algorithm is likely to be rather simple. So I think learning
Data Structures is much more important than learning Algorithms
although you obviously need to know both to Program.
When writing a program, you can't possibly understand what data structures you
will need, how they should be structured, what type they should be, etc. without
a thorough understanding of the algorithm needed to perform the task. It is
true, an algorithm is useless without the data to go with it, but unless you
know what steps are needed to solve the problem, you won't know what data will
be required to solve it. Many programs, functions, and algorithms turn out in
the end to be sloppy, inefficient, or use more data than they really need
because the programmer did not have a thorough understanding of the algorithm
needed to solve the problem. I've done it myself when I was more interested in
getting it done than making sure I understood what I needed to get done to begin
with.
Post by Robert La Quey
Post by Paul G. Allen
I've also found that once I knew assembly language on one processor, it was very
easy to learn it for any other (assembly language is different for every
processor). I also found that learning BASIC, C/C++, FORTRAN, Fourth, etc. were
simple as compared to assembly.
I always spell Forth wrong. Must be a mental block where the spelling of the
number 4 gets in the way. :)
Post by Robert La Quey
I concur with the exception of Forth. The extensibility of the language,
its flexibility, its ability to act as a metalanguage for writing other
languages all put it in an entirely different class than BASIC, C/C++,
FORTRAN. Forth is something most like an extensible macro language for a
two stack processor (the optimal machine for context sensisitve languages,
ala Chomsky) and is like nothing else. People who treat it as just another
language really do not get it.
Post by Paul G. Allen
IF you want a thorough understanding of
programming, learn assembly language.
No learn Forth, and possibly Lex and Yacc, but proably not.
Then you will understand how to construct all of the
other languages. You really need to understand that the primitives
of all languages are the same, that they are expressed differently,
but have common deep structures. They begin to diverge when higher level
abstractions are introduced. Assembly is fine for the low level
and for learning CPU architectures but will give you no insight at
all into data abstraction, objects, virtual machines, i.e. all of
the more abstract issues that really matter a great deal more.
I disagree. I've seen many a programmer have trouble debugging a piece of code
because they knew nothing about assembly, and how the code they wrote is REALLY
made to function in the computer. For example, what happens when calling a
function? How do I write function foo(bar) when there is no support for it? How
can I make the code faster when nothing I do in the high level language seems to
help? Etc., etc.

Why do more abstract issues matter more? The CPU certainly knows nothing about
abstraction, so they don't matter more at that level. I certainly wouldn't
recommend learning data abstraction as a *first step* on the programming road.
Many programmers go to school for years to learn it and still don't get it, and
they have already learned something about programming before they get there. As
a first step to programming, IMHO, you certainly don't want to dive into OOP,
data abstraction, and virtual machines. IMHO, you want to know what the code you
are writing is actually doing in the machine after it is compiled down to the
machines native tongue.

PGA
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pgallen.vcf
Type: text/x-vcard
Size: 288 bytes
Desc: Card for Paul G. Allen
Url : http://www.kernel-panic.org/pipermail/kplug-list/attachments/19990704/8fe3b256/pgallen.vcf
blanker
2005-01-19 16:37:21 UTC
Permalink
Post by Robert La Quey
Post by Paul G. Allen
IF you want a thorough understanding of
programming, learn assembly language.
any recommendations for a good book on assembly to get me started?
Post by Robert La Quey
No learn Forth, and possibly Lex and Yacc, but proably not.
Then you will understand how to construct all of the
other languages. You really need to understand that the primitives
of all languages are the same, that they are expressed differently,
but have common deep structures. They begin to diverge when higher level
abstractions are introduced. Assembly is fine for the low level
and for learning CPU architectures but will give you no insight at
all into data abstraction, objects, virtual machines, i.e. all of
the more abstract issues that really matter a great deal more.
This is however a hard task. If you just want to learn to be a
decent programmer then forget the above ... learn C and Perl,
maybe Python. Be practical.
i understand the complexity and difficulty involved. that is actually what
attracts me to it. if forth or assembly will deepen my understanding of
programming and provide me with a wide base to build upon then i think i
will start with those two. do you have any recommendations for a good book
on forth to start off with?

Continue reading on narkive:
Loading...