Roy Smith wrote: > "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote: > > If you're really trying to become a well-rounded computer professional > > I'd recommend reasonable exposure to at least: > > > > * C > > * A static functional language (ML, Haskell, etc) > > * Lisp or scheme Scheme > > * A static class-oriented language (Java, C++, etc) > > * A dynamic OO language (Python, ruby, smalltalk, etc) > > > > and at least a brief look at, say, Forth and Prolog. > > Interesting list. Of those, I've done tons of C, just enough lisp to get > the feel of it, lots of C++, and of course Python. I've never done any > functional stuff.
You should. It's very enlightening. > Just enough Forth to be able to say I'd done it (as long > as you don't press me too hard on the exact definition of "done it"). > > I've also done a lot of serious Fortran. Some SQL. Some Java. Perl when > I'm forced into it. PostScript (yes, it really is a programming language). SQL I don't class as a programming language, but it's certainly worth learning for most modern programmers. Postscript is a stack-oriented language in the same vein as Forth, so if you really learn one then I wouldn't bother with the other until you've learned something in each of the genres I've listed (unless you need the second for a reason--but I wouldn't learn 2 stack languages in an "expand your brain" excercise until after you've learned languages in lots of other categories). > The point is, there's lots of languages. If your goal is to make a career > as a programmer, you will eventually end up learning lots of languages. > Each one will teach you something and make you a better programmer. Yes, and making sure that the first several you learn are disparate in their common idioms and programming models is incredibly worthwile to your development as a programmer IMO. Obviously if you need a language for a job, you learn that next. But when it comes to learning new languages for fun, if you already know C++ and Python I really think you're much better off learning Lisp, ML, or Forth than Ruby or Java as your next "learn to improve my skills" language. And it's not about hot new things; you can easily learn a _ton_ about programming by learning C, Lisp, Smalltalk, C++, ML, Algol, and Forth, and you haven't learned any new "flavor of the month" language. The difference between Ruby, Python, and Smalltalk is very small compared to the difference between C, Lisp, and ML. -- http://mail.python.org/mailman/listinfo/python-list