From: "M. Edward (Ed) Borasky" Date: 2006-11-20T05:45:50+09:00 Subject: Re: Ruby vs Java vs c++ Chilkat Software wrote: > > 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 Well, speaking of bachelors' degrees from the University of Illinois, about 44 years ago I got an AB in math there. Computers were just then starting to become available to undergraduates, and I certainly learned the logic design as well as programming on machines of that era. Would you believe the IBM 650 and ILLIAC I? Hell, these gizmos didn't even have hardware floating point -- you had to be a grad student to get your paws on one of those! I'm glad to see they were still teaching that 20 years ago. But you know what? I would hope that the people coming out of the U of I in CS/EE with a BS *today* would have had all of that in high school or even junior high! I would hope by the time they got their BS, they'd know stuff that didn't *exist* 20 or 44 years ago! To give you an example, I graduated right around the time such advances as the Fast Fourier Transform, Lisp, the notions of computational complexity and NP-completeness, disk operating systems, etc. were just starting to make it into commercial application. The stuff that makes Google and Microsoft and PlayStations and BlueGenes and iPODs tick *today* is what undergrads should be learning about. And that means, as far as I'm concerned, Ruby or Smalltalk or Erlang over Forth or C/C++/Java or Lisp/Scheme. -- M. Edward (Ed) Borasky, FBG, AB, PTA, PGS, MS, MNLP, NST, ACMC(P) http://borasky-research.blogspot.com/ If God had meant for carrots to be eaten cooked, He would have given rabbits fire.