C
Charles D Hixson
From that perspective, I'd recommend starting with MIX & Knuth. But ifChilkat said:About 20 years ago, when I graduated from University of Illinois' with
a BS in Computer Science / Engineering,
the department's philosophy was for students to acquire an
understanding of computers and programming
from the ground up. That meant from the electronic circuit level, to
the logic level (NAND and NOR gates),
to assembly programming, and on up. My answer to the original
question is based on this philosophy.
I recommend starting at the C/C++ level simply to gain a fundamental
understanding of the bits & bytes,
pointers, pointer arithmetic, structure layouts, byte ordering,
structure member alignment, dynamic memory
allocation on the heap as opposed to the stack, etc. Understanding
this gives you a good idea
as to what's going on "under the hood" with higher-level languages.
Things won't be so mysterious.
It'll pay off in the long run.
-Matt
you want faster results pick Ruby or Python.
I'd NEVER recommend C++. C, perhaps, to establish a solid grounding in
the fundamentals...but not for anything serious. It takes too long.
One compiled language that you might try is D (Digital Mars D), with
links to C libraries to accomplish the things that aren't yet built in.
OTOH, for many uses Ruby and Python are BOTH hard to beat. I like Ruby
better as a language, but Python seems to have more bug-free libraries.
(Well, free of "show stopper" bugs.) And Python has a wider variety of
libraries. (Still, you find me here in the Ruby news group. I like
Ruby better.)
WARNING: NO LANGUAGE IS PERFECT!! Choose the language to suit the
problem. For some problems Java is the best available solution. (I'm
not aware of ANY problems for which I would choose C#, but that's
because of potential legal issues...so I won't even look at it.)